跳转到内容
omarchyFIELD GUIDE
实用知识 / FIELD GUIDE

应用为什么不跟随主题:生成、重载与外观边界

追踪主题如何进入应用,区分深色模式与完整配色,并完成一个终端模板实验。

根据公开资料整理,未在实机验证。操作前请核对你的版本与硬件环境。

选择主题后,顶栏马上变化,新终端也正常,但文件管理器仍是另一种配色。这些现象不能直接归为同一种故障:不同界面使用不同主题机制,切换深色模式也不等于提供 Omarchy 调色板中的全部颜色。

本页对应固定源码的主题流程。主题图库帮助选择外观,这里帮助理解差异并完成一个小模板实验。先确认版本和路径,尤其注意旧教程中的 ~/.config/omarchy/current/ 与当前源码目录不同。

1. 从主题源文件追踪到应用

章节:1. 从主题源文件追踪到应用
内置主题 + 个人主题覆盖
→ 干净的暂存目录
→ 调色板与模板生成
→ ~/.local/state/omarchy/current/theme/ 当前主题
→ 通知 Shell,执行各应用的换色与重载操作
→ theme-set 钩子

这里有两个问题:正确配置是否生成,应用是否读取了它。已经运行的终端可以接收颜色更新,却仍保留启动时字号;编辑器自己选定的主题,也可能在生成文件正常时继续生效。

当前主题目录在激活时重建。直接编辑里面的文件,可能暂时成功,下次选择主题又丢失。长期修改放在个人主题、个人模板,或应用自己的设置中。

2. 先明确期待怎样的统一

章节:2. 先明确期待怎样的统一
界面 本源码的机制 应检查什么
Omarchy Shell 调色板与 Shell 外观参数 个人 shell.toml 覆盖
Foot 生成文件的 include,加运行中终端换色 引用路径、新窗口与选中文字
其他受支持终端 各终端文件与重载方法 正确配置位置和覆盖顺序
浏览器 浏览器专属集成 当前浏览器、策略、主题与扩展
编辑器 编辑器专属集成 应用内主题和个人插件设置
GNOME 应用 浅色/深色偏好、GTK 主题名、图标主题 这些不等于完整自定义调色板
没有集成的应用 应用自己的外观控制 自动跟随需要明确的集成

网页颜色还由网站或浏览器扩展控制。浏览器边框跟随主题,不代表每个网站必须变色。应比较同类界面,例如两个主题下的终端选中文字,而不是拿网页背景与菜单背景直接比较。

3. 文件管理器配色不同,先查什么

章节:3. 文件管理器配色不同,先查什么

记录当前主题,再比较一个受支持终端和文件管理器。在正常图形用户会话中查询:

终端窗口
omarchy theme current
gsettings get org.gnome.desktop.interface color-scheme
gsettings get org.gnome.desktop.interface gtk-theme
gsettings get org.gnome.desktop.interface icon-theme

本源码中的 GNOME 集成写入浅色/深色偏好、选择 Adwaita 或 Adwaita-dark,并设置图标主题,没有生成完整 GTK4/libadwaita 配色样式表。因此,Nautilus 切换明暗或图标,却不完全采用顶栏颜色,可能是集成范围的边界,而不是主题激活失败。

查询显示的是保存的设置,应用仍可能忽略它或需要重新打开。保存工作,只重开受影响应用比较,不必重置全部主题。

尝试社区 GTK 钩子前,查看生成文件和支持版本。为一个主题写的脚本,在另一套调色板缺少预期键值时,可能生成无效颜色。保存已有 GTK CSS;撤销时也要停用写入它的钩子,只还原 CSS 而保留写入者,不能持久恢复。

4. 检查 Foot 的引用与生成颜色

章节:4. 检查 Foot 的引用与生成颜色

随系统提供的个人 Foot 配置在开头引用当前主题:

[main]
include=~/.local/state/omarchy/current/theme/foot.ini

查看自己的文件,不要用这个片段覆盖全部内容。引用缺失或仍指向旧路径,就可能解释新窗口为何不同。个人颜色节也可能影响启动配置;重复定义怎样处理,应查本机 Foot 手册。

已提供 grep 时,只查看有关行:

终端窗口
grep -n 'selection-' ~/.local/state/omarchy/current/theme/foot.ini

生成文件正常,但旧窗口不同,就新开一个 Foot 比较。主题工具用终端颜色控制序列更新运行实例,终端中的程序也可以改变颜色。新窗口正常时,先排查应用和运行状态,不要立即改模板。

5. 完成一个个人模板实验

章节:5. 完成一个个人模板实验

目标是让兼容主题的终端选区背景采用主题强调色。开始前记录当前主题,并备份已有 ~/.config/omarchy/themed/foot.ini.tpl;没有文件则记录不存在。同名模板会影响所有需要生成该输出的主题选择。

会话中 OMARCHY_PATH 指向安装目录时,先确认来源模板确实存在。复制完整模板,保留其他调色板定义:

终端窗口
mkdir -p ~/.config/omarchy/themed
cp -i "$OMARCHY_PATH/default/themed/foot.ini.tpl" ~/.config/omarchy/themed/foot.ini.tpl

已有个人模板时,只有保存过它并明确要换新基准,才覆盖。在副本中只修改原来的两行:

selection-foreground={{ background_strip }}
selection-background={{ accent_strip }}

_strip 输出不带 # 的十六进制颜色,符合这个文件的格式。花括号属于 .tpl 模板,不应原样留在最终 foot.ini 里。这组前景和背景是实验,不自动保证对比度。

通过 Style → Theme 重新应用记录的主题,查看生成的选区行,再新开终端,选中这段无害输出:

终端窗口
printf 'Selection sample 123 中文\n'

同时检查英文和中文字形。再比较另一个浅色或深色主题,最后切回。如果选中文字难看清,恢复原来的两行;统一规则不保证每套调色板都可读。

6. 个人模板为什么有时被跳过

章节:6. 个人模板为什么有时被跳过

本源码的顺序是:

  1. 暂存目录中已经存在、符合应用规则的主题手写输出文件会保留。
  2. 输出不存在时,先使用同名个人模板生成。
  3. 否则由系统内置模板提供输出。

因此,主题自带的有效 foot.ini 可能让个人模板没有执行机会。通过支持的主题安装器克隆的主题,在暂存阶段会过滤包含终端配置、Lua 等可运行代码的文件,再从调色板重新生成这些输出。本地自己编写的主题与安装的克隆受到不同处理;这是安装规则边界,不是沙箱,也不应该绕过它。

没有生成时,还要看是否有 colors.toml、模板文件名是否正确,以及编辑后有没有重新应用主题。为一个未集成应用添加模板,只会在当前主题目录生成文件;应用仍需配置读取位置并重载,完整接入是另一项工作。

7. 恢复并验证真正的边界

章节:7. 恢复并验证真正的边界

还原原有个人模板;若本次新建,将它移到新的归档名称,且名称不再以 .tpl 结尾。重新应用原主题,检查生成文件,再开新终端。手动把当前生成结果改回去,不是持久撤销。

修改过应用内设置或增加钩子,就分别恢复。选择主题不会恢复每个应用的偏好。记录 Shell、新终端、旧终端和目标应用的比较结果,就能区分剩余差异属于生成、重载、个人覆盖还是缺少集成。

来源与关联指南

章节:来源与关联指南

主题激活源码 · 模板优先级 · GNOME 集成 · Foot 模板 · 官方主题制作说明

继续阅读字体与文字大小、主题图库或更新后的配置维护。