Skip to main content

Bundled presets

12 comptime presets in presets.zig:
Settings writes built-in preset colors to preset-colors.conf. otter-theme-gen writes wallpaper colors to generated-colors.conf. Root theme.conf selects one of those layers with an ordered import and keeps explicit user overrides separate.

Loading

Root file selection:
  1. ~/.config/otter-shell/theme.conf
  2. /etc/otter-shell/theme.conf
  3. No root file, so compiled Current defaults stand alone
Once a root is selected, values resolve from compiled Current defaults, then profile and density imports, optional color layer, and finally explicit root fields.
loadThemeFromPath parses a specific file without the fallback chain.

Example theme.conf

ThemeWatcher watches the root file and every imported path. It also catches an imported generated-colors.conf created after startup. A failed reload keeps the previous valid theme.