demiaochen/caffeinate-disablesleep
GitHub: demiaochen/caffeinate-disablesleep
一款 macOS 菜单栏应用,用图形界面替代 caffeinate 和 pmset 命令,支持定时唤醒、屏幕常亮及合盖不眠。
Stars: 7 | Forks: 0
# caffeinate & 禁用睡眠
在会话期间屏幕仍可能会关闭。如果您希望显示器保持常亮,
请开启**同时保持屏幕常亮**。
点击大月亮按钮可启动或停止所选会话。您也可以
右键点击菜单栏图标,无需打开面板即可进行切换。
按下 ⌘, 或点击版本号以打开设置。您可以在此处开启
**应用打开时自动开启**和**登录时打开应用**,管理合盖
权限,以及查找源码。
## 合盖时保持 Mac 唤醒
普通的唤醒会话无法在合盖时阻止系统休眠。当 Mac 需要
在合盖状态下继续运行时,请开启**合盖时保持唤醒**。
这是一项独立的系统设置。它会一直保持开启,直到您将其关闭或退出
应用,即使定时会话已结束也是如此。
macOS 会在您首次启用时要求输入管理员密码。该应用
会安装一条受限的 sudoers 规则,因此后续更改
无需再次输入密码。该规则仅允许开启和关闭 `disablesleep`。
您可以通过设置(⌘, 或点击版本号)中的**合盖权限**开关
移除该权限,或提前安装它。
合盖状态下运行的 Mac 可能会积聚热量。请确保其通风良好。
有关确切的权限和移除说明,请参阅 [SECURITY.md](SECURITY.md)。
## 菜单栏图标的含义
图标即代表全部状态,无需打开面板即可读取。
| 图标 | 含义 |
| --- | --- |
|
| 空闲。当前没有任何程序阻止 Mac 休眠。 |
|
| 会话正在运行,且屏幕保持常亮。 |
|
| 会话正在运行,但屏幕仍可休眠。 |
|
| 圆点表示定时器正在运行。 |
|
| 下划线表示合盖设置已开启。 |
斜线表示保持唤醒。实心月亮表示屏幕保持常亮,空心月亮则
表示不保持。圆点和下划线可叠加在两者之上显示。
## 实现原理
唤醒会话使用与以下命令相同的 macOS 电源断言 (power assertions):
```
caffeinate -disu
```
应用自身会保持这些断言。它不会启动单独的
`caffeinate` 进程。如果应用退出,macOS 会自动释放它们。
合盖选项会更改:
```
sudo pmset -a disablesleep 1
```
当您关闭该选项或正常退出时,它会将值恢复为 `0`。
面板底部的命令输出会显示当前等效的
命令。它也会同步在终端中所做的更改。
当面板关闭时,应用不使用任何轮询。它的空闲 CPU 占用为零,
并且是一个约 1 MB 的通用二进制文件。
## 构建
```
scripts/build.sh # compile + sign (set CODESIGN_IDENTITY)
scripts/lint.sh # swift-format check (--fix to rewrite)
scripts/release.sh # notarize + staple + DMG (set NOTARY_PROFILE)
```
macOS 14+。无需 Xcode 项目,无需依赖,只需纯 `swiftc`。
## 许可证
[MIT](LICENSE)
## 赞助
如果这个应用帮您省下了一个终端标签页,您也可以让我保持清醒:
[](https://ko-fi.com/demiaochen)
在会话期间屏幕仍可能会关闭。如果您希望显示器保持常亮,
请开启**同时保持屏幕常亮**。
点击大月亮按钮可启动或停止所选会话。您也可以
右键点击菜单栏图标,无需打开面板即可进行切换。
按下 ⌘, 或点击版本号以打开设置。您可以在此处开启
**应用打开时自动开启**和**登录时打开应用**,管理合盖
权限,以及查找源码。
## 合盖时保持 Mac 唤醒
普通的唤醒会话无法在合盖时阻止系统休眠。当 Mac 需要
在合盖状态下继续运行时,请开启**合盖时保持唤醒**。
这是一项独立的系统设置。它会一直保持开启,直到您将其关闭或退出
应用,即使定时会话已结束也是如此。
macOS 会在您首次启用时要求输入管理员密码。该应用
会安装一条受限的 sudoers 规则,因此后续更改
无需再次输入密码。该规则仅允许开启和关闭 `disablesleep`。
您可以通过设置(⌘, 或点击版本号)中的**合盖权限**开关
移除该权限,或提前安装它。
合盖状态下运行的 Mac 可能会积聚热量。请确保其通风良好。
有关确切的权限和移除说明,请参阅 [SECURITY.md](SECURITY.md)。
## 菜单栏图标的含义
图标即代表全部状态,无需打开面板即可读取。
| 图标 | 含义 |
| --- | --- |
| 标签:SwiftUI, 电源管理, 系统工具, 菜单栏应用, 防休眠