Where Are Omarchy Theme Colors Defined? A Complete Guide to the Theming System

Omarchy theme colors are defined in themes/<name>/colors.toml files within the repository, which get staged to ~/.local/state/omarchy/current/theme/colors.toml during activation and parsed by CLI utilities like omarchy-theme-color to configure the shell, terminal, and UI components.

Omarchy uses a centralized TOML-based color system that separates palette definitions from template rendering. Understanding where these Omarchy theme colors live is essential for customizing your desktop environment or creating new themes. This guide examines the source code structure in the omacom/omarchy repository to map exactly how color values flow from definition files to runtime application.

Core Color Definition Files

The master color definitions for every theme reside in the repository’s themes/ directory. Each theme maintains its own colors.toml file that serves as the single source of truth for the entire palette.

Built-in themes follow the path structure themes/<name>/colors.toml. For example, the Nord theme’s palette is stored at themes/nord/colors.toml. These files contain key-value pairs mapping semantic color names (like accent, bg, fg) to hex color codes.

When you activate a theme using omarchy-theme-set <name>, the system copies the selected theme’s colors.toml to ~/.local/state/omarchy/current/theme/colors.toml. This staged file becomes the runtime reference for all color-dependent applications.

CLI Tools for Color Resolution

Omarchy provides specialized scripts to query and manipulate color values without manually parsing TOML files.

Querying Individual Colors

The bin/omarchy-theme-color utility reads the active theme’s staged colors.toml and returns specific values:


# Get the accent color with hash prefix

omarchy-theme-color accent

# Output: #7aa2f7

# Get raw hex value without hash

omarchy-theme-color --raw accent

# Output: 7aa2f7

# List all available color keys

omarchy-theme-color --all

This script is the primary interface for shell scripts and templates that need to resolve semantic color names to actual hex values at runtime.

Template Rendering Pipeline

During theme activation, bin/omarchy-theme-set-templates processes all files in default/themed/*.tpl using values from the staged colors.toml. It substitutes template placeholders with actual color codes to generate final configuration files for terminals, editors, and UI components.

You can preview a theme’s color ramp before applying it:

omarchy dev theme-preview tokyo-night

Runtime Color Consumption

Once staged, the color palette is consumed by Omarchy’s shell components through QML singletons. The file shell/Commons/Color.qml acts as a runtime singleton that loads the active palette, making colors available to all UI elements via the Color and Style namespaces.

This architecture ensures that changing the theme updates the entire desktop environment consistently, from terminal emulators to native UI widgets.

Legacy Theme Migration

For themes that predate the colors.toml standard, Omarchy includes a conversion utility. The script bin/omarchy-theme-colors-from-alacritty generates a colors.toml file from an existing alacritty.toml, allowing legacy terminal color schemes to integrate with the modern Omarchy theming system.

To list all available built-in color definitions:

ls themes/*/colors.toml

Summary

  • Omarchy theme colors are defined in themes/<name>/colors.toml files within the repository root.
  • Active themes are staged to ~/.local/state/omarchy/current/theme/colors.toml for runtime access.
  • The omarchy-theme-color CLI utility resolves semantic names to hex values.
  • bin/omarchy-theme-set-templates renders .tpl files using the active palette during theme switching.
  • shell/Commons/Color.qml provides QML singletons that consume the palette for UI rendering.
  • Legacy Alacritty themes can be converted using bin/omarchy-theme-colors-from-alacritty.

Frequently Asked Questions

What file format does Omarchy use for theme colors?

Omarchy uses TOML files named colors.toml to store theme color definitions. Each file maps semantic keys (like accent, bg, fg) to hex color codes, providing a human-readable format that is easily parsed by both shell scripts and QML applications.

How do I check the current theme's color values?

Use the omarchy-theme-color command-line utility. Run omarchy-theme-color --all to display every key-value pair in the active palette, or specify a key like omarchy-theme-color accent to retrieve a specific color value with its hex prefix.

Where does Omarchy store the active theme after selection?

When you run omarchy-theme-set <name>, the system stages the selected theme’s files to ~/.local/state/omarchy/current/theme/colors.toml. This location serves as the runtime source of truth for all applications and scripts querying the current color scheme.

Can I convert existing Alacritty themes to Omarchy format?

Yes. Run bin/omarchy-theme-colors-from-alacritty against an existing alacritty.toml file to auto-generate a compatible colors.toml. This utility bridges legacy terminal color definitions with Omarchy’s modern theming architecture, enabling migration without manual color extraction.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →