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):
otter-osd
Send commands from scripts, the status bar, or compositor keybindings:
otter-osd volume-up 5
otter-osd volume-down 10
otter-osd volume-mute-toggle
otter-osd brightness-up 5
otter-osd brightness-down 5
otter-osd caps-lock
otter-osd num-lock
otter-osd scroll-lock
The optional step value (default 5) applies to volume and brightness commands. 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, renders overlays on demand. Surfaces are created lazily and destroyed 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
timeout = 1500
position = bottom_center
width = 340
height = 60
margin_bottom = 60
icon_size = 28
border_width = 2
bar_height = 14
font_size = 15
animation_duration = 150
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.