omarchy-theming
Omarchy Theme Creation
Create themes for Omarchy by defining colors in colors.toml. Colors automatically propagate to all desktop applications.
Quick Start
-
Create
colors.tomlwith all 22 required variables (see schema below) -
Add wallpaper images to
backgrounds/ -
Apply theme:
omarchy-theme-set my-theme
Instructions
When creating or modifying Omarchy themes:
- Always define all 22 color variables in
colors.toml- missing variables cause errors - Use HEX format only (
#RRGGBB) - no RGB, HSL, or named colors - Include
backgrounds/directory with at least one wallpaper image - For light themes, create empty
light.modefile in theme directory - Test with
omarchy-theme-setafter changes
For detailed variable usage per application, see reference.md.
Theme Structure
~/.config/omarchy/themes/{theme-name}/
├── colors.toml # [Required] 22 color definitions
├── backgrounds/ # [Required] Wallpaper images (PNG/JPG)
├── preview.png # [Recommended] Theme preview
├── icons.theme # [Recommended] GTK icon theme name
├── neovim.lua # [Recommended] LazyVim colorscheme
├── vscode.json # [Recommended] VS Code theme metadata
├── btop.theme # [Recommended] btop color theme
├── light.mode # [Optional] Empty file = light theme
├── chromium.theme # [Optional] Browser theme RGB
└── hyprland.conf # [Optional] Static Hyprland override
colors.toml Schema
ANSI Normal (8 variables)
color0 = "#45475a" # Black color1 = "#f38ba8" # Red (errors) color2 = "#a6e3a1" # Green (success) color3 = "#f9e2af" # Yellow (warnings) color4 = "#89b4fa" # Blue (links) color5 = "#f5c2e7" # Magenta (special) color6 = "#94e2d5" # Cyan (code) color7 = "#bac2de" # White (text)
ANSI Bright (8 variables)
color8 = "#585b70" # Bright Black (muted/disabled) color9 = "#f38ba8" # Bright Red color10 = "#a6e3a1" # Bright Green color11 = "#f9e2af" # Bright Yellow color12 = "#89b4fa" # Bright Blue color13 = "#f5c2e7" # Bright Magenta color14 = "#94e2d5" # Bright Cyan color15 = "#a6adc8" # Bright White
</schema>
## Template Variables
Each color supports 3 formats for different contexts:
| Format | Example | Output | Use Case |
|--------|---------|--------|----------|
| `{{ name }}` | `{{ accent }}` | `#89b4fa` | CSS, TOML |
| `{{ name_strip }}` | `{{ accent_strip }}` | `89b4fa` | Hyprland `rgb()` |
| `{{ name_rgb }}` | `{{ accent_rgb }}` | `137,180,250` | RGBA values |
## Examples
<example title="Dark Theme (Tokyo Night)">
```toml
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"
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"
</example>
<example title="neovim.lua">
```lua
return {
{ "folke/tokyonight.nvim", priority = 1000 },
{ "LazyVim/LazyVim", opts = { colorscheme = "tokyonight" } },
}
Theme Commands
omarchy-theme-set my-theme # Apply theme
omarchy-theme-current # Show current theme
omarchy-theme-list # List available themes
omarchy-theme-install <git-url> # Install from git
omarchy-theme-remove my-theme # Remove theme
omarchy-theme-update # Update git themes
omarchy-theme-bg-next # Cycle wallpaper
Troubleshooting
App not themed:
- Place static config in theme folder to override template
- Check variable names match colors.toml keys
yq errors:
sudo pacman -S yq
More from bityoungjae/marketplace
mathjax-rendering
Render mathematical formulas in Obsidian using LaTeX/MathJax syntax. Use when writing equations, matrices, integrals, summations, or any mathematical notation in Obsidian notes.
27tikzjax-diagramming
Create TikZ diagrams in Obsidian using TikZJax plugin. Use when visualizing geometric shapes, coordinate systems, game scenes, circuit diagrams, chemical structures, or complex technical drawings that require precise positioning.
8commit-helper
Analyzes git changes and creates commits with Korean messages following Conventional Commits. Use when the user asks to commit, make commits, organize changes, or says "커밋해줘", "변경사항 정리해줘", "커밋 만들어줘".
5mermaid-diagramming
Create Mermaid diagrams in Obsidian including flowcharts, sequence diagrams, class diagrams, and more. Use when visualizing processes, system architectures, workflows, or any structured relationships in Obsidian notes.
5neovim-debugging
Debug Neovim/LazyVim configuration issues. Use when: user reports Neovim errors, keymaps not working, plugins failing, or config problems. Provides systematic diagnosis through hypothesis testing, not just checklists. Think like a detective narrowing down possibilities.
4project-interview
Resources for conversational interviews to create learner profiles. Used by project-interviewer agent during /init.
4