Mac 合盖不睡怎么做(免密码):下载、编译、跑 Agent、听歌都不中断
合上 MacBook 的盖子,正在跑的任务、正在放的歌,为什么就断了?因为 macOS 的合盖休眠是内核里一条独立的休眠路径,和“空闲休眠”不是一回事。本文讲清楚它、以及一个不需要输密码的做法。
为什么系统设置解决不了
「系统设置 › 节能」里能选的“永不休眠”,只影响空闲休眠(idle sleep):屏幕可以关,系统不睡。但合盖休眠(clamshell sleep)是另一条路径,普通 App 的电源断言(等同于系统自带的 caffeinate)拦不住它。所以你会发现:
- 合上盖子 → 机器睡 → 下载 / 编译 / AI Agent 全断;
- 远程连不上,因为机器根本不在线;
- 合盖放歌,音乐随之中断。
传统做法是 sudo pmset -a disablesleep 1,需要管理员密码、写系统设置、还容易忘记关(机器一直在包里发热)。
免密码的做法:会话级合盖控制
macOS 的电源管理器(IOPMrootDomain)提供了一个无需 root、无需任何权限的接口,可以临时“跳过合盖休眠”。它有两个关键性质:
- 会话级:只在 App 运行期间有效,退出 / 崩溃 / 重启后自动恢复系统默认行为——不会留下持久改动;
- 无需授权:不弹管理员密码框,也不修改任何系统设置。
HeyWakeup 的「合盖不睡」正是基于它。第一次使用零授权,合上盖子任务继续跑。
按场景自动起停,而不是一直开着
一直不睡当然可以,但更省心的是让它按需工作。HeyWakeup 提供 9 类触发器,任一满足即自动开启、全部不满足自动关闭:
- 指定进程运行时:
claude、codex、cargo、rustc、xcodebuild、ffmpeg……跑长任务 / AI Agent 时自动保持,任务结束自动放手; - 音频播放时:检测系统是否正在输出音频(浏览器播放 YouTube 也有效),配合「音乐模式」实现合盖听歌不中断;
- 远程控制时:TeamViewer / AnyDesk / RustDesk / ToDesk / 向日葵 / 系统屏幕共享等运行期间自动保持,退出即自动放开;
- 网络活动时 / CPU 高负载时 / 电源 / 电池 / 时间表。
也可以直接用右上角的场景预设一键切换:演示 · 下载 · Agent · 会议 · 音乐模式 · 远程模式 · 合盖服务器。
安全兜底:敢把机器留在包里
合盖保持唤醒意味着更耗电、更容易发热。HeyWakeup 默认开着几道护栏:
- 低电量自动停(阈值可调),低电量期间禁止触发器重新开启;
- 过热保护:设备过热时停止并闭锁,降温后恢复;
- 合盖强制熄屏:合盖时交系统熄屏,避免内屏在包里持续点亮发热;
- 退出 / 崩溃 / 重启自动复位:绝不把机器留在“禁睡”状态。
三种模式,先选对
| 模式 | 说明 | 适用 |
|---|---|---|
| 熄屏不睡 | 屏幕可熄灭,系统不睡 | 下载、编译、备份——最省电的默认选择 |
| 合盖不睡 | 合上盖子也不睡 | 塞进包里继续跑、合盖当服务器 / 播放器 |
| 关闭 | 恢复正常休眠 | 下班 |
绝大多数场景用「熄屏不睡」就够了:屏幕黑了 CPU 还在跑,任务不中断,还省电护屏。
快速上手
- 打开 HeyWakeup,菜单栏出现「磨磨」头像;
- 点图标选「熄屏不睡」或「合盖不睡」,或点右上角「场景」;
- 需要自动化的,进偏好设置 → 触发器加一条规则。
支持 macOS 12 及以上,Intel 与 Apple Silicon 通用,无需辅助功能权限、无需内核扩展。
下载 HeyWakeup,或先看看定价与常见问题。
2026-10-18