Omarchy 4 Quattro 技术解读:单进程桌面外壳、pacman 化与 Hyprland 配置 Lua 化

开源LinuxArch

2026 年 8 月 14 日,Basecamp 联合创始人 David Heinemeier Hansson(DHH)主导的 Linux 发行版 Omarchy 发布 4.0 版,代号 Quattro。官方将这次更新定义为项目启动以来规模最大的一次重构:整个桌面外壳在 Quickshell 中重写为单进程插件架构,系统文件从 git 仓库迁移到 Arch 官方包管理体系,Hyprland 配置全部转为 Lua。这个 2025 年 6 月创建的仓库目前积累 29,077 个 star、2,958 次 fork,采用 MIT 许可证,默认分支已切换为 quattro。

Omarchy 4 Quattro 桌面

单进程桌面外壳:八个组件退役

Quattro 的核心改动集中在外壳层。此前 Omarchy 的桌面外壳由多个独立守护进程拼装:Waybar 负责顶栏、Walker 负责启动器、Mako 负责通知、SwayOSD 负责音量亮度浮层、hyprlock 负责锁屏、hypridle 负责空闲管理、swaybg 负责壁纸、polkit-gnome 负责授权代理。Quattro 把这八个组件的职能全部收进一个基于 Quickshell 的长驻进程,以插件形式组织,统一主题、统一 IPC 脚本接口。

退役组件原职能Quattro 中的替代
Waybar顶栏内置模块化 bar,支持拖拽停靠四边
Walker启动器合并进统一菜单(Super + Space)
Mako通知守护进程原生通知守护,支持免打扰与历史回放
SwayOSD音量/亮度浮层原生 OSD
hyprlock锁屏密码与指纹 PAM 流程
hypridle空闲管理shell 内事件驱动
swaybg壁纸设置shell 内背景管理
polkit-gnome授权代理内置 polkit agent

新外壳的事件模型从轮询改为信号驱动:状态指示器、显示器与网络状态、背景都对系统信号做出反应,空闲桌面不再持续消耗 CPU。通知系统支持回放,Super + Shift + Alt + 逗号 可调出最近十条通知的原样重放,包括被免打扰静音的那些;屏幕上的通知弹窗在 shell 重启(每次更新都会触发)后依然存活。剪贴板管理器(Super + Ctrl + V)带图片预览与敏感内容排除,emoji 选择器挂在 Super + Ctrl + E。

顶栏部件覆盖工作区、活动窗口、时钟(点击显示 ISO 周格式)、天气、MPRIS 媒体、系统托盘、电池、键盘布局、麦克风、更新指示器与手动状态指示。第三方部件甚至整条替换 bar 都可以从 git 直接安装:omarchy plugin add <git-url>,配套生态站点 omarchyplugins.com 已上线。右侧面板用 Super + Ctrl + 1 到 9 打开,重排部件后编号自动重算,无需改键位绑定。

打包重构:从 git 仓库到 pacman

Quattro 把 Omarchy 内部实现从 git 检出迁移为正式的 Arch 系统包,系统文件落在 /etc,更新经由 pacman 流转。为防止系统更新绕过发行版自身的快照与迁移逻辑,仓库加入了一个 ALPM 钩子,把系统更新强制路由到 omarchy update(可用环境变量 OMARCHY_ALLOW_DIRECT_PACMAN=1 旁路)。特权操作从 sudo 切到 pkexec/polkit,授权弹窗会展示即将授权的具体命令。懒加载工具(Claude Code、GitHub CLI)的安装载体从 npm 换成 mise。应用启动在独立的 systemd scope 中而非合成器的 cgroup,配合 systemd-oomd,单个应用失控时由内核回收,不再拖垮整个会话。

已有安装的升级路径分两步:先执行 Update > Omarchy,再执行 Update > Omarchy to Quattro。

Hyprland 配置转 Lua

绑定、显示器与开关项的配置从 Hyprland 原生语法迁移到 Lua,为 Hyprland 0.56 的完整兼容铺路。配置形如:

lua
o.bind("SUPER + SHIFT + W", "Omawrite", { launch = "omawrite" })

Lua 化换来的是表达能力:绑定可以携带结构化参数,显示器与切换逻辑能写普通程序。仓库语言构成为 Shell 约 2.09MB、QML 约 1.25MB、JavaScript 159KB、Python 116KB、Go Template 99KB、Lua 65KB,外壳主体是 QML(Quickshell 的原生语言),装配与迁移逻辑仍是 Shell。

安装器与生命周期管理

ISO 体积削减超过 1GB,降到 6GB 以内;安装耗时缩短 30%,分钟内完成安装成为可能。SHA256 校验值为 9224fab3720560f771969a99a499e5f7e0f8e2d6a0681d872d52f05fb5003da4。有空闲空间时支持与 Windows 双启动安装(需先关闭 BitLocker)。

首启配置被整体推迟:安装可以在完全不创建用户的情况下完成,机器真正的主人第一次开机时才选择键盘、账号、主机名与时区,界面与 ISO 安装器同源。加密磁盘场景下,LUKS 卷会在此时从安装阶段的临时口令重新加密为主人设置的密码,全程 all-or-nothing,其余密钥槽全部清除。这个设计面向 OEM 与替家人朋友装机的场景。配套的 Setup > Reset Computer 用安装时生成的 @factory 快照整根替换运行中的 root,清除机器身份、账号与指纹注册,交还机器时回到出厂首启状态;没有出厂快照的机器会被明确拒绝,不做半吊子擦除。

Omarchy 网络面板

网络管理从 iwd/impala/bluetui/wiremix 切换到 NetworkManager。新的网络面板(Super + Ctrl + W)提供实时上下行速率、ping、丢包、一键测速、DNS 供应商选择(DHCP/Cloudflare/Google/自定义)、Wi-Fi 二维码分享、频段切换与企业级 802.1X 网络。音频输出切换在播放不中断的前提下完成,卡死时自动恢复。XPS 14/16 两款笔记本内置了按 DMI 字符串匹配的 PipeWire 滤波链扬声器调校,还原 Windows DSP 的音色;新增机型只需两个数据文件。

默认应用与编码 Agent 集成

位置旧默认新默认
写作TyporaOmawrite(Super + Shift + W)
计算器GNOME CalculatorOmacalc(Super + Ctrl + Q)
图片标注SattyTensaku
终端Foot(资源占用更优)
磁盘占用dua
视频剪辑Omacut(ffmpeg 内核的时长裁剪)

Omawrite 与 Omacalc 是 DHH 新写的极简应用:前者是自动保存的 Markdown 编辑器,后者替代 GNOME 计算器。Omacut 基于 ffmpeg 做视频时长裁剪,配合桌面自带的屏幕录制形成闭环。

编码 Agent 不再由系统指定,改为 Setup > Defaults > Agent 中选择,可选 Claude Code、Codex、OpenCode、Pi、Oh My Pi、Gemini、Grok、Copilot、Crush。选定的 Agent 首次使用时懒安装,Super + Shift + Ctrl + A 或任意终端里的 a 别名调起,以独立的 org.omarchy.agent 应用窗口打开,从主目录召唤时自动落在 ~/Work 下启动。顶栏新增 model-usage 部件,展示 Claude Code、Codex、Fireworks 等主流 harness 的用量统计。进程崩溃时 systemd-coredump 的日志流会弹出提示,点击后默认 Agent 拿着 core dump 开始诊断,其 diagnose-crash 技能覆盖回溯符号化,确认是 Omarchy 的 bug 后才在征得同意的情况下上报。

编码 Agent 选择器

主题系统与安全修复

主题色板从 8 个基础色扩展到 24 个,neovim、VS Code、btop 的主题配置直接从扩展色集自动生成,主题包里需要手工维护的文件随之减少。新增 Solitude、Last Horizon、Lupine 三套主题,外加跟随系统主题的 Pi。~/.config/omarchy/shell.toml 作为机器级覆盖层叠加在活动主题之上,个人字体、间距、bar 微调在主题切换后保留,文件被监视,改动实时生效。主题切换器(Super + Shift + Ctrl + Space)与背景切换器(Super + Ctrl + Space)均为可过滤的实时预览轮播。

这次发布同时修复了恶意主题安装包的三条代码执行路径:colors.toml 的值可以触达 GNU sed 的 e 标志、VS Code 主题名未转义、键盘 RGB 未校验;并移除了 tzupdate 的无约束 sudoers 授权,该授权此前允许任意 wheel 组用户在任意位置写入 root 拥有的符号链接。

性能层面的两个细节:屏幕保护程序从 terminaltexteffects 换成 Rust 移植 ttfx,逐字节一致的渲染,单一无依赖二进制,启动时间从约 107ms 降到约 1ms,基础镜像不再需要 Python;NVIDIA GPU 检测从 lspci 改为读 sysfs,旧方案会把运行时挂起的独显从 D3cold 唤醒,唤醒耗时超过 Hyprland 整个 1.5 秒的配置加载预算,新方案按设备 ID 分类,pre-Maxwell 显卡不再被指派到驱动不了它的驱动上,名称正则漏掉的 Maxwell/Pascal 部件也能被正确识别。

写在最后

Quattro 的更新密度在 FOSS 桌面发行版里相当少见:外壳进程模型、包管理边界、配置语言、安装生命周期四个层面同时动刀,且每个层面都有明确的工程动机(进程收敛、更新安全、表达能力、设备交接)。对想尝试 Arch + Hyprland 组合又不愿手工装配外壳的读者,ISO 下载与文档都在 omarchy.org,升级路径对 3.8.x 现有安装开放。

来源:Omarchy GitHub 仓库 · Quattro Release Notes · omarchy.org