Skip to content

Edwiv/StayAwake

Repository files navigation

StayAwake

StayAwake 是一个轻量级 macOS 常亮工具,用来在系统闲置时保持屏幕、系统和网络连接处于可用状态。它适合需要保持 SSH、下载任务、后台任务或屏幕展示持续运行的场景。

功能

  • 通过 macOS 电源管理 assertion 保持显示器不熄屏。
  • 保持系统不进入 idle sleep,让 SSH、网络连接和后台进程继续在线。
  • 可选择阻止屏保启动。
  • 可选择允许屏保正常启动,同时保持屏幕、系统和网络活跃。
  • 手动熄屏时会暂停显示器 assertion,避免屏保把屏幕重新唤醒。
  • 使用 UserDefaults 保存设置。
  • 通过内网 Sparkle appcast 检查、下载和安装更新。
  • 提供脚本打包为独立 .app

工作模式

阻止屏保

系统闲置超过设定阈值后,StayAwake 会周期性声明用户活动并重置 idle 计时器,从而阻止屏保启动并保持屏幕可见。

适合不希望屏幕内容被屏保遮挡的场景。

允许屏保 + 不熄屏 + 保持联网

屏保会按系统设置正常启动,但 StayAwake 会持有电源管理 assertion,让显示器不熄屏、系统不 idle sleep、网络和 SSH 连接保持活跃。

适合希望屏保遮住画面,同时又要让远程连接、下载或后台任务继续运行的场景。

环境要求

  • macOS 13 或更新版本
  • Swift 5.9 或更新版本

如果「阻止屏保」模式无法重置 idle 状态,可以在系统设置里给 StayAwake 开启辅助功能权限:

系统设置 > 隐私与安全性 > 辅助功能

构建

构建 Swift 包:

swift build

构建 release 版本:

swift build -c release

运行

通过 Swift Package Manager 运行:

swift run StayAwake

内网安装与更新

在另一台内网 Mac 上首次安装:

curl -fsSL https://edwiv.byted.org/macapps/certs/install-trust.sh | bash
curl -fsSL https://edwiv.byted.org/macapps/apps/stayawake/install.sh | bash

打开 StayAwake 设置页,在「软件更新」中保持「自动检查更新」和 「自动下载并安装更新」开启。

完整流程见 内网分发文档

打包 App

在项目目录生成 StayAwake.app

./build.sh

打开打包后的 app:

open StayAwake.app

项目结构

  • StayAwake/:SwiftUI 界面与电源管理逻辑。
  • Package.swift:Swift Package 配置。
  • build.sh:release 构建和 .app 打包脚本。
  • AppIcon.icnsAppIcon.iconset/:应用图标资源。

说明

生成的 .app.dmg.build/ 构建产物不会进入 Git 仓库。需要时在本地重新运行 ./build.sh 即可。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors