Where Are Omarchy Themes Stored? System-Wide and User Directory Paths Explained

Omarchy stores themes in two locations: system-wide themes at $OMARCHY_PATH/themes/ (repository root) and user-specific themes at $HOME/.config/omarchy/themes/.

Understanding where Omarchy themes are stored is essential for customization, troubleshooting, and theme development. This guide breaks down both storage locations with actual file paths from the Omarchy source code and practical commands to manage your themes.

System-Wide Themes: $OMARCHY_PATH/themes/

The system-wide themes ship with the Omarchy repository and serve as defaults for all users. These reside under the repository root, referenced via the $OMARCHY_PATH environment variable.

According to test/shell.d/menu-test.sh, Omarchy iterates over themes using this pattern:

for theme in "$ROOT"/themes/*/chromium.theme; do

Each theme lives in its own subdirectory containing asset files like chromium.theme and colors.toml. To inspect the default Tokyo Night theme:

cat "$OMARCHY_PATH/themes/tokyo-night/colors.toml"

The $OMARCHY_PATH variable is set during the Omarchy session initialization and points to your repository checkout. As documented in docs/menu.md, the menu schema loads themes directly from $ROOT/themes.

Key System Theme Files

  • chromium.theme — Browser theming assets
  • colors.toml — Color palette definitions
  • Additional theme-specific configuration files

User-Specific Themes: $HOME/.config/omarchy/themes/

The user themes directory stores themes you install or customize yourself. This location takes precedence for personal modifications without affecting system defaults.

In test/shell.d/theme-staging-test.sh, the user themes path is explicitly defined:

themes="$home/.config/omarchy/themes"

This separation ensures:

  • System updates don't overwrite your custom themes
  • Multi-user systems maintain isolated theme preferences
  • Easy backup and version control of personal configurations

Practical Commands for Theme Management

List all available system themes:

ls "$OMARCHY_PATH/themes"

List your custom user themes:

ls "$HOME/.config/omarchy/themes"

Copy a system theme to user space for customization:

mkdir -p "$HOME/.config/omarchy/themes"
cp -r "$OMARCHY_PATH/themes/tokyo-night" "$HOME/.config/omarchy/themes/my-tokyo-night"

File Locations Reference

Source File Relevance
test/shell.d/menu-test.sh System theme iteration with $ROOT/themes/*/chromium.theme
test/shell.d/theme-staging-test.sh User theme path: $home/.config/omarchy/themes
test/cli References to $ROOT/themes/tokyo-night/colors.toml
docs/menu.md Menu schema documentation for $ROOT/themes

Summary

  • System themes live at $OMARCHY_PATH/themes/ — repository-bundled defaults sourced from each subdirectory
  • User themes live at $HOME/.config/omarchy/themes/ — personal customizations that persist across updates
  • Omarchy's menu system scans $ROOT/themes to populate available options
  • Environment variable $OMARCHY_PATH determines the active repository root

Frequently Asked Questions

How do I install a custom Omarchy theme?

Download or create a theme directory and place it in $HOME/.config/omarchy/themes/. Ensure it contains the required files like colors.toml and chromium.theme. The menu system will detect it automatically on next launch.

Can I modify system themes directly?

You can, but changes will be lost on repository updates. Copy the theme to your user directory first: cp -r "$OMARCHY_PATH/themes/theme-name" "$HOME/.config/omarchy/themes/" — then modify the copy.

What file defines a theme's color scheme?

The colors.toml file within each theme directory defines the color palette. System themes store this at $OMARCHY_PATH/themes/<name>/colors.toml; user themes use $HOME/.config/omarchy/themes/<name>/colors.toml.

How does Omarchy know which themes are available?

The menu implementation in test/shell.d/menu-test.sh loops through $ROOT/themes/*/chromium.theme to discover valid themes. Any subdirectory containing this file is treated as a loadable theme.

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 →