锁屏、屏保与保持唤醒:控制正确的空闲行为
为演示和长任务选择临时设置,区分空闲锁屏、睡眠与合盖,最后恢复并验证正常锁屏。
根据公开资料整理,未在实机验证。操作前请核对你的版本与硬件环境。
演示时希望画面持续可用;长时间构建时希望计算继续,但离开座位仍应锁屏。这是不同目标。“保持唤醒”图标不能证明机器永不睡眠,黑屏也不能证明会话锁好了。
本文依据固定 4.0.0.alpha 源码。本快照由 Omarchy Shell 管理空闲屏保与锁屏计时,旧 hypridle.conf 教程不自动适用。先确认安装版本与命令帮助。睡眠、合盖还取决于硬件和系统策略。
1. 分清画面、访问权限和电源
章节:1. 分清画面、访问权限和电源没有输入 → Shell 空闲检测 → 屏保和/或锁屏期限手动锁屏 → Shell 会话锁 → 需要认证睡眠请求 → logind PrepareForSleep → Omarchy 睡眠锁屏服务合盖事件 → logind 策略 + Omarchy 合盖/显示状态协调| 状态/动作 | 表示什么 | 不能保证什么 |
|---|---|---|
| 屏保 | 装饰窗口覆盖桌面 | 退出时需要认证 |
| 会话锁 | 锁屏限制桌面访问 | 机器已睡眠 |
| 显示关闭 / DPMS | 输出黑屏或省电 | 桌面安全锁定 |
| 挂起 | 睡眠期间计算暂停 | 特定扩展坞/设备能正常唤醒 |
| 保持唤醒 | 抑制 Shell 空闲锁屏/屏保 | 阻止全部睡眠或合盖动作 |
| 菜单隐藏 Suspend | 移除该菜单选项 | 禁用内核睡眠或 logind 策略 |
本快照 omarchy-toggle-suspend 只改变菜单可用性,不是长任务的睡眠抑制器。挂起菜单开关
2. 分别查保存意图与运行服务
章节:2. 分别查保存意图与运行服务临时修改前:
omarchy-toggle-idle statusomarchy-shell idle statussystemctl --user status omarchy-sleep-lock.service --no-pager第一条读已保存的保持唤醒标志:enabled: true 表示选择了保持唤醒,不是“启用空闲锁屏”。第二条报告正在运行的空闲服务,enabled 指空闲处理,stayAwake 指相反模式。名称对应的对象不同。
已保存开关:enabled=true运行空闲服务:stayAwake=true,enabled=false这个示意可以完全一致,不是矛盾。保存与运行状态不同,就查 Shell 是否加载了标志,不要持续按切换键把意图弄乱。标志会持久保存,原本用于演示的设置之后可能仍在。开关源码 · 空闲服务
3. 案例:临时保持演示画面可用
章节:3. 案例:临时保持演示画面可用记录原状态,盖子保持打开,明确设置:
omarchy-toggle-idle stay-awake返回的 disabled 指空闲处理已禁用。看咖啡杯图标和运行状态,不要把这个词解释为请求失败。默认 Super + Ctrl + I 切换同一模式;写操作流程时,明确命令比盲切更易判断。
人在场测试:不输入,等待超过配置的空闲期限,确认演示仍可用。应用自身也可能提供空闲抑制器,所以只看视频不黑屏不能证明保存开关正确,还要查状态。
结束后恢复记录值。原本允许正常空闲时:
omarchy-toggle-idle allow-idle移动鼠标或输入一次,从新的活动周期开始验证。演示结束不代表可以留下未锁的桌面。手动锁屏是另一个操作:
omarchy-system-lock测试前确认自己能正常认证。本快照锁屏还会把键盘切回第一个布局,并尝试锁定运行中的 1Password。因此与锁前不同的布局,可能让密码输入看起来异常。锁屏流程
4. 案例:任务继续,离开座位仍锁屏
章节:4. 案例:任务继续,离开座位仍锁屏空闲锁屏通常不停止本地构建,挂起会。先判断问题是画面变化、实际睡眠,还是关闭终端结束了关联任务。
需要为前台任务临时阻止睡眠时,systemd-inhibit 可以在该命令存活期间持有抑制锁。先用无害的一分钟流程测试生命周期:
systemd-inhibit --what=sleep --mode=block \ --who='Task demo' --why='Keep this foreground task running' \ sleep 60另一个终端运行 systemd-inhibit --list,找到 demo 的 sleep/block 项,一分钟后应消失。它作用于正在运行的命令,不是永久全局修改。适合时再把 sleep 60 换为准确、已经验证的前台任务及参数。包装器若立即把任务放后台并退出,抑制锁也会结束。systemd 抑制器说明
只抑制 sleep,并不请求关闭 Omarchy 空闲锁屏。希望离开座位时锁屏,就保留正常空闲。实际策略和权限需要本机验证:特权动作可覆盖抑制器,物理合盖策略也不普遍受同一个 sleep 锁约束。不能声称这条命令保证无人看管的合盖机器持续运行。
不要因为有选项就额外加入 handle-lid-switch 或关机抑制。有人看管的测试保持笔记本打开、正常通风。关闭终端或注销后任务是否继续,需要合适的任务/会话管理器;保持唤醒不会保存 Shell 进程。生命周期差异见自启动管理。
5. 调整日常计时,不替换整个 Shell 配置
章节:5. 调整日常计时,不替换整个 Shell 配置个人 ~/.config/omarchy/shell.json 还有其他设置。用新名称备份已有文件,通过配置菜单编辑已有顶层 idle 对象。下面是要合并的片段,不是完整替换文件:
"idle": { "screensaver": 120, "lock": 300}只保留一个 idle,注意合法 JSON 与周围逗号。两项都是从最后活动起算的秒数:
最后输入 屏保 锁屏0 秒 ------------ 120 秒 -------------------- 300 秒 不是从这里再等 300 秒本源码 0 禁用对应计时动作,不是立即触发。跳过装饰但保留五分钟锁屏,可用 screensaver: 0、lock: 300,或屏保可用性开关。禁用屏保本身不会禁用锁屏;手动启动屏保仍能有意强制运行。计时模型
保存后,有 jq 时查语法:
jq empty ~/.config/omarchy/shell.jsonomarchy-shell idle status语法成功不验证每个设置,继续确认运行的 screensaver 与 lock。Shell 读取新计时,但已开始的空闲周期保留它自己的期限;先输入,再测试新周期,不假设倒计时中修改会重置。锁前退出屏保算作活动,会取消该待执行周期。期限实现
首次实验不要设置极短锁屏时间。正常认证、原文件备份和足够观察时间,比每几秒意外锁一次更有用。
6. 合盖属于另一条策略路径
章节:6. 合盖属于另一条策略路径本快照盖子关闭且没有外屏时,合盖辅助函数请求锁屏,再协调显示状态。有外屏时,合盖桌面模式可以有意不触发这次锁屏。系统合盖策略仍由 logind 管理;对某些 logind 不识别为扩展坞的外部接口,Omarchy 还有额外抑制。合盖辅助函数 · 扩展坞合盖抑制
保存工作后,分别测试:
| 测试 | 观察什么 |
|---|---|
| 开盖、无外屏、空闲 | 计时屏保/锁屏 |
| 合盖、无外屏 | 锁屏和实际挂起/恢复 |
| 合盖、有可用外屏 | 外屏桌面与合盖模式 |
| 合盖桌面之后拔外屏 | 可访问输出、随后合盖/电源动作 |
保持唤醒标志不会禁用这些合盖函数。不要为一个 Shell 计时偏好直接改全局 logind 配置。硬件睡眠失败时用睡眠排查并记录连接状态;休眠是另一机制,不是演示所需设置。
7. 查睡眠前,确认真的安全锁定
章节:7. 查睡眠前,确认真的安全锁定Omarchy 睡眠锁屏服务通过延迟抑制器监听 PrepareForSleep,请求 Shell 锁屏;等待受 logind 时间预算限制,锁失败时机器仍可能睡眠。“它挂起了”不足以证明安全锁好。睡眠监听 · 有限锁屏检查
只读证据:
omarchy-shell lock statusomarchy-debug-idle 100journalctl --user -u omarchy-sleep-lock.service -n 50 --no-pagerjournalctl -t omarchy-shell -n 50 --no-pager锁屏状态区分 requested 和 secure:接受请求不等于完成会话锁。不要为了装饰屏保禁用该服务,也不要把锁着的时候重启 Shell 当普通计时调整;从已认证会话诊断。
| 现象 | 缩小调查范围 |
|---|---|
| 到时间不锁屏 | 保持唤醒、运行计时、应用空闲抑制 |
| 黑屏回来不认证 | 显示电源与实际锁屏的区别 |
| 长任务期间仍睡眠 | 抑制锁生命周期、权限、合盖路径 |
| 编辑后锁屏时间奇怪 | 新周期还是旧期限 |
| 唤醒直接进入未锁桌面 | 睡眠锁屏服务与 secure 证据 |
| 锁后密码像是不对 | 第一个键盘布局、认证配置 |
8. 恢复后走一次正常周期
章节:8. 恢复后走一次正常周期只恢复改过的计时值,恢复整份备份前比较后续改动。屏保开关和保持唤醒回到记录状态。让演示抑制器自行结束;放弃测试时只停止自己的 demo,确认对应项消失,不移除其他应用的抑制器。
查运行值,产生一次输入,人留在现场等待正常空闲周期,并成功认证。单独测试手动锁屏。修改长任务流程后,确认桌面锁定时任务仍运行,且前台任务结束后抑制锁消失。
记录准确目标:“演示时避免空闲打断”,或“这次任务阻止睡眠、保留离座锁屏”。区分目标,能避免临时修复积累成永久安全/电源改动。继续看多屏规划和Shell 配置。本文核对了源码;实际锁屏、睡眠和恢复仍需真实系统测试。