Skip to content

scootbar troubleshooting

  • Bar missing on the second monitor. Check --outputs (default all; a name no output has is refused at start). Then check the exclusive zone: with --exclusive true (default) the bar reserves its height per output — a bar that reserved nothing floats over windows instead. Then scootbar msg layout: where each module is, per output.
  • Bar won’t start: font. With modules placed the bar needs a font: --font a path, or the first well-known file found; with neither it refuses, saying how to give one. A bar with no modules needs none. See Fonts.
  • Bar won’t start: unknown module / unknown key. A module id the build doesn’t carry (a features list without it) is a usage error naming it; a config table for an unbuilt button/push/exec is refused the same way. Rebuild with the feature or drop the table.
  • Config change did nothing. Flags win over the file, at start-up and on reload — a flag you forgot still overrides the file’s value. scootbar msg reload re-reads the file; the NixOS/Nix unit restarts on a changed config automatically.
  • Two bars / second one refuses. One daemon per display holds the control socket: pick the unit or autostart, not both. The second start is refused; the unit then retries every two seconds.
  • Module shows nothing / click does nothing. scootbar msg query shows every placed module’s state; scootbar msg layout shows where each is. A push the bar refuses names why (usually a module not placed yet). Pointer behavior per module is in Pointer input.
  • Popup won’t open / tooltip never shows. Popups come from the module’s own state (Popups); tooltips wait tooltip-delay (default 500 ms, 0 is off — Tooltips).
  • Crash on start before the compositor. The unit retries every two seconds until WAYLAND_DISPLAY is imported — start clean is normal, not an error.
Terminal window
scootbar daemon --check

Validates the config, the flags over it, the modules and the font — as a start does them, with no compositor and nothing written. A file with an unknown key is refused by name. (Full detail in CLI reference.)