Source-guided architecture notes
Omarchy Quattro 源码拆解¶
从一条 omarchy 命令出发,穿过 Arch 包、用户会话、Hyprland、Quickshell、插件、主题、更新迁移与恢复边界,建立一张可以落到源码行的系统地图。
:material-book-open-page-variant: 开始阅读 :material-github: 查看源码快照
1,653个仓库文件
430条可执行 omarchy 子命令
86个按序迁移脚本
37份 Shell 插件清单
22套内置主题
197CLI/Shell/验收测试入口
它究竟是什么?¶
把 Omarchy 只理解成“一套 dotfiles”会错过最重要的部分。Quattro 更像一个把 Arch Linux 变成完整桌面产品的操作系统控制面:
flowchart LR
User[用户意图] --> CLI[omarchy CLI]
CLI --> System[系统层<br/>pacman · systemd · /etc]
CLI --> Session[会话层<br/>UWSM · Hyprland]
CLI --> Shell[交互层<br/>Quickshell]
System --> State[持久状态]
Session --> State
Shell --> State
State --> User
它同时要解决五类问题:
- 把不可变的发行内容安装到
/usr/share/omarchy,又允许用户安全覆盖; - 把 root 阶段与图形用户会话阶段拆开,避免权限和时序混乱;
- 用数百个小命令提供一致的 CLI,而不维护一份巨型路由表;
- 让主题、菜单、插件和硬件适配可扩展,同时守住代码执行边界;
- 让滚动更新在失败时可解释、可续跑、尽可能可恢复。
本文如何拆¶
这份文档不是按目录逐文件复述,而是按运行时调用链组织:
flowchart TD
Install[安装与系统应用] --> First[首次图形登录]
First --> Session[UWSM / Hyprland 会话]
Session --> Runtime[Quickshell 桌面运行时]
Runtime --> Ext[菜单 · 主题 · 插件 · 服务]
Install --> Update[更新与迁移]
Update --> Recovery[快照与恢复]
Legacy[旧版系统] --> Upgrade[Quattro 升级器]
Upgrade --> Install
每章固定回答四件事:
- 它解决什么问题:先建立直觉,不从实现细节起步;
- 真实调用链是什么:沿入口、状态变化和下游副作用走一遍;
- 为什么这样设计:指出性能、安全、兼容性与可恢复性的取舍;
- 去哪里核对:给出锁定 commit 的关键源码索引。
推荐路线¶
快照说明
全文对应 Omarchy 4.0.0.alpha,固定在 commit ef6d9e6605b121df15bf310e630e04f0c1119fc8。数字是对该快照的静态盘点,不代表未来版本。
一句话结论¶
Quattro 最值得学习的不是某一段 Bash 或 QML,而是它如何把“发行版默认值”“用户意图”“生成状态”和“系统副作用”分层,再用小而可组合的命令把这些层串成可恢复的桌面产品。