Skip to main content
otter-theme-gen watches your wallpaper and rebuilds theme.conf to match. It ships in the otter-shell metapackage. Configure it from the Theme Gen tab in otter-settings, or edit otter-theme-gen.conf by hand.

Usage

otter-theme-gen
Autostart it with otter-wallpaper. Theme generation needs wallpaper state from $XDG_RUNTIME_DIR/otter-shell/wallpaper-state.
otter-wallpaper &
otter-theme-gen &
See Session setup.

How it works

  1. otter-wallpaper writes the current image path per output to wallpaper-state.
  2. otter-theme-gen reads that file, extracts a palette, and updates ~/.config/otter-shell/theme.conf.
  3. Running apps that watch theme.conf pick up the new colors. otter-term hot-reloads shared theme changes without a restart.
The daemon skips work when the wallpaper hash has not changed.

Configuration

Config file: ~/.config/otter-shell/otter-theme-gen.conf
enabled = true
mode = dark
islands_mode = false
strategy = material_you
contrast = 0.7
vibrancy = 0.6
global_opacity = 96
KeyDefaultDescription
enabledtrueTurn wallpaper-reactive theming on or off
modedarkdark or light palette
islands_modefalseUse Otter Shell Islands surface styling
strategymaterial_youPalette extraction style
contrast0.7Palette contrast (0.0 to 1.0)
vibrancy0.6Palette vibrancy (0.0 to 1.0)
global_opacity96Panel and surface opacity (0 to 100)
strategy options: material_you, analogous, vibrant, monochromatic, direct, temperature.

Template outputs

Optional template keys rewrite third-party config files when colors change. All templates start disabled. Enable only the apps you want synced.
template_gtk3_enabled = true
template_hyprland_enabled = true
Shipped templates cover terminals, GTK, Hyprland (~/.config/hypr/otter-theme.lua), bottom, btop, and more. Toggle them in the Theme Gen tab in otter-settings.
Only otter-theme-gen and otter-settings should normalize theme.conf on disk. Other apps load it read-only.

Templates on disk

Installed templates live under /usr/share/otter-shell/theme-gen/templates/.