一天一个开源项目

开源项目第198期:Omarchy — DHH 打造的「意见鲜明」Linux 桌面系统,Arch + Hyprland,30k Stars

由 Ruby on Rails 作者 DHH 打造的全定制 Linux 桌面发行版,基于 Arch Linux + Hyprland 平铺窗口管理器 + Quickshell。预装 22 套精美主题、Neovim、AI 编程 Agent 支持、完整开发环境、键盘驱动一切的操作哲学。Shell,MIT,30k Stars。

·约 10 分钟阅读·AI Tools

引言

"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 + SpaceOmarchy 菜单(启动应用、更改设置、安装软件……一切入口)
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
claudeClaude Code(Anthropic)
codexOpenAI Codex
opencodeOpenCode
copilotGitHub Copilot CLI
crushCharmbracelet Crush
grokxAI Grok CLI
oriOpenRouter 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

新版本可用时,时钟右侧会出现一个圆形箭头图标,点击即开始更新。


参考资源


总结

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 和技能工具,每一个都经过真实工作流验证。没有炒作,只有真正好用的工具。

访问我的个人主页,获取更多见解和有趣的产品。