Skip to main content
otter-settings is the main config UI: one tab per app, a theme browser, and drag-and-drop bar layout. It writes the same ~/.config/otter-shell/*.conf files as manual edits, so GUI and text stay in sync.
Launch from otter-launcher, bind a compositor hotkey, or run the command above. See otter-settings for tabs, features, and theme presets.
Click Apply and most running apps reload via inotify. No restart needed.

What you can configure in otter-settings

Compositor hotkeys (screenshot, launcher, lock) are not in otter-settings. Bind those in your compositor config. See Keybinds.

Manual config files

Each app has a plain-text file in ~/.config/otter-shell/. Edit by hand to script changes or keep custom comments the UI might not show. System defaults may live under /etc/otter-shell/. User configs always win.

File format

Quote strings with double quotes. Booleans are true or false. Empty string "" falls back to the compiled default. On first launch, apps normalize their config: missing keys get defaults, unknown keys are removed.

Hot reload

Most daemons watch their config (and often theme.conf) with inotify:
  • otter-bar: reloads otter-bar.conf on save; theme.conf changes refresh widget colors without a full bar config reload
  • otter-notifications, otter-wallpaper, otter-osd, otter-idle: reload on save
  • otter-term: hot-reloads otter-term.conf and shared theme.conf
  • otter-monitor: hot-reloads theme.conf only; restart to pick up otter-monitor.conf changes
  • otter-transcribe: reloads settings and watches theme.conf; restarts automatically after a model unload when idle
otter-settings and manual saves hit the same reload path.

System-wide defaults

Lookup order (example for otter-term):
  1. ~/.config/otter-shell/otter-term.conf (user: highest priority)
  2. /etc/otter-shell/otter-term.conf (system defaults)
  3. Compiled-in defaults
Set system defaults in /etc/otter-shell/ without touching home directories.