Omarchy 浏览器管理完全指南:默认浏览器、Chromium 家族扩展与 Firefox/Zen 的 Wayland 策略
【免费下载链接】omarchyBeautiful, Modern & Opinionated Linux项目地址: https://gitcode.com/GitHub_Trending/om/omarchy
Omarchy 以开源的 Chromium 作为系统默认浏览器,并在菜单中提供一套完整的浏览器生命周期管理能力(安装、设默认、应用主题、移除)。本文基于 manual/23-browsers.md 及仓库内对应脚本与配置源码,带你掌握 Omarchy 浏览器体系:Chromium 家族(Chromium/Chrome/Edge/Brave)如何借助 Copy URL、Download Video 原生扩展打通浏览器与桌面,Firefox/Zen 如何获得 Wayland 原生渲染与硬件加速策略,以及如何在终端用一行命令完成默认浏览器切换。
适用前提:本文描述的行为基于当前仓库源码,面向 Omarchy(Arch Linux 系、Hyprland + Quickshell 桌面)环境。文中涉及的命令与目录(如
/etc/chromium/policies/managed、~/.config/environment.d)为安装脚本执行时的实际落点。
Omarchy 的浏览器定位:Chromium 为基座
在 Omarchy 中,Chromium 不只是"一个浏览器",而是整个桌面中"打开链接"这一语义的统一落点:
- 它是 安装时配置 的基础组件,属于 base 系统的一部分,无法被当作可选浏览器移除;
Super + Shift + Return快捷方式打开的就是它(相关启动逻辑见 bin/omarchy-launch-browser,对应窗口规则见 default/hypr/apps/browser.lua);- 每一个 Web App(如 manual/25-web-apps.md 所述)也都跑在 Chromium 内部。
它是一个纯开源的构建版本,且会被 Omarchy 主题化——通过下发的浏览器机器策略(managed policy)写入主题色,让浏览器外观与系统其余部分保持一致。主题刷新的实现细节可继续阅读 theming.md 与 theme-system.sh。
安装一个浏览器:Install > Browser
如果 Chromium 不合口味,Omarchy 不会把你困在其中。在 Omarchy 菜单的Install > Browser下可以看到:Chrome、Edge、Brave、Brave Origin、Firefox、Zen。选择一个后,Omarchy 会完成三步工作:
- 安装对应软件包;
- 为它建立策略目录(Chromium 家族是
managed机器策略,Firefox/Zen 是distribution/policies.json); - 把当前主题应用到该浏览器上。
安装动作的真正执行者是 bin/omarchy-install-browser,按参数分发到不同分支,下表总结了各浏览器的安装细节:
| 参数 | 软件包来源 | 策略目录 | 启动参数文件(flags) |
|---|---|---|---|
chromium | 官方仓库chromium | /etc/chromium/policies/managed | ~/.config/chromium-flags.conf |
chrome | AURgoogle-chrome | /etc/opt/chrome/policies/managed | ~/.config/chrome-flags.conf |
edge | AURmicrosoft-edge-stable-bin | /etc/opt/edge/policies/managed | ~/.config/microsoft-edge-stable-flags.conf |
brave | AURbrave-bin | /etc/brave/policies/managed | ~/.config/brave-flags.conf |
brave-origin | AURbrave-origin-bin | /etc/brave/policies/managed | ~/.config/brave-origin-flags.conf |
firefox | 官方仓库firefox | /usr/lib/firefox/distribution | 无(走 environment.d) |
zen | AURzen-browser-bin | /opt/zen-browser/distribution | 无(走 environment.d) |
从实现上看(bin/omarchy-install-browser):
- Chromium 家族统一走
copy_chromium_flags:把仓库预置的 config/chromium-flags.conf 复制到用户的~/.config/<browser>-flags.conf,随后调用omarchy-install-chromium-copy-url与omarchy-install-chromium-ytdlp安装两个原生扩展(下文详述); - Firefox/Zen 走
setup_firefox_wayland:向~/.config/environment.d/omarchy-firefox-wayland.conf写入MOZ_ENABLE_WAYLAND=1,强制以原生 Wayland 模式启动,这对分数缩放(fractional scaling)和平滑触控板滚动至关重要; - 每个 Chromium 家族安装完成后都会调用
omarchy-theme-set-browser立刻应用当前主题。
值得强调的是上表中的机器策略目录。在 Omarchy 中,Chromium 家族的 managed policy 是"每个 profile 都必须存在"的强约束,其目录的创建不是简单的mkdir,而是经过精心加固的流程,见 install/helpers/browser-policy.sh:
- 目录固定为
0755 root:root,可写的、非 root 拥有的父目录会被重建(browser_policy_setup_parent); - 目录内非 root 拥有的文件会被清理(
browser_policy_purge_dir),防止被植入的符号链接或文件干扰策略解析; - 主题色通过特权写入工具
omarchy-theme-set-browser-policy写为color.json(配合 etc/sudoers.d/omarchy-theme-browser 的 sudoers 规则),内容形如{"BrowserThemeColor": "<hex>", "BrowserColorScheme": "device"},其中 hex 会经browser_policy_theme_hex校验,只接受三段 0-255 的 RGB,否则回退到默认色#1c2027。
也就是说,用户安装的主题色永远无法让浏览器策略目录变得不可信——这是一套"主题可自由定制、策略路径必须可信"的纵深防护设计。
设默认浏览器:Setup > Defaults > Browser 与 omarchy default browser
安装一个浏览器并不会自动把它提升为默认。安装脚本的收尾提示也印证了这一点:"Make it the default via Setup > Defaults > Browser"(bin/omarchy-install-browser)。
图形化路径:Setup > Defaults > Browser,菜单只列出你实际安装过的浏览器,并在当前默认项上打勾。
终端路径则是对应命令 bin/omarchy-default-browser:
# 无参数:查询当前默认浏览器 omarchy default browser # 设置默认浏览器 omarchy default browser firefox omarchy default browser brave核心机制是调用xdg-settings读写default-web-browser(即 XDG 默认 web 处理器):
env -u BROWSER xdg-settings get default-web-browser # 查询 env -u BROWSER xdg-settings set default-web-browser <desktop_id> # 设置脚本内部维护了 7 个浏览器与.desktop文件、显示名、图标的映射(bin/omarchy-default-browser),例如chromium → chromium.desktop、firefox → firefox.desktop、zen → zen.desktop。查询时把.desktop反向翻译回简短别名,便于阅读与复用。
两个细节值得注意:
- 命令中刻意用
env -u BROWSER排除环境变量BROWSER的干扰,保证读写始终以 XDG handler 为准; - 如果选中的浏览器尚未安装,脚本并不会报错退出,而是通过
omarchy-default-browser --install <browser>自动触发一次安装(在浮动终端中呈现进度),安装完成后继续设置默认并发送通知"<Name> is now the default browser"(bin/omarchy-default-browser)。
因为设置的是 XDG handler,所以这影响的远不止 Omarchy 的快捷键:从聊天应用里点链接,到终端里执行的任何"打开 URL"操作,都会遵循你的选择。
Chromium 家族专属:Copy URL 与 Download Video 原生扩展
Chromium、Chrome、Edge、Brave 会附带两个由 Omarchy 提供的扩展。它们之所以能做到"网页里取视频、网页地址进系统剪贴板"这种普通扩展做不到的事,关键在原生消息主机(native messaging host)——一个由浏览器拉起、运行在你系统上的小程序。两个扩展对应的消息主机在安装浏览器时随 flags 一起部署(见 bin/omarchy-install-chromium-ytdlp:脚本会把模板 default/chromium/native-messaging-hosts/com.omarchy.ytdlp.json 中的__HOST_PATH__替换为真实路径,并同时写入 Chromium、Chrome/Beta/Unstable、Brave/Brave Origin 全系列、Edge 共十余个 profile 目录的NativeMessagingHosts/下)。
浏览器侧的 flags 也一并确认了扩展的加载方式:config/chromium-flags.conf 中--load-extension=指向/usr/share/omarchy/default/chromium/extensions/下的copy-url、yt-dlp、whatsapp-slim(后者是 Web App 场景的辅助扩展)。
Copy URL:Alt + Shift + L快速取地址
Copy URL 用Alt + Shift + L把当前标签页地址放进系统剪贴板。它刻意绕过浏览器自身剪贴板而走系统剪贴板,因此会触发一条 Omarchy 桌面通知确认操作成功,且该 URL 立刻进入统一剪贴板历史(见 manual/08-unified-clipboard-history.md),可以在任何应用里继续粘贴。工具栏也保留了按钮,供偏好点击的用户使用。
其行为有测试兜底,见 test/shell.d/chromium-copy-url-test.sh。
Download Video:Alt + Shift + D抓取页面视频
Download Video 用Alt + Shift + D抓取当前页面正在播放的视频。它把 URL 交给yt-dlp,因此覆盖面远不止 YouTube。下载文件默认落在~/Videos;如需改目录,设置环境变量OMARCHY_YTDLP_DIR(关于环境变量写在哪里,参见 manual/46-faq.md)。
底层实现非常能体现 Omarchy 的工程风格,见 bin/omarchy-chromium-ytdlp-host:
- 原生消息协议:主机按 native messaging 规范读取 4 字节小端长度前缀 + UTF-8 JSON,校验 URL 必须以
http(s)://开头后,用setsid -f把下载任务完全脱离浏览器进程去执行,让扩展回调能立即干净地 resolve(bin/omarchy-chromium-ytdlp-host); - 先模拟后实下:先用
yt-dlp --simulate确认页面上确有可下载的视频,找不到就发一条 critical 通知"No video found for download",而不是空转一次下载(bin/omarchy-chromium-ytdlp-host); - 进度复用 OSD:下载百分比通过
omarchy-osd驱动屏幕上同一条 OSD(就是音量/亮度用的那条),原地刷新而非堆积通知;实现还做了约 4 次/秒的重绘节流,避免快速下载时进程风暴(bin/omarchy-chromium-ytdlp-host); - 成功后的收尾:只有
after_move真正打印了文件路径才算成功;随后用ffmpeg截取中心裁剪的 256×256 缩略图作为通知预览,通知带--exec mpv点击即播,且文件名与标题都经过防注入校验(拒绝控制字符、拒绝-开头的"参数伪装"、强制落在下载目录内),详细逻辑见 bin/omarchy-chromium-ytdlp-host。
整条链路有系统测试覆盖,见 test/shell.d/chromium-ytdlp-test.sh。
局限:这两套扩展仅限 Chromium 家族。Firefox 与 Zen 不提供。
Firefox 与 Zen:不同的家族,不同的待遇
Firefox 和 Zen 属于 Gecko 家族,Omarchy 对它们采用另一套处理方式(bin/omarchy-install-browser):
- 写入 policies 文件以启用合理默认值。安装脚本把仓库预置的 default/firefox/policies.json 以
0644 root:root安装进各自的distribution目录,内容包含:apz.overscroll.enabled: true—— 启用触控板/滚轮弹性回弹的过滚动反馈;media.ffmpeg.vaapi.enabled: true与media.hardware-video-decoding.force-enabled: true—— 开启 VA-API 硬件视频解码(对 X11/合成器的省电解码很重要);widget.disable-swipe-tracker: false—— 保留 Wayland 手势滑动的惯性追踪;widget.wayland.fractional-scale.enabled: true—— 开启 Wayland 分数缩放支持。
- 切换原生 Wayland 模式:向
~/.config/environment.d/写入MOZ_ENABLE_WAYLAND=1,这在分数缩放显示器与触控板平滑滚动场景下是刚需(Firefox 的 XWayland 模式在这些场景表现不佳)。 - 不做的事:不给它们安装上述 Chromium 扩展,也不对其做 Omarchy 主题化——这两块体验留给你自行配置。
策略文件的加固同样不放松:browser_policy_setup_firefox_distribution会先加固 distribution 目录,再写入 policies.json,并拒绝 group/other 可写的策略文件(install/helpers/browser-policy.sh)。
另外在 Hyprland 的窗口管理层面,浏览器家族是被显式区分的:default/hypr/apps/browser.lua 用正则把 Chromium 系(chromium/chrome/brave-browser/microsoft-edge/Vivaldi 等)打上chromium-based-browser标签、Firefox 系(firefox/zen/librewolf)打上firefox-based-browser标签,并给二者应用一致的窗口透明度规则(opacity 1.0 0.985,聚焦时全不透明);像 YouTube、Zoom 这类视频窗口还会被摘掉该标签,避免透明叠加干扰观影与视频会议。
移除浏览器:Remove > Browser
前面安装的一切都可以在Remove > Browser下撤销——对应脚本 bin/omarchy-remove-browser 负责卸载软件包与清理配套文件。唯一例外是Chromium:它属于 base 系统的一部分,不会出现在移除列表中,也不应被当作可选项卸载。
移除后若浏览器仍是 XDG 默认 handler,记得重新到Setup > Defaults > Browser或使用omarchy default browser指定一个新的默认浏览器,让系统里的"打开链接"行为保持指向一个真实存在的程序。
小结
| 能力 | Chromium / Chrome / Edge / Brave | Firefox / Zen |
|---|---|---|
| Omarchy 主题化 | 是(managed policy 写入BrowserThemeColor) | 否 |
| Copy URL / Download Video 扩展 | 是(通过原生消息主机) | 否 |
| 默认策略文件 | 无(仅主题色 policy) | 是(default/firefox/policies.json) |
| 原生 Wayland 切换 | 由启动参数--ozone-platform=wayland保证 | MOZ_ENABLE_WAYLAND=1写入 environment.d |
| 能否从Remove > Browser移除 | 除 Chromium 外均可 | 可 |
这套设计的核心权衡清晰:Chromium 家族获得深度系统集成(主题、剪贴板、yt-dlp、OSD 进度),代价是策略路径的严格加固;Firefox/Zen 则退一步,只保证 Wayland 原生渲染与开箱即用的播放/滚动体验,把集成深度交给用户决定。无论选哪条路,Omarchy 都保证"安装 → 设默认 →(可选)移除"整条生命周期在菜单与终端中一致、可审计。
【免费下载链接】omarchyBeautiful, Modern & Opinionated Linux项目地址: https://gitcode.com/GitHub_Trending/om/omarchy
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考