Configure hyprbaric
Configuration
Find hyprbaric’s TOML file and shape the bar around your session.
hyprbaric starts with useful defaults. You can configure it two ways: use the Settings window for the everyday controls, or edit TOML for the complete configuration surface. Both routes write the same user configuration file, so you can freely move between them.
Open Settings from the bar menu or with the Bar settings shortcut (Super + Shift + C). Changes made there are applied immediately and persisted to config.toml. Manual TOML changes take effect after restarting hyprbaric.
The GUI covers what most people change regularly, across five tabs that map onto TOML tables one for one. The Settings window walkthrough documents every control and the table each tab writes. Runtime tuning such as the volume shortcut step, network polling, brightness discovery, power refresh cadence, and system occupancy polling has no GUI control and is TOML only.
Create your config file
For a personal setup, write to ~/.config/hyprbaric/config.toml:
mkdir -p ~/.config/hyprbaric
$EDITOR ~/.config/hyprbaric/config.toml
That is also where the settings window saves, even when the file it loaded came from a system directory, so machine-wide defaults in /etc/xdg survive your edits. Environment and files lists the full search order.
A practical starting point
Every table is defaulted independently, so an override only needs the keys you care about. This one moves the bar to the bottom, hides the tray, switches workspace labels to numerals, and runs night light overnight.
[appearance]
position = "bottom"
monitor = "all"
opacity = 88
corner_radius = 16
accent_hue = 275
[modules.system_tray]
enabled = false
[modules.global_menu]
enabled = true
[workspaces]
indicator_style = "numeric"
visible_range = "large"
[night_light]
temperature = 3200
[schedules.night_light]
enabled = true
start_hour = 21
stop_hour = 7
Dropping every line but [workspaces] visible_range = "large" would still leave that table's indicator_style = "roman" and clickable = true in place.
The [modules.global_menu] switch is off by default. Turning it on also claims the AppMenu registrar name, which is why Qt applications then export their menus; Global menu covers the Firefox prefs, GTK module, and Java agent some applications still need after that.
[modules.system_occupancy] is on by default. Set enabled = false to hide the CPU and memory chip to the left of the tray.
Thirteen tables make up the entire TOML surface. Configuration surfaces lists them against what each one controls and which settings tab manages it, and the rest of that page covers every key, value, and default.
What is configured outside TOML
Plenty of behavior is shaped by the host instead: environment variables, capture destinations, session-only state such as do-not-disturb and volume, and which features are available at all. Not configurable in TOML lists each one against where it does live.
When a value is rejected
Values are checked while the file loads. A file that parses as TOML but holds an out-of-range value normally stops startup and is logged with its path, rather than falling back to defaults. The volume shortcut step is deliberately clamped to 0..=100 instead. Check the log when a change appears to have been ignored; an unknown table or key is ignored.
Validation lists every constraint with accepted and rejected examples.
