起因
最近 Omarchy 很火。Arch 打底,Hyprland + Quickshell,内置 AI Agent,装完就能用,创始人 DHH(Ruby on Rails 作者)拉来了千万美元级的 Omacom Foundation 背书,DistroWatch 评分 9.0/10。
我也想过直接装一个——毕竟我想做的事跟它很像:搭一套以 AI Agent 为核心的个人系统。
但看完它的架构,我决定不用它,自己基于 NixOS 搭。理由不是"它不好",而是它好的那部分不是它的,而它真正属于它自己的那部分,恰恰是我不能接受的。
一、先把 Omarchy 是什么说清楚
摆事实(截至 2026-09):
- 基座 Arch Linux,桌面 Hyprland(平铺式 Wayland 合成器)+ Quickshell(桌面 shell)
- 创始人 David Heinemeier Hansson(DHH),仓库 github.com/basecamp/omarchy
- 最新版 Omarchy 4.0.0(2026-08-14)
- 商标与基建由 Omacom Foundation(非营利)持有;资助规模有报道称 10 人各 100 万美元共 1000 万,也有报道称 8 人共 800 万——两个来源打架,我不采信任一说法,只确认"有千万美元级资助"这件事
- 内置 AI 能力:预接 Claude Code / OpenCode / Pi;项目目录里 c 起 OpenCode、cx 起 Claude Code;崩溃时 AI 解析 core dump;对话式生成主题;Skills 机制让 agent 改系统配置;支持 LM Studio / Ollama 本地模型
看到这里你可能会问:这不就是你想要的吗? 是的,功能层面确实重合。分歧在下面。
二、它最拿得出手的能力,不是它的
这是我看完架构后最强烈的一个感受:
Omarchy 引以为傲的可配置性,来自 Hyprland + Quickshell,不来自 Omarchy。
Omarchy 做的是把这套东西预先替你配好。它本身不生产能力,它生产的是"免 DIY"。
如果这个判断成立,会引出一个我很在意的推论:
"免 DIY"这个卖点,正在被 AI Agent 抽掉。
以前你花几周配 Hyprland,是因为你只能自己配。现在 Agent 能替你配——而且是配在你自己选的基座上。当"帮你配好"这件事不再稀缺,Omarchy 作为中间层的价值就被抽空了。
【观点】以上是我的推断,不是事实。欢迎反驳。
三、四个结构性问题
- 平铺被锁死,而平铺不是普适的
Omarchy 只给 Hyprland 这一条路。问题是:平铺式工作流并不符合所有人的工作需求。
真要浮动窗口,选择一点都不少——轻量桌面 LXQt / Xfce(轻、改动空间大),或者 i3 / Sway 的浮动模式、Niri 等等。
把一个本该由用户决定的桌面选择打包进整套产品,等于替用户做了不该被代做的决定。
- Arch 是命令式的,状态会漂移
Arch 没有"系统该长什么样"的单一真相源。你 pacman -S 了什么、改过哪个配置,只有系统自己知道。时间一长,真实状态和你的认知会漂移。
更要命的是:没有原子回滚。
Omarchy 的 Skills 机制是让 AI agent 直接改系统配置的——可 Arch 没有等价 NixOS generation 的东西可以退回去。官方给出的建议是"在 plan mode 里预览变更,准备好回滚"。
这句话本身就说明问题:没有原子回滚的系统,让 Agent 改配置是危险的。
- 滚挂:Arch 用户的必修课,以及一个很少被提起的细节
滚挂是每个 Arch 用户迟早要遭遇的情景。
这不是我的偏见,是滚动更新的结构性代价。于是有个很实际的问题:系统挂了,进 TTY 修,AI Agent 能用吗?
分两种看:
- CLI agent(Claude Code / Codex / OpenCode / Pi 等):能跑。
- GUI(Electron)agent:不能。 桌面起不来,它自己也起不来。
而更有意思的是语言这一层:
Linux 虚拟控制台默认只能显示单字节字符,不支持 UTF-8 多字节——中文是方块;而输入法(Fcitx / IBus)是图形会话的服务,TTY 下根本不存在。也就是说,裸 TTY 里中文既显示不了也输入不了。
(能救:装 fbterm + fcitx-frontend-fbterm 并配 .fbtermrc。但这要预先装好——出事之后再装,那时可能已经没网了。)
我搜到过一个真实记录:有人系统升级失败后进 TTY 排障,中文显示不出来,最后是把环境切成英文才把问题解决掉的。
所以我的观察是:当"用自然语言控制系统"成为主要交互方式,英语用户和非英语用户之间会出现一道真实的能力鸿沟——而且恰恰在最需要 Agent、最手忙脚乱的应急时刻,这道鸿沟最刺眼。
【观点】"两个阶级"是我的观察与推断,不是实测结论。但 TTY 不支持中文显示与输入是事实。
- AUR 投毒,在 AI 时代被放大——这条最硬
这条不是观点,是 2026 年刚发生的事:
- 2026 年 6 月 11–12 日,AUR 遭遇史上最大规模投毒:约 1,500 个用户维护的包被注入窃密代码。Arch 团队删包封号宣布"已控制住",不到 24 小时第二波来袭,至少 50 个包中招,且使用了代码混淆——恶意逻辑藏在 Bun 运行时的命令执行流里,装完跳临时目录远程下载执行 JS,全程对用户不可见。
- 第二波是靠本地跑的 AI 模型(Gemma E2B)检出来的,人工审查看漏了。
- 事后 AUR 暂停新账号注册;Phoronix 主编 Michael Larabel 公开建议 Arch 暂时关闭 AUR。
- 再叠加一个 AI 特有的放大效应——slopsquatting:攻击者抢注 AI 幻觉产生的包名。USENIX Security 2025 的研究测了 16 个代码生成模型,19.7% 推荐的包根本不存在;同一个 prompt 跑 10 次,43% 的假名会稳定复现;而且不同模型会幻觉出同一个假名,所以少量恶意包就能打到多个 AI 工具的用户。传统 typosquatting 防御对它基本失效。
把这几条串起来:我要做的是"让 Agent 承担配置和装包"的系统。如果基座是 Arch + AUR(无预审核、人人可提交),那等于把整条链上最高危的一步,交给了一个会幻觉的执行者。
对我来说,这一条不是顾虑,是否决项。
四、诚实地说,Omarchy 强在哪
我不想写一篇没看懂对手就开喷的帖子。它确实强:
- 开箱即用。安装演示 1 分 47 秒,装完就能干活。
- 中文生态已经有人替你做完了——OmarchyCN 提供了国内镜像、Fcitx5 + Rime 输入法、Kimi Code / DeepSeek / GLM 本地 AI 服务,以及微信、QQ、飞书、WPS 的可信安装器,还能可逆地叠加。这一块我自己的方案得从头验。
- AI 场景已经落地。崩溃诊断、对话式主题这些,我还停在纸面上。
- 可持续性强。千万美元级基金会 + 9.0/10 的口碑,不是个人项目能比的。
所以坦白讲:如果你的目标是"尽快有一台能用的 AI Linux 桌面",Omarchy 大概率是更优解,直接装它就行。
我的目标不是这个。我要的是一套自己能完全掌控、可复现、不被厂商绑定的系统。目标不同,结论就不同——这点得先说清楚,不然就是关公战秦琼。
五、为什么是 NixOS
5.1 先说它过去为什么输
NixOS 一直有个尴尬:声明式、函数式、可复现,工程上非常优雅,但人类学不会。Nix 表达式、derivation、home-manager、flake——它的门槛不是"好不好用",而是"你愿不愿意先学一门新语言"。
5.2 现在为什么赢
因为 Agent 出现了,那个前提被抽掉了。
你不需要学 Nix,Agent 学。你不需要理解 derivation 怎么求值,Agent 理解。你只需要表达意图:"我要一个浮动式桌面、一套共享应用配置。"Agent 翻译成 Nix 表达式,dry-build 验证,展示 diff,你拍板,switch 生效。
知识没有消失,它只是从"你必须会"变成了"Agent 必须会"。
5.3 落到具体的能力上
我需要什么
NixOS 给什么
系统不该漂移
配置文本就是真相源(.nix),改什么全写在里面,能 diff、能 review
改坏了能退
generation 原子回滚,且是启动器级的——开机菜单选上一个就行
改之前能验
dry-build 在隔离环境真构建一遍(不是 apt --dry-run 那种假验证)
能重建出一模一样的
表达式级可复现
Agent 好操作
配置即代码,粒度细到单个包、单项配置
滚挂怎么办
开机菜单选一项。不需要 TTY、不需要输入、不需要语言
最后一条值得单说:前面讲过,Arch 滚挂要进 TTY 查日志、pacman 降级、修依赖——复杂,正需要 Agent 帮忙,可 GUI agent 偏偏起不来,TTY 里中文还说不了。
而 NixOS 把"滚挂"这门必修课,降级成了启动菜单里选一项。
5.4 闸门该放哪儿
让 Agent 改系统,必须有闸。我的判断是:闸门要下沉到底层,而不是做成"弹个窗让你确认"。
理由是:Nix 的语法更接近系统本身,它不是用户交互界面。 拿 UI 层的人机确认去拦系统层的操作,是对错了层。
具体实现:Agent 跑在非 root 用户下,sudoers 不授予 nixos-rebuild switch——物理上做不到,不是"约定它别做";而 dry-build 天然无副作用,随便跑。这比任何提示词里的"请不要执行 switch"都硬。
5.5 关于生态,我要更正一个流行说法
常听到"NixOS 生态最强",这个说法不严谨,我不采用。
nixpkgs 条目数确实很大(官方表述超 14 万,Repology 记 nixpkgs unstable 约 11.58 万个项目,居各仓库之首),但增量主要来自语言生态库——rust crate、python 模块、node 包都被算作独立项目,而 Debian 并不会为每个语言库单独打一个 .deb。(佐证:Fedora 44 有 17,233 个 rust-* 包。)
所以准确的表述是:nixpkgs 条目最多,但在"终端用户桌面软件"维度并不显著优于 Debian / Ubuntu / Arch(AUR);至于微信、WPS、钉钉这类只提供 .deb 的国内软件,Debian / Ubuntu 系的可得性反而更好。
选 NixOS 的理由不是"生态更强",而是"声明式 + 原子回滚 + Agent 友好"。生态上它是够用,不是更强。
这点说清楚,才不会被一句"你查过包数量吗"就打倒。
5.6 也得说清 NixOS 不是银弹
安全上:nixpkgs 有 PR 审核 + Hydra CI + hash 锁定 + 配置可审计,缓解但非根治——它同样由人提交;而 NUR(社区 overlay)的风险特征其实接近 AUR。我说的是"风险量级不同",不是"一边有风险一边没有"。
六、我打算怎么做
几个已经定下来的选择,供参考也供拍砖:
- 基座:NixOS
- Agent:WorkBuddy 先行(已在用),渐进迁移到 DeepSeek Harness(开源、插件化,不被单一厂商锁死)
- 没选 Claude Code / Codex 的主要原因,就是与模型强绑定
- 补模型能力:把 Nix 声明语法拆成约束文本,每次任务前导向约束文件做强约束,再配合 dry-build 的编译反馈迭代
- Nix 特别适合这套打法:dry-build 是编译器级强反馈,错了立刻报错,Agent 能自己迭代;换成 YAML 配置,错了要等运行时才炸
- 闸门:下沉到底层(见 5.4)
- 桌面:不锁死,平铺 / 浮动自由选择
- 生态短板:Flatpak 为主,缺的自封装,如意玲珑兜底
还有一条没定、而且我认为是隐患的:系统半死不活时(能启动但行为不对、/home 出问题、要读懂 Nix 求值报错),GUI agent 不好使,需要一条能跑 TTY 的 CLI agent 作应急通道。这条我还没选,欢迎推荐。
七、结语
一句话总结我的立场:
Omarchy 把项目的能力包装成了系统的能力。既然真正的优势在于可配置性,那不如一步到位,用一个能把"配置"本身管好的系统,把这份可配置性用到极致。
而 NixOS 过去输在"人类学不会",现在赢在"Agent 学得会"。
它不是要让你变成 Nix 专家,而是让 Agent 承担配置知识,你只负责表达意图和拍板。
底层稳定不是为了稳定本身,是为了让上面的混乱可以放心发生。
系统负责稳定,Agent 负责填空,你负责干活。
附:本文事实与观点的边界
事实(可查证)
- Omarchy 4.0.0 / Arch + Hyprland + Quickshell / DHH / basecamp 仓库;内置 Claude Code、OpenCode、Pi
- 2026-06 AUR 投毒:约 1500 包、24 小时内二次攻击且使用混淆、AI 检出、暂停新账号注册
- slopsquatting:USENIX Security 2025,16 模型 19.7% 幻觉包名、43% 稳定复现
- Linux 虚拟控制台不支持 UTF-8 多字节;输入法是图形会话服务,TTY 下不存在
- nixpkgs 条目数 >14 万(Repology 约 11.58 万项目);Fedora 44 有 17,233 个 rust-* 包
观点 / 推断(欢迎反驳)
- "Omarchy 的能力是借来的,它提供的是免 DIY" —— 我的判断
- "'免 DIY'这个卖点正被 Agent 抽掉" —— 我的推断
- "英语 / 非英语用户会形成能力鸿沟" —— 我的观察,未经实测
- "闸门应下沉到底层而非 UI 层" —— 我的设计选择
- "我该自建而非装 Omarchy" —— 基于我的目标,未必适用于你
我可能错了的地方
- 我没有长期用过 Omarchy,以上批评基于架构分析与公开资料,不是实测
- fbterm 方案在现代内核(KMS / simpledrm)与 NixOS 上的可用性,我没验证过
- Omarchy 自身的更新机制或许比我所知的更完善;若有,请指正