Skip to main content
otter-osd shows brief overlays for volume, brightness, and lock keys. Run it as a daemon. Scripts, the bar, and compositor keybindings send commands over a UNIX socket.

Usage

Start the daemon (autostart at login):
Send commands from scripts, the status bar, or compositor keybindings:
The optional step value (default 5) applies to volume and brightness commands. Text messages are centered and wrap to fit the OSD. When Do Not Disturb is on, popup surfaces stay hidden. Hardware commands still change volume and brightness. Run otter-notifications dnd-off to show future OSD updates again. otter-timer and otter-rec also use otter-osd for completion notifications.

Architecture

One binary, two roles:
  • Daemon (no args): Connects to Wayland, opens a UNIX datagram socket, and renders overlays. Surfaces appear when needed and go away after timeout, so idle RAM stays near zero.
  • Client (with args): Sends a command to the daemon and exits.
Socket path: $XDG_RUNTIME_DIR/otter-shell/osd-{WAYLAND_DISPLAY}.sock

Configuration

Config file: ~/.config/otter-shell/otter-osd.conf
Color fields inherit from theme.conf when omitted. Position and size changes need new surfaces. Save the config and the daemon recreates the overlay on reload.