引言
"Beautiful, Modern & Opinionated Linux"
这是「每日一个开源项目」系列的第 198 篇。今天的项目是 Omarchy —— 由 Ruby on Rails 作者、Basecamp 创始人 DHH(David Heinemeier Hansson)打造的全意见鲜明 Linux 桌面系统,30,822 颗 Star,MIT 许可证。
Omarchy 解决一个具体问题:怎样让 Linux 桌面既美观、现代,又开箱即用——不是让你把三十个配置文件从零开始拼凑,而是"这就是我日常用的全套,直接给你"。
你会学到什么
- Omarchy 的技术栈:Arch Linux + Hyprland + Quickshell 各自的角色
- 键盘驱动一切的导航哲学与核心热键体系
- 22 套完整主题及跨应用同步机制
- AI 编程 Agent 作为一等公民的集成方式
- 开发环境支持(Rails/Node/Python/Go 等)与 Dotfiles 定制
- 更新频道(stable/RC/edge/dev)管理
前提知识
- 基本 Linux 命令行经验
- 对平铺窗口管理器(tiling WM)有初步印象会有帮助
- 不需要 Arch 安装经验——Omarchy 提供完整的 ISO
项目背景
概述
Omarchy 是一个"omakase"(日语:お任せ,即「交由主厨决定」)风格的 Linux 发行版。DHH 在产品上一贯喜欢做强观点、高整合度的选择——Rails 是这样,HEY 邮件是这样,Omarchy 也是这样:不给你无限的选择,而是给你一套经过打磨的完整方案。
底层是 Arch Linux(滚动更新),窗口管理是 Hyprland(现代 Wayland 平铺 WM),桌面 UI 组件层是 Quickshell(负责顶栏、菜单、通知、屏保)。三层各司其职,合为一套系统。
项目信息
- 作者: DHH(David Heinemeier Hansson),Basecamp / 37signals
- 主要语言: Shell
- 许可证: MIT
- 官网: omarchy.org
- 手册: learn.omacom.io
项目数据
- ⭐ GitHub Stars: 30,822+
- 🍴 Forks: 3,131+
- 📄 许可证: MIT
- 📅 创建时间: 2025-06-01
快速上手
安装
# 1. 从官网下载 ISO
# https://omarchy.org/
# 2. 写入 U 盘
# Mac/Windows: balenaEtcher
# Linux: caligula
# 3. 进入 BIOS,关闭 Secure Boot / TPM,从 U 盘引导
# 4. 回答配置问题,选择安装盘,等待安装完成(快则 1 分钟内)注意:全盘加密是默认开启的,
全盘安装会清空所选硬盘,请先备份数据。如需双系统,选择「空闲空间安装」,并先在 Windows 里关闭 BitLocker。
支持为他人安装(首次开机时再完成个人配置)和无人值守批量安装(用于 VM 或机器群)。
核心设计:键盘驱动一切
Omarchy 最鲜明的立场:键盘是主角,鼠标是配角。
系统刚启动时,不按任何键就什么也做不了。但你可以:
| 热键 | 功能 |
|---|---|
Super + Space | Omarchy 菜单(启动应用、更改设置、安装软件……一切入口) |
Super + Return | 打开终端 |
Super + Shift + Return | 打开浏览器 |
Super + K | 查看所有热键映射 |
Super + W / Super + Q | 关闭窗口 |
Super + 1/2/3/4 | 跳转工作区 |
Super + Shift + 1/2/3/4 | 把当前窗口移到对应工作区 |
Super + F | 全屏 |
Super + T | 切换窗口平铺/浮动模式 |
Super + Arrow | 切换焦点到相邻窗口 |
Super + J | 切换水平/垂直排列 |
这种设计的逻辑来自 DHH 的一个观点:「美丽的系统是有动力的系统,而生产力来自动力」。一旦习惯键盘操作,你不会再想回去用鼠标点击 Dock。
Hyprland 平铺窗口管理
Omarchy 用 Hyprland 作为 Wayland 合成器。平铺 WM 的核心思想:窗口不重叠,自动排列。
打开一个窗口,占满全屏。打开第二个,两者并排。打开第三个,自动三分。不需要手动拖窗口到"左边一半"。
默认布局叫 dwindle:所有窗口始终可见,根据需要自动缩小。还有 scrolling 布局:窗口并排排列,超出屏幕边缘可横向滚动,适合多代码文件并排查看。
# 布局切换
Super + L → 当前工作区切换 dwindle/scrolling 布局
# 快速多窗口演示:
Super + Return → 打开终端(全屏)
Super + Shift + Return → 打开浏览器(两分)
Super + Ctrl + T → 打开活动监视器(浮动)
Super + Shift + F → 打开文件管理器(四分)窗口管理还支持:scratchpad(临时弹出面板)、sticky 窗口(跨工作区悬浮)、单窗口正方形比例固定等进阶用法。
22 套主题:跨应用同步
这是 Omarchy 设计用力最深的地方之一。每套主题一次性覆盖:
- 桌面壁纸
- 终端(Foot/Alacritty/Ghostty/Kitty)
- Neovim
- btop(活动监视器)
- Chromium
- 整个 Omarchy Shell(顶栏、菜单、通知、OSD、锁屏)
内置主题包括 Tokyo Night、Catppuccin、Gruvbox、Nord、Rose Pine、Hackerman、Matte Black、Vantablack 等 22 套。切换命令:
# 通过菜单切换
Super + Ctrl + Shift + Space → 直接打开主题选择器
# 通过 CLI 切换
omarchy theme set tokyo-night
omarchy theme list主题的核心文件是 colors.toml,定义了一组颜色变量,所有应用的配色都从这里生成。如果你想做自己的主题,复制一个现有主题到 ~/.config/omarchy/themes/ 下,修改 colors.toml 即可——系统会自动把颜色推送到所有应用。
还有一个 Aether GUI 工具,用可视化的方式调色和选背景图,比手写 TOML 直观得多。
AI 编程 Agent:一等公民
Omarchy 对 AI 编程 Agent 的态度很明确:内置支持多个主流 Agent,但不强制选择。
所有 Agent 以 lazy-load 方式存在:命令存在于 ~/.local/bin/(mise 管理的小 stub),第一次运行时才真正下载安装。
| 命令 | Agent |
|---|---|
claude | Claude Code(Anthropic) |
codex | OpenAI Codex |
opencode | OpenCode |
copilot | GitHub Copilot CLI |
crush | Charmbracelet Crush |
grok | xAI Grok CLI |
ori | OpenRouter harness(支持把其他 agent 跑在任意模型上) |
设置默认 Agent:
omarchy default agent claude
# 或通过 Super + Space → Setup > Defaults > Agent设置完成后,Super + Shift + Ctrl + A 直接在专属终端窗口里启动默认 Agent。也有终端别名:
a # 在当前终端内联运行默认 Agent
c # 启动 OpenCode(自动批准模式)
cx # 启动 Claude Code(自动批准模式)
cy # 启动 Codex(自动批准模式)主题切换时,Claude Code、Pi、OpenCode 的配色会自动跟随 Omarchy 主题同步——这是主题系统跨应用覆盖能力的体现。
开发工具集成
Omarchy 通过 Omarchy 菜单(Super + Space → Install > Development)内置了一整套开发环境安装支持:
| 类别 | 支持 |
|---|---|
| 后端框架 | Ruby on Rails、Laravel、Symfony、Phoenix(Elixir) |
| 运行时 | Node.js、Bun、Deno、Python、Go、Rust、Java、.NET、OCaml、Zig、Clojure、Scala |
| 容器 | Docker + Docker Compose(预装) |
| 编辑器 | Neovim(默认)+ VSCode/Cursor/Zed/Helix/Emacs 可选安装 |
| 版本管理 | Mise(统一管理多语言多版本) |
多语言版本管理全部交给 Mise:
# 安装并设为全局默认
mise use -g ruby
# 项目级版本(读取 .ruby-version / .node-version 等)
mise i默认编辑器是 Neovim,基于 LazyVim 预配置,开箱即用,支持全套 LSP、模糊查找、AI 代码补全。如果你想切换编辑器,通过菜单安装后,Setup > Defaults > Editor 设置为系统默认即可,主题也会自动同步。
顶栏:可交互的信息密度
顶栏由 Quickshell 渲染,是整个 shell 进程的一部分——和菜单、通知、OSD、锁屏共享同一个进程。好处是主题切换后立刻生效,没有独立面板启动延迟。
顶栏三段式布局:
- 左侧:Omarchy logo(菜单入口)+ 工作区指示器
- 中间:状态指示、时钟、键盘布局、天气、更新徽章
- 右侧:系统托盘、AI Agent 图标、蓝牙、网络、音频、显示、电源
几乎每个组件都响应左键/右键/中键点击和滚轮:
| 组件 | 左键 | 右键 | 中键/滚轮 |
|---|---|---|---|
| 时钟 | 弹出日历 | 切换显示格式 | 时区选择 |
| 天气 | 天气预报弹窗 | 推送完整天气通知 | 刷新 |
| 音频 | 音频面板 | 静音 | 中键打开面板/滚轮调音量 |
| 显示 | 显示面板 | — | 滚轮调亮度 |
| 蓝牙 | 蓝牙面板 | 切换蓝牙开关 | — |
配置与定制
Omarchy 的配置哲学:/usr/share/omarchy/ 属于系统,~/.config/ 属于你。要覆盖默认值,在 ~/.config/ 里新建对应文件即可,系统会优先读取用户配置。
关键配置文件:
| 文件 | 作用 |
|---|---|
~/.config/hypr/bindings.lua | 自定义热键 |
~/.config/hypr/monitors.lua | 显示器布局和分辨率 |
~/.config/hypr/input.lua | 键盘布局、鼠标、触控板 |
~/.config/hypr/looknfeel.lua | 间距、边框、动画 |
~/.config/omarchy/shell.json | 顶栏位置、组件、屏保/锁屏计时 |
很多配置可以直接在菜单里编辑(Super + Space → Setup),保存退出 Neovim(:wq)后,需要重启的进程会自动重启。
更新频道
| 频道 | 说明 | 适合人群 |
|---|---|---|
| stable | 官方正式版本,Arch 镜像延迟一个月跟进 | 所有人 |
| RC | 发布候选版,正式版前的最终验证 | 愿意协助测试 |
| edge | 最新开发构建 + 最新 Arch 包 | 有 Linux 经验 |
| dev | 直接链接到本地 git checkout | 参与开发 |
# 更新 Omarchy 和系统包
omarchy update
# 或 Super + Space → Update > Omarchy新版本可用时,时钟右侧会出现一个圆形箭头图标,点击即开始更新。
参考资源
- 🌟 GitHub: basecamp/omarchy
- 🌐 官网: omarchy.org
- 📖 完整手册: learn.omacom.io
- 🎨 额外主题: omarchy.org/themes
总结
Omarchy 是一个很典型的 DHH 风格产品:强观点、高整合、不给你太多选择——但给你一套打磨过的完整方案。
三点值得注意:
"意见鲜明"是一种工程决策,不是局限。 传统 Linux 桌面的问题往往不是缺功能,而是配置碎片化——窗口管理器、主题、编辑器、终端、通知……各自为政。Omarchy 的价值在于把这些整合成一套呼吸一致的系统。主题切换时,终端、Neovim、Chromium、顶栏全部同步,这背后需要大量的配置管道工作。
键盘驱动是生产力选择,不是极客偏好。 平铺 WM 用户的核心体验是:窗口永远在预期位置,不需要用眼睛找窗口,手离开键盘的时间大幅减少。这和 vim 的学习曲线一样——入门有门槛,但后期回报更高。
AI Agent 的集成方式值得参考。 不是把某个特定 Agent 硬绑进系统,而是用 lazy-load stub 支持所有主流 Agent,用统一的 omarchy default agent 管理默认选择,用主题系统让 Agent 的 UI 跟随系统配色。这是一种工具链设计的示范。
如果你对 Linux 桌面感兴趣,又不想从零配置,Omarchy 是目前整合度最高、UI 最精致的选项之一。
探索 PrimeSkills —— 精选 AI agent 和技能工具,每一个都经过真实工作流验证。没有炒作,只有真正好用的工具。
访问我的个人主页,获取更多见解和有趣的产品。