Omarchy 桌面 Toggles、空闲锁定与 ASCII 屏保完全指南
Omarchy 桌面 Toggles、空闲锁定与 ASCII 屏保完全指南【免费下载链接】omarchyBeautiful, Modern Opinionated Linux项目地址: https://gitcode.com/GitHub_Trending/om/omarchy导读Omarchy 将夜灯、免打扰、保持清醒、屏保开关这类日常临时状态抽象为统一的Toggle切换机制每个开关同时具备热键、菜单入口和 CLI 命令三种触发方式最终命中同一个状态开关你不需要关心状态存储在哪里。本文以 manual/13-toggles-idle-screensaver.md 为主线结合仓库中的按键绑定、菜单定义、Hyprland 配置与 shell 配置源码完整讲解 Toggle 菜单、omarchy toggle命令、状态文件与指示器、夜灯、免打扰、空闲计时idle、ASCII 屏保以及锁屏机制——读完你可以独立配置这些模式并理解其底层实现位置。提示本指南涉及的用户配置文件~/.config/...与~/.local/state/...在仓库中均有对应的出厂默认/示例版本见下文源码中的实现证据一节便于对照学习。一、ToggleOmarchy 的统一模式开关模型日常使用中很多调整并非永久设置而是一种临时模式——加班时的夜灯、演示时的免打扰、看视频时的保持清醒。Omarchy 将这些统称为toggles它们的行为方式完全一致一个热键、一个菜单入口、一条命令全部命中同一个开关。这正是与普通设置项的本质区别你不需要记住状态存于何处只用同一个动作翻转它再翻转回来。1.1 触发菜单入口Super Ctrl O直接打开Trigger Toggle切换菜单也可以从 Omarchy 主菜单Super Space逐级导航到该列表。在仓库的按键绑定 default/hypr/bindings/utilities.lua 中可以看到这两条映射o.bind(SUPER CTRL O, Toggle menu, omarchy-menu toggle toggle) o.bind(SUPER CTRL H, Hardware menu, omarchy-menu toggle hardware)菜单中的每一项实际对应 default/omarchy/omarchy-menu.jsonc 中trigger.toggle.*与trigger.hardware.*这些键每个条目都带有图标、标签与可执行动作。1.2 命令行入口终端里同样的开关写作omarchy toggle thing只运行omarchy toggle不带参数即可看到整个 toggle 分组列表每个子命令都对应一个独立脚本/动作例如omarchy-toggle-nightlight、omarchy-toggle-idle等在菜单 jsonc 的action字段中被引用。1.3 完整开关总览下面是本指南涉及的完整开关列表与原文档一致可直接当作速查表Toggle热键命令Night light夜灯Super Ctrl Nomarchy toggle nightlightSilence notifications静默通知Super Ctrl ,omarchy toggle notification silencingStay awake保持清醒禁用空闲锁定Super Ctrl Iomarchy toggle idleCrash capture崩溃捕获—omarchy toggle crash-captureScreensaver空闲屏保—omarchy toggle screensaverMenu bar顶栏Super Shift Spaceomarchy toggle barTouchpad触摸板XF86TouchpadToggleomarchy toggle touchpadTouchscreen触摸屏—omarchy toggle touchscreenSuspend挂起入口—omarchy toggle suspendHybrid GPU混合显卡—omarchy toggle hybrid gpu其中触摸板、触摸屏和混合显卡开关被放在Trigger HardwareSuper Ctrl H下而不是 Toggle 分组中——因为这些开关只在硬件真实存在时出现。菜单 jsonc 中可见对应的条件守卫trigger.hardware.touchpad: { icon: …, label: Touchpad, when: omarchy-hw-touchpad, action: omarchy-toggle-touchpad }, trigger.hardware.touchscreen: { icon: …, label: Touchscreen, when: omarchy-hw-touchscreen, action: omarchy-toggle-touchscreen }, trigger.hardware.hybrid-gpu: { icon: …, label: Hybrid GPU, when: omarchy-hw-hybrid-gpu, action: … omarchy-toggle-hybrid-gpu }when守卫如omarchy-hw-touchpad正是用来探测硬件是否存在没有对应硬件的机器上这些条目根本不会出现在菜单中。值得注意的实现细节触摸板、触摸屏开关在 Hyprland reload重载配置之后依然保持生效——被禁用的设备名会被保存到一个小的状态文件中Hyprland 启动时读取该文件并再次禁用该设备。1.4 挂在 Toggle 菜单下的非 toggle项Toggle 菜单里还携带了几项并非omarchy toggle命令、但行为一致的开关顶栏电池百分比、工作区布局Super L、窗口间距Super Shift Backspace、1:1 方形窗口比例Super Ctrl Backspace。在按键绑定文件中可以看到后两者的实际实现入口o.bind(SUPER SHIFT BACKSPACE, Toggle window gaps, omarchy-hyprland-window-gaps-toggle) o.bind(SUPER CTRL BACKSPACE, Toggle single-window square aspect, omarchy-hyprland-window-single-square-aspect-toggle)它们被归入同一菜单是为了心智模型统一需要临时翻转的状态都聚在同一个地方找。二、状态存储与脚本查询flag 文件与omarchy-toggle-enabled绝大多数 toggle 的本质只是一个flag 文件存放在~/.local/state/omarchy/toggles/flag 以关闭态命名——文件存在即表示该功能被关闭例如screensaver-off、suspend-off、bar-off。这一点与直觉相反使用时务必注意看到suspend-off存在表示挂起入口被禁用。如果想在脚本里根据开关状态分支处理不需要自己去找文件、解析内容直接使用omarchy-toggle-enabled它以退出码exit code的方式返回结果omarchy-toggle-enabled screensaver-off echo screensaver is off当screensaver-off状态开启即屏保被关闭时命令退出码为 0之后的 echo 才会执行——脚本写法非常干净。从源码结构看仓库中 default/hypr/toggles/ 目录即永久性配置开关 flag的存放地flags.lua 的文件头注释明确写道This directory is intended for permanent config toggle flags. Do not remove this file; the directory always needs at least one file.该目录专用于永久配置切换标记请勿删除本文件目录始终需要至少一个文件。而同目录下的window-no-gaps.lua与single-window-aspect-ratio.lua对应上文提到的窗口间距/方形比例开关。这些 toggle 模块会在 Hyprland 配置加载的最后阶段被引入——见 default/hypr/hyprland.lua-- 个人覆盖配置之后加载 require(hypr.monitors) require(hypr.input) require(hypr.bindings) require(hypr.looknfeel) require(hypr.autostart) -- Toggle config flags dynamically. require(default.hypr.toggles)即先加载 Omarchy 默认值再加载个人覆盖最后才应用 toggle 动态标记——保证 toggle 的实时状态不会被后续配置覆盖。三、顶栏指示器Indicators模式一望即知当某个模式处于开启状态时顶栏中间、时钟旁边会出现一个小图标glyph。这就是indicators指示器组件它负责承载听写dictation、屏幕录制、待处理提醒、夜灯、免打扰、保持清醒stay awake。指示器的交互设计未激活的指示器默认隐藏鼠标悬停在该区域时未激活的指示器会以变暗dimmed状态淡入你可以直接点击某个图标把它打开而无需记住对应的热键点击一个已激活的指示器则把它关掉。如果你希望所有指示器始终可见需要修改 shell 配置文件位于~/.config/omarchy/shell.json把omarchy.indicators条目上的alwaysShow设为truealwaysShow: true // 设置到 omarchy.indicators 条目上顶栏组件包括位置、顺序与 anchors的完整配置方式参见 manual/05-the-top-bar.md。仓库中的 shell 配置示例 config/omarchy/shell.json 展示了默认布局指示器omarchy.indicators正好位于时钟omarchy.clockcenterAnchor之前位于中间区域center: [ { id: omarchy.indicators }, { id: omarchy.clock, format: dddd HH:mm, … } ]四、夜灯Night light4000K/6500K 切换热键Super Ctrl N将屏幕色温调暖至4000K再次按下同一热键恢复为6500K。夜灯由hyprsunset驱动toggle 在需要时会替你把它启动起来如果它尚未运行的话。4.1 默认身份配置文件默认情况下hyprsunset 对你的屏幕不做任何改变。这是有意的设计——~/.config/hypr/hyprsunset.conf出厂自带一个identity profile身份配置保证屏幕在你主动请求暖色之前始终保持原样# Makes hyprsunset do nothing to the screen by default # Without this, the default applies some tint to the monitor profile { time 07:00 identity true }仓库中的 config/hypr/hyprsunset.conf 与此完全对应文件注释说明了设计动机如果没有这个 identity profilehyprsunset 默认会给显示器施加某种色调。4.2 想要按时间自动切换如果你希望夜灯根据时钟自动切换把身份配置替换为时间time配置即可profile { time 20:00 temperature 4000 }并在~/.config/hypr/autostart.lua中加入一行让 hyprsunset 随登录启动o.launch_on_start(hyprsunset)hyprsunset.conf 的注释同样给出了这一用法# To enable auto switch to nightlight, add to your .config/hypr/autostart.lua: # o.launch_on_start(hyprsunset) # and use the following: # profile { # time 20:00 # temperature 4000 # }4.3 关于温度取值toggle 使用的 4000K/6500K 这对数值是固定的所以如果你想用其他色温改配置文件的 place 就在hyprsunset.conf——而不是某个 toggle 参数。热键只需负责暖 ↔ 正常的来回切换。五、免打扰Do not disturb静默但不丢消息热键Super Ctrl ,静默通知按键绑定 default/hypr/bindings/utilities.lua 中的notification-silencingtoggle。开启后通知 toast 不再弹出顶栏中会出现一个带斜杠的铃铛crossed-out bell图标提醒你为什么桌面安静了下来。没有任何消息会丢失被静默的通知会被直接写入通知历史notification history——这正是你回来后回顾刚才错过了什么的完整记录。用Super Shift Alt ,打开通知历史。通知机制的其余部分参见 manual/10-notices.md。两种消息依然会穿透免打扰Omarchy 自身的确认 toast如 Theme changed、Screenshot saved——针对你刚做的操作从命令行发送的critical 级告警。值得强调的是把一切消息都标成 critical 以强行打扰你的聊天类 App并不属于穿透之列——系统只信任真正的 critical 来源。六、空闲管理Idle计时、取消与保持清醒Omarchyshell 完全掌控空闲idle行为计时参数是~/.config/omarchy/shell.json中顶层的idle块{ version: 1, idle: { screensaver: 150, lock: 300 } }仓库中的示例配置 config/omarchy/shell.json 与此完全一致。含义需要精确理解两个数字都是从你开始空闲的那一刻算起的秒数而不是从上一个事件算起——两者相互独立计时默认值下空闲150 秒两分半后屏保出现空闲300 秒5 分钟后锁屏接管——无论屏保是否运行过锁屏都会在 5 分钟到达时出现保存文件后shell 会立刻采用新的计时无需重启或重载会话。6.1 提前解除屏保 取消待定锁屏如果你在锁屏截止时间之前把屏保关掉比如动了鼠标键盘这次交互会被记为活动待定的锁屏即被取消。也就是说你不会因为只是瞥一眼屏幕就被锁在外面。6.2 Stay awake保持清醒想要彻底停止空闲即锁屏按Super Ctrl I或运行omarchy toggle idle开启后顶栏出现咖啡杯图标这就是前文指示器所承载的 stay awake 状态这是长报告演示、或盯着一个长时间构建时的首选开关再次按下同一热键即恢复正常空闲锁定行为。脚本场景下可用如下命令获取当前状态omarchy toggle idle status它会以 JSON 格式打印当前状态。6.3 边界只管锁定与屏保不管电源再次强调idle 机制只关乎锁屏与屏保与电源管理无关。挂起suspend与休眠hibernation有自己独立的设置参见 manual/36-system-sleep.md。七、屏保ScreensaverASCII 艺术 随机文字特效Omarchy 的屏保是运行在随机文字特效random text effects中的 ASCII 艺术每个显示器各运行一个实例。任意按键或鼠标移动都会退出屏保。7.1 手动启动需要立即呼出屏保时菜单路径System Screensaver热键Super Esc该入口强制拉起屏保——即使你已经关掉了空闲自动屏保手动启动依然有效注意系统默认没有为屏保绑定独立热键Super Esc实际打开的是 System 菜单。菜单定义在 default/omarchy/omarchy-menu.jsoncsystem.screensaver: { icon: …, label: Screensaver, action: omarchy-launch-screensaver force }注意 action 中的force参数——这正是即使空闲屏保已关闭也能强制运行的实现关键。7.2 关闭空闲屏保omarchy toggle screensaver用于关闭空闲自动屏保——如果你希望从工作状态直接跳到锁屏屏保模式完全不需要。该命令需要一个它知道如何配置的终端支持列表为Alacritty、Foot、Ghostty、Kitty。如果你的默认终端不在其中命令会明确告诉你无法继续。7.3 屏保窗口规则从源码可见屏保进程的窗口特征。在 default/hypr/apps/system.lua 中屏保窗口被配置为全屏、浮动并带有滑入动画-- Fullscreen screensaver. o.window(org.omarchy.screensaver, { fullscreen true }) o.window(org.omarchy.screensaver, { float true }) o.window(org.omarchy.screensaver, { animation slide })由此可以推断Omarchy 的屏保以 WM_CLASS 为org.omarchy.screensaver的窗口形态呈现每个显示器一个实例以及按任意键/移动鼠标退出均由 shell 层负责。7.4 更换屏保 Logo屏保绘制的 logo归你所有、可自由更换路径Style Screensaver上传一张png 或 svgOmarchy 会把它转换为 ASCII 再绘制。菜单 jsonc 中对应条目也印证了这一点style.screensaver.text: { action: omarchy-branding-screensaver text }, style.screensaver.image: { action: omarchy-branding-screensaver image }, style.screensaver.default:{ action: omarchy-branding-screensaver reset }支持编辑文本、从图片设置、恢复默认三种操作。完整的品牌定制方法参见 manual/41-branding.md。八、锁屏Lock screen热键Super Ctrl L立即锁定机器。该操作由 Omarchy shell 的锁屏负责并顺带完成四件事运行 shell 锁屏界面熄灭/黑屏显示blanks the display把键盘布局重置为第一个布局——确保你输密码时不是在使用错误的字母表例如误留在其他语种布局上若 1Password 正在运行则在离开时一并锁定它。认证方面锁屏接受密码一旦你配置好指纹它也接受指纹解锁。指纹及其他认证方式的配置参见 manual/37-hardware-authentication.md。九、源码中的实现证据速览为了便于你继续深挖将上述机制在仓库中的落点汇总如下机制仓库位置说明热键绑定default/hypr/bindings/utilities.luaSUPER CTRL O/H/N/I/comma、bar/gaps/方形比例等绑定菜单定义default/omarchy/omarchy-menu.jsonctrigger.toggle.*、trigger.hardware.*、system.screensaver、style.screensaver.*运行时 toggle 模块default/hypr/toggles/flags.lua、window-no-gaps.lua、single-window-aspect-ratio.luaHyprland 加载顺序default/hypr/hyprland.lua默认配置 → 个人覆盖 →require(default.hypr.toggles)屏保窗口规则default/hypr/apps/system.luaorg.omarchy.screensaver全屏/浮动/slide空闲计时与顶栏布局示例config/omarchy/shell.jsonidle.screensaver/lock、center中的omarchy.indicatorshyprsunset 默认配置config/hypr/hyprsunset.confidentity profile 与 time profile 示例结语一套心智模型贯穿日常模式Omarchy 把夜灯、免打扰、保持清醒、屏保开关这类半衰期以小时计的状态收敛为同一个 Toggle 模型——菜单入口、热键、CLI 命令三路同源flag 文件一锤定音配合顶栏指示器与脚本友好的omarchy-toggle-enabled/omarchy toggle x status既适合人肉操作也适合写进自动化脚本。而空闲idle机制则被 shell 集中管理以shell.json的idle块给出屏保、锁屏两条独立的时间线配合提前解除即取消锁屏的行为避免误锁屏保与锁屏职责分明前者负责美学与屏保 logo 定制后者负责安全认证密码与指纹。理解这套模型后无论是日常快速切换还是写一个演示前自动进入 stay awake的小脚本都能信手拈来。【免费下载链接】omarchyBeautiful, Modern Opinionated Linux项目地址: https://gitcode.com/GitHub_Trending/om/omarchy创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联
返回资讯列表 →