Skip to content

Creating Themes

This guide walks you through creating a custom theme for Gtheme.

Quick start

  1. Generate a skeleton

    Terminal window
    gtheme theme new-skeleton MyTheme

    This creates ~/.config/gtheme/themes/themes/MyTheme.toml with empty color values.

  2. Edit the theme file

    Terminal window
    gtheme theme edit MyTheme

    Fill in all 19 color values with hex colors (no # prefix):

    name = 'MyTheme'
    [colors]
    background = '1a1b26'
    foreground = 'c0caf5'
    cursor = 'c0caf5'
    selection-background = '33467c'
    selection-foreground = 'c0caf5'
    black = '15161e'
    black-hg = '414868'
    red = 'f7768e'
    red-hg = 'f7768e'
    green = '9ece6a'
    green-hg = '9ece6a'
    yellow = 'e0af68'
    yellow-hg = 'e0af68'
    blue = '7aa2f7'
    blue-hg = '7aa2f7'
    magenta = 'bb9af7'
    magenta-hg = 'bb9af7'
    cyan = '7dcfff'
    cyan-hg = '7dcfff'
    white = 'a9b1d6'
    white-hg = 'c0caf5'
  3. Preview your colors

    Terminal window
    gtheme theme colors MyTheme

    This renders each color in your terminal so you can verify they look correct.

  4. Test the theme

    Terminal window
    gtheme theme apply MyTheme

Adding extras

If you want your theme to set a wallpaper, IDE theme, or other application-specific settings, add an [extras] section:

name = 'MyTheme'
[extras]
wallpaper = ['~/.config/gtheme/wallpapers/MyTheme/wallpaper.png']
vscode = ['One Dark Pro']
[colors]
# ... colors ...

Tips

  • Start from an existing theme — find a theme with similar colors and modify it rather than starting from scratch.
  • Use a color picker — tools like terminal.sexy or coolors.co help you build cohesive palettes.
  • Test with multiple apps — apply your theme and check how it looks in your terminal, status bar, launcher, and other applications.
  • Keep highlight variants close — the -hg (highlight) variant of each color should be the same hue, either brighter or slightly different.

Sharing themes

Theme files are standalone TOML files. To share your theme, simply share the .toml file. Others can drop it into their ~/.config/gtheme/themes/themes/ directory.