name: omarchy-theming description: 创建和管理 Omarchy 桌面主题。当处理 colors.toml、终端主题(Alacritty/Kitty/Ghostty)、Hyprland 颜色、Waybar 样式、btop 主题或主题安装/移除时使用。
Omarchy 主题创建
通过定义 colors.toml 中的颜色来为 Omarchy 创建主题。颜色会自动传播到所有桌面应用程序。
快速开始
<步骤>
-
创建主题目录:
mkdir -p ~/.config/omarchy/themes/my-theme/backgrounds -
创建包含所有 22 个必需变量的
colors.toml(见下方架构) -
将壁纸图像添加到
backgrounds/ -
应用主题:
omarchy-theme-set my-theme
</步骤>
说明
创建或修改 Omarchy 主题时:
- 始终在
colors.toml中定义所有 22 个颜色变量 - 缺少变量会导致错误 - 仅使用 HEX 格式 (
#RRGGBB) - 不要使用 RGB、HSL 或命名颜色 - 包含
backgrounds/目录,其中至少有一张壁纸图像 - 对于浅色主题,请在主题目录中创建空的
light.mode文件 - 更改后使用
omarchy-theme-set测试
有关每个应用程序的详细变量用法,请参阅 reference.md。
主题结构
~/.config/omarchy/themes/{主题名称}/
├── colors.toml # [必需] 22 个颜色定义
├── backgrounds/ # [必需] 壁纸图像 (PNG/JPG)
├── preview.png # [推荐] 主题预览
├── icons.theme # [推荐] GTK 图标主题名称
├── neovim.lua # [推荐] LazyVim 配色方案
├── vscode.json # [推荐] VS Code 主题元数据
├── btop.theme # [推荐] btop 颜色主题
├── light.mode # [可选] 空文件 = 浅色主题
├── chromium.theme # [可选] 浏览器主题 RGB
└── hyprland.conf # [可选] 静态 Hyprland 覆盖
colors.toml 架构
<架构>
# 核心 UI (6 个变量)
accent = "#89b4fa" # 主强调色
cursor = "#f5e0dc" # 终端光标
foreground = "#cdd6f4" # 主文本
background = "#1e1e2e" # 主背景
selection_foreground = "#1e1e2e" # 选中文本前景色
selection_background = "#f5e0dc" # 选中文本背景色
# ANSI 普通 (8 个变量)
color0 = "#45475a" # 黑色
color1 = "#f38ba8" # 红色 (错误)
color2 = "#a6e3a1" # 绿色 (成功)
color3 = "#f9e2af" # 黄色 (警告)
color4 = "#89b4fa" # 蓝色 (链接)
color5 = "#f5c2e7" # 洋红色 (特殊)
color6 = "#94e2d5" # 青色 (代码)
color7 = "#bac2de" # 白色 (文本)
# ANSI 亮色 (8 个变量)
color8 = "#585b70" # 亮黑色 (柔和/禁用)
color9 = "#f38ba8" # 亮红色
color10 = "#a6e3a1" # 亮绿色
color11 = "#f9e2af" # 亮黄色
color12 = "#89b4fa" # 亮蓝色
color13 = "#f5c2e7" # 亮洋红色
color14 = "#94e2d5" # 亮青色
color15 = "#a6adc8" # 亮白色
</架构>
模板变量
每种颜色支持 3 种格式以适应不同上下文:
| 格式 | 示例 | 输出 | 使用场景 |
|---|---|---|---|
{{ name }} |
{{ accent }} |
#89b4fa |
CSS, TOML |
{{ name_strip }} |
{{ accent_strip }} |
89b4fa |
Hyprland rgb() |
{{ name_rgb }} |
{{ accent_rgb }} |
137,180,250 |
RGBA 值 |
示例
<示例 title=“深色主题 (Tokyo Night)”>
accent = "#7aa2f7"
cursor = "#c0caf5"
foreground = "#a9b1d6"
background = "#1a1b26"
selection_foreground = "#c0caf5"
selection_background = "#7aa2f7"
color0 = "#32344a"
color1 = "#f7768e"
color2 = "#9ece6a"
color3 = "#e0af68"
color4 = "#7aa2f7"
color5 = "#ad8ee6"
color6 = "#449dab"
color7 = "#787c99"
color8 = "#444b6a"
color9 = "#ff7a93"
color10 = "#b9f27c"
color11 = "#ff9e64"
color12 = "#7da6ff"
color13 = "#bb9af7"
color14 = "#0db9d7"
color15 = "#acb0d0"
</示例>
<示例 title=“浅色主题 (Catppuccin Latte)”>
# 注意:对于浅色主题,请创建空的 light.mode 文件
accent = "#1e66f5"
cursor = "#dc8a78"
foreground = "#4c4f69"
background = "#eff1f5"
selection_foreground = "#eff1f5"
selection_background = "#dc8a78"
color0 = "#bcc0cc"
color1 = "#d20f39"
color2 = "#40a02b"
color3 = "#df8e1d"
color4 = "#1e66f5"
color5 = "#ea76cb"
color6 = "#179299"
color7 = "#5c5f77"
color8 = "#acb0be"
color9 = "#d20f39"
color10 = "#40a02b"
color11 = "#df8e1d"
color12 = "#1e66f5"
color13 = "#ea76cb"
color14 = "#179299"
color15 = "#6c6f85"
</示例>
<示例 title=“neovim.lua”>
return {
{ "folke/tokyonight.nvim", priority = 1000 },
{ "LazyVim/LazyVim", opts = { colorscheme = "tokyonight" } },
}
</示例>
<示例 title=“vscode.json”>
{ "name": "Tokyo Night", "extension": "enkia.tokyo-night" }
</示例>
主题命令
omarchy-theme-set my-theme # 应用主题
omarchy-theme-current # 显示当前主题
omarchy-theme-list # 列出可用主题
omarchy-theme-install <git-url> # 从 git 安装
omarchy-theme-remove my-theme # 移除主题
omarchy-theme-update # 更新 git 主题
omarchy-theme-bg-next # 循环切换壁纸
故障排除
<故障排除> 颜色未应用:
- 验证所有 22 个变量已定义
- 检查 HEX 格式 (
#RRGGBB) - 运行
omarchy-theme-set重新生成
应用程序未主题化:
- 将静态配置放在主题文件夹中以覆盖模板
- 检查变量名称是否与 colors.toml 键匹配
yq 错误:
sudo pacman -S yq
</故障排除>