anomalyco/hokum
Productivity & UtilitiesA single Wayland control center for notifications, PipeWire sound and Bluetooth, drawn with Rune.
Hokum is a Wayland desktop control center: one process that hosts a freedesktop notification daemon, PipeWire audio controls and BlueZ Bluetooth controls, with a tray panel and one window split into three sections. It suits users of compositors that support zwlr_layer_shell_v1 — niri, sway, Hyprland, river and others — who want notifications and quick device controls in one place rather than several separate daemons and applets.
What it does
The notification daemon registers org.freedesktop.Notifications and draws cards on a click-through overlay: action buttons, default-action clicks with an XDG activation token, progress bars, and in-place replacement for volume or brightness tags. Critical notifications stay until dismissed. Separately, the Sound section handles outputs, inputs, ports, Bluetooth codecs and routing, and the Bluetooth section covers pairing (codes shown in Hokum), trust, rename, forget, adapters and battery. A tray icon opens a panel with volume, the microphone while recording, Bluetooth devices and Do Not Disturb.
A module that fails to start or fails later reports it in its own section and leaves the rest running. If both Sound and Bluetooth are disabled in configuration, no tray icon appears.
Customization
One KDL file, ~/.config/hokum/config.kdl, covers look, layout, per-app and per-text rules, behaviour and module switches; the settings window edits the same file while preserving comments, and hand edits apply on save. Themes are just looks and cannot set which modules run. Eight themes ship built in, and the settings window can produce a prompt for a coding agent to write a custom theme from the format guide. A Rhai script can rewrite or drop notifications.
Requirements and limits
Sound needs PipeWire with WirePlumber and Bluetooth needs BlueZ; without them those sections state so in one line and the tray panel omits them. The notification daemon must own the bus name, so another daemon holding it (mako, dunst, swaync) must be stopped first. Some desktop shells are themselves the notification server, such as Omarchy's; Hokum's unit cannot stop those, and the shell's own notifications must be turned off first — the project points to a separate Omarchy guide for this.
Hokum never updates itself without a click. It checks its release channel after a minute and then hourly; for a writable plain-file install, the Update button downloads, verifies size and sha256, replaces the executable and restarts Hokum, keeping the old executable if anything fails. For package-manager installs, the button only copies the update command or opens the site. Update-check failures are silent and retried at the next check, and checks can be turned off in configuration.
The README shows install routes through the AUR, .deb and .rpm packages, or a standalone executable plus a systemd unit, D-Bus activation file and launcher entry from packaging/. The project is MIT licensed.
Written by AI from the project's README, updated October 29, 2026. The project's own docs are the source of truth.