Skip to content

Appearance

Graphical colors and font are resolved once when the overlay opens. Edit $XDG_CONFIG_HOME/crabture/appearance.toml (typically ~/.config/crabture/appearance.toml) and reopen crabture to apply changes.

Capture output, mode, format and location live separately in $XDG_CONFIG_HOME/crabture/preferences and are never rewritten by appearance loading.

[appearance]
theme_file = "~/themes/swatches.toml"
# Optional per-app overrides:
# [colors]
# accent = "#80D4FF"
# [font]
# family = "JetBrainsMono Nerd Font Mono"
# path = "/usr/share/fonts/TTF/JetBrainsMonoNerdFont-Regular.ttf"

Without that file, crabture keeps the built-in dark toolbar palette and bundled Roboto Medium. An explicit [appearance] theme_file opts into a Swatches v1 theme. Relative paths resolve against the appearance file’s directory; ~/ expands to $HOME.

Shared role crabture mapping
colors.background Toolbar panel RGB (native panel alpha kept)
colors.foreground Inactive toolbar text/icon RGB (role alpha kept); selection border
colors.accent Capture action fill, window-highlight border/fill
colors.muted Secondary labels and shortcut hints
colors.selection_background Active mode fill; hover wash
colors.selection_foreground Active mode labels, shortcuts, and icons
font.family Loaded via fc-match after an explicit [font] path; bundled Roboto if missing

Capture label and hint colors are not a shared role. crabture picks black or white from the accent’s luminance, so the action stays readable when accent and the selection pair differ.

  • Explicit [colors] / [font] fields always win, even when they equal an old default.
  • Overlay dimming, radii, and spacing stay application-owned.
  • A missing or invalid theme_file prints a warning to stderr and is ignored; crabture still opens and keeps valid overrides.
  • Unknown keys in appearance.toml reject that file and fall back to the built-in appearance.

The same resolved font is used for toolbar measurement, drawing, and pointer hit-testing.