Skip to main content

Reference

Dependencies and capabilities

hyprbaric probes its host at startup and reports the result in Settings → About → System. Nothing here is configured in TOML. Installing or removing a backend is what changes a capability. Even so, the same catalog decides which controls are live, which are greyed out, and what a failure message says.

Capabilities fall into three tiers:

  • Core: required for the bar to run at all. A missing core capability is a packaging error.
  • Service: session services hyprbaric integrates with. A missing service leaves that integration pending or unavailable without affecting the rest of the bar.
  • Optional: per-feature backends. A missing optional backend greys out only its own feature.

A capability reports Ready when every probe passes, Missing when an optional capability fails or a single probe fails, and Partial when a core or service capability fails more than one probe. The message names exactly what was not found: a command, a filesystem path, or an environment variable.

Core​

CapabilityPowersProbed byArchDebian / UbuntuRPM
Hyprland sessionWorkspaces, active window, global binds, compositor actionshyprctl on PATH, HYPRLAND_INSTANCE_SIGNATURE sethyprlandhyprlandhyprland
GTK layer shellBar window, transparency, input regionsAlways available (linked into the runner)gtk3, gtk-layer-shell, waylandlibgtk-3-0 or libgtk-3-0t64, libgtk-layer-shell0, libwayland-client0gtk3, gtk-layer-shell, libwayland-client

Service​

CapabilityPowersProbed byArchDebian / UbuntuRPM
Global shortcuts portalAll built-in hotkeyshyprctl on PATH, plus one of /usr/share/xdg-desktop-portal/portals/hyprland.portal, /usr/lib/xdg-desktop-portal-hyprland, /usr/libexec/xdg-desktop-portal-hyprlandxdg-desktop-portal-hyprlandxdg-desktop-portal-hyprlandxdg-desktop-portal-hyprland

Optional​

CapabilityPowersProbed byArchDebian / UbuntuRPM
Audio controlsVolume, mute, audio deviceswpctlwireplumberwireplumberwireplumber
Brightness controlsBacklight and external display brightnessA device in /sys/class/backlight, or ddcutilddcutilddcutilddcutil
NetworkManagerWi-Fi status, scanning, connections/run/NetworkManager or /var/run/NetworkManagernetworkmanagernetwork-managerNetworkManager
Desktop notificationsNotification center, do-not-disturbAlways available———
StatusNotifier traySystem tray items and menusAlways available———
App launchingDesktop entry discovery and launchgtk-launchgtk3libgtk-3-bingtk3
ScreenshotsRegion, window, and full-screen capturegrimblast or grim, plus slurpgrim, slurpgrim, slurpgrim, slurp
ClipboardCopying captures and picked colorswl-copywl-clipboardwl-clipboardwl-clipboard
Color pickerScreen color samplinghyprpickerhyprpickerhyprpickerhyprpicker
Screen recordingRegion recordingwf-recorder and slurpwf-recorder, slurpwf-recorder, slurpwf-recorder, slurp
Night lightScreen temperature and its schedulehyprctl and hyprsunsethyprsunsethyprsunsethyprsunset
CaffeineSleep and idle inhibition/run/systemd/system presentsystemdsystemdsystemd
Power actionsBattery, power profiles, session actions/run/systemd/system presentsystemd, power-profiles-daemon, upowersystemd, power-profiles-daemon, upowersystemd, power-profiles-daemon, upower
XDG user directoriesScreenshot and recording destinationsxdg-user-dirxdg-user-dirsxdg-user-dirsxdg-user-dirs

Notes on individual capabilities​

Brightness needs no package on a laptop with a kernel backlight device. ddcutil is only required for external DDC/CI monitors, and its discovery and write policy is tuned in [brightness].

Screenshots prefer grimblast when it is installed and fall back to grim. slurp is required either way, because region selection goes through it.

Notifications and System tray are always reported as available because hyprbaric hosts them itself over D-Bus. Hyprbaric claims org.freedesktop.Notifications when it is free and observes an existing owner without replacing it otherwise. Sandboxed applications additionally depend on a selected XDG Notification portal backend. If the panel stays empty, inspect the user session bus and portal selection rather than looking for a hyprbaric notification-daemon package.

XDG user directories only affects where captures are written. Without xdg-user-dir, captures fall back to ~/Pictures/Screenshots and ~/Videos/Recordings.

Global menu is not a probed capability. The companion plugin ships with hyprbaric. Firefox prefs, the Hyprland GTK_MODULES / UBUNTU_MENUPROXY pair, and a Java JAyatana agent are loaded by other applications, not by the bar, so they cannot be detected here. hyprbaric does not ship JAyatana. User-driven session changes lists the session steps; Java / JAyatana is per JVM.

Packaging policy​

The packaging source of truth is packaging/runtime_capabilities.yaml. The Rust runtime mirrors that contract when it probes the host. Packages should install core and service dependencies as hard dependencies and leave optional backends as recommended or optional metadata, so a lean install is possible and features can be added later.

The mixer’s output-device chooser also uses pw-dump from your distribution’s PipeWire tools package. If device discovery is unavailable, volume and mute controls continue to work and the chooser shows the error.