跳转至
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

它同时要解决五类问题:

  1. 把不可变的发行内容安装到 /usr/share/omarchy,又允许用户安全覆盖;
  2. 把 root 阶段与图形用户会话阶段拆开,避免权限和时序混乱;
  3. 用数百个小命令提供一致的 CLI,而不维护一份巨型路由表;
  4. 让主题、菜单、插件和硬件适配可扩展,同时守住代码执行边界;
  5. 让滚动更新在失败时可解释、可续跑、尽可能可恢复。

本文如何拆

这份文档不是按目录逐文件复述,而是按运行时调用链组织:

flowchart TD
    Install[安装与系统应用] --> First[首次图形登录]
    First --> Session[UWSM / Hyprland 会话]
    Session --> Runtime[Quickshell 桌面运行时]
    Runtime --> Ext[菜单 · 主题 · 插件 · 服务]
    Install --> Update[更新与迁移]
    Update --> Recovery[快照与恢复]
    Legacy[旧版系统] --> Upgrade[Quattro 升级器]
    Upgrade --> Install

每章固定回答四件事:

  • 它解决什么问题:先建立直觉,不从实现细节起步;
  • 真实调用链是什么:沿入口、状态变化和下游副作用走一遍;
  • 为什么这样设计:指出性能、安全、兼容性与可恢复性的取舍;
  • 去哪里核对:给出锁定 commit 的关键源码索引。

推荐路线

依次阅读 全景 → 仓库地图 → 安装与首登 → CLI → Shell → 更新迁移。

重点阅读 配置覆盖、插件、菜单、主题 和 状态路径表。

从 端到端调用链 定位阶段,再查 安全与恢复、测试 和 源码索引。

快照说明

全文对应 Omarchy 4.0.0.alpha,固定在 commit ef6d9e6605b121df15bf310e630e04f0c1119fc8。数字是对该快照的静态盘点,不代表未来版本。

一句话结论

Quattro 最值得学习的不是某一段 Bash 或 QML,而是它如何把“发行版默认值”“用户意图”“生成状态”和“系统副作用”分层,再用小而可组合的命令把这些层串成可恢复的桌面产品。