Skip to main content
cmux supports Ghostty’s theme system, allowing you to use any Ghostty-compatible theme file.

Setting a theme

Add a theme line to your ~/.config/ghostty/config:
Reload configuration with ⌘⇧, to apply changes.

Conditional themes (light/dark)

Specify different themes for light and dark mode:
The syntax is:
cmux automatically switches themes when macOS appearance changes or when you change the app theme in Settings.
You can also specify a single theme without prefixes as a fallback:
The unprefixed theme is used if neither dark nor light variant matches.

Theme file locations

cmux searches for theme files in the following order:
  1. $GHOSTTY_RESOURCES_DIR/themes/<theme-name> (if set)
  2. App bundle: cmux.app/Contents/Resources/ghostty/themes/<theme-name>
  3. $XDG_DATA_DIRS/ghostty/themes/<theme-name> (colon-separated paths)
  4. /Applications/Ghostty.app/Contents/Resources/ghostty/themes/<theme-name>
  5. ~/.config/ghostty/themes/<theme-name>
  6. ~/Library/Application Support/com.mitchellh.ghostty/themes/<theme-name>
cmux supports Ghostty’s theme naming conventions:
  • monokai → searches for file named monokai
  • Monokai Pro → searches for Monokai Pro
  • builtin monokai → strips “builtin” prefix → searches for monokai
  • monokai (builtin) → strips “(builtin)” suffix → searches for monokai
Theme name resolution is case-sensitive.

Theme file format

Theme files use the same syntax as Ghostty config files:

Required fields

  • background — Terminal background color
  • foreground — Default text color
  • palette entries (0–15) — ANSI color palette

Optional fields

  • cursor-color — Cursor fill color (defaults to foreground)
  • cursor-text — Text color under cursor (defaults to background)
  • selection-background — Background color for selected text
  • selection-foreground — Text color for selected text
  • background-opacity — Transparency (0.0–1.0)

Creating custom themes

  1. Create ~/.config/ghostty/themes/ directory:
  2. Create a theme file (e.g., my-theme):
  3. Edit the file with your colors:
    ~/.config/ghostty/themes/my-theme
  4. Reference it in your config:
    ~/.config/ghostty/config
  5. Reload configuration: ⌘⇧,
You can also copy existing themes from Ghostty’s theme directory as starting points.

Compatibility aliases

cmux includes compatibility aliases for popular themes:
  • solarized light → tries iTerm2 Solarized Light as fallback
  • solarized dark → tries iTerm2 Solarized Dark as fallback
This improves compatibility with theme collections that use different naming conventions.

Overriding theme colors

You can override specific colors from a theme in your main config file:
~/.config/ghostty/config
Config file color definitions take precedence over theme file values.

Built-in themes

If you have Ghostty installed at /Applications/Ghostty.app, cmux can access its bundled themes:
  • 3024 Day / Night
  • Alabaster
  • Argonaut
  • Ashes
  • Atom One Dark / Light
  • Breeze
  • Builtin Tango variants
  • Catppuccin (Frappe, Latte, Macchiato, Mocha)
  • Dracula
  • Flexoki (Dark, Light)
  • Gruvbox (Dark, Light)
  • Nord
  • One Half (Dark, Light)
  • Tokyo Night (Day, Moon, Night, Storm)
  • … and many more
Check /Applications/Ghostty.app/Contents/Resources/ghostty/themes/ for the complete list.

Terminal color testing

Test your theme with this snippet:
This displays all palette colors in your current terminal.

Troubleshooting

  1. Verify the theme file exists:
  2. Check the theme name matches exactly (case-sensitive)
  3. Try the full path:
  4. Look for the theme in Ghostty bundle:
  1. Verify all palette entries (0–15) are defined
  2. Check hex format: must be #RRGGBB (6 digits)
  3. Reload config with ⌘⇧,
  4. Check for conflicting color definitions in main config
  5. Try a known working theme (e.g., monokai) to isolate the issue
  1. Verify syntax: theme = dark:theme1,light:theme2
  2. Check both theme files exist
  3. Test by changing app theme in Settings (⌘,)
  4. Try using theme = system in a theme file to delegate to main config
Background transparency requires:
  1. background-opacity set to less than 1.0
  2. macOS compositing enabled (should be default)
  3. No background image set in the theme
If still not working, try:

Resources