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

> Find Omarchy themes easily. Learn system-wide and user directory paths for theme storage in the Omarchy repository. Discover where your Omarchy themes are kept.

- Repository: [Omacom/omarchy](https://github.com/omacom/omarchy)
- Tags: how-to-guide
- Published: 2026-09-01

---

**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`](https://github.com/omacom/omarchy/blob/main/test/shell.d/menu-test.sh), Omarchy iterates over themes using this pattern:

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

```

Each theme lives in its own subdirectory containing asset files like `chromium.theme` and [`colors.toml`](https://github.com/omacom/omarchy/blob/main/colors.toml). To inspect the default **Tokyo Night** theme:

```bash
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`](https://github.com/omacom/omarchy/blob/main/docs/menu.md), the menu schema loads themes directly from `$ROOT/themes`.

### Key System Theme Files

- `chromium.theme` — Browser theming assets
- [`colors.toml`](https://github.com/omacom/omarchy/blob/main/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`](https://github.com/omacom/omarchy/blob/main/test/shell.d/theme-staging-test.sh), the user themes path is explicitly defined:

```bash
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:

```bash
ls "$OMARCHY_PATH/themes"

```

List your custom user themes:

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

```

Copy a system theme to user space for customization:

```bash
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`](https://github.com/omacom/omarchy/blob/main/test/shell.d/menu-test.sh) | System theme iteration with `$ROOT/themes/*/chromium.theme` |
| [`test/shell.d/theme-staging-test.sh`](https://github.com/omacom/omarchy/blob/main/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`](https://github.com/omacom/omarchy/blob/main/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`](https://github.com/omacom/omarchy/blob/main/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`](https://github.com/omacom/omarchy/blob/main/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`](https://github.com/omacom/omarchy/blob/main/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.