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 assetscolors.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/themesto populate available options - Environment variable
$OMARCHY_PATHdetermines 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:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →