Get started
Install hyprbaric
Install the latest hyprbaric release package, build a distro package, or use the development checkout.
Requirements
Package names below are the Arch names.
Required
| Package | Provides |
|---|---|
hyprland | Workspaces, the active window, global binds, and compositor actions |
gtk3, gtk-layer-shell, wayland | The bar window, transparency, and input regions |
xdg-desktop-portal-hyprland | Every built-in keyboard shortcut |
Building from source also needs the Flutter SDK and a Rust toolchain. The packaged routes do not.
Optional
Everything else is per feature: wireplumber for audio, grim and slurp for screenshots, hyprsunset for night light, and so on. Each one enables a single control and nothing else, so skip any you do not want. The matching control is greyed out with a message naming what was not found.
Dependencies and capabilities lists all twelve against the feature each one powers, how it is detected, and its Debian and RPM package names.
Install the latest release
The installer fetches the latest verified GitHub release and selects the native package for your distribution: DEB on Debian/Ubuntu, Pacman on Arch/Manjaro, RPM on Fedora/RHEL/openSUSE, and an AppImage fallback elsewhere. You do not need Flutter, Rust, Git, or a source checkout.
Detects your distribution, downloads its native package, verifies it, and installs it.
# download the latest package for this Linux distribution
curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/asaphaaning/hyprbaric/master/install.sh | shPrefer to handle the package yourself? Open the latest release to download its AppImage, DEB, RPM, or Pacman package and SHA256SUMS directly.
Each v* tag runs formatting, generated-binding, Flutter, and Rust verification before building a GitHub release with checksummed packages attached. A tag name is a version. The installer resolves latest unless you pass --version, which takes the tag verbatim: --version v0.1.0 installs that release and nothing newer.
Build from source
Use the source checkout when you want to develop hyprbaric or run the current master branch:
git clone https://github.com/asaphaaning/hyprbaric.git
cd hyprbaric
flutter pub get
flutter run -d linux
Build release packages
This is a maintainer workflow, not a prerequisite for installing hyprbaric. Before creating a tag, maintainers can exercise the AppImage path alone when iterating:
HYPRBARIC_RELEASE_JOBS=linux-appimage ./packaging/build-linux-packages --skip-clean
The command downloads and caches pinned AppImage tooling and its runtime, verifies both against their published SHA-256 digests, then packages only the selected job. Before publishing, build and verify every release format locally:
./packaging/build-linux-packages --skip-clean
./packaging/verify-linux-packages
The verifier checks the exact versioned AppImage, DEB, RPM, and Pacman outputs, including package metadata, dependencies, launchers, file ownership and modes, and the AppImage structure. The release workflow runs the same gate before uploading any artifact.
Pinning or inspecting the installer
The installer accepts --version vX.Y.Z when you want a specific release. Download it first if you would like to inspect the exact script before executing it:
curl --proto '=https' --tlsv1.2 -fLO https://raw.githubusercontent.com/asaphaaning/hyprbaric/master/install.sh
less install.sh
sh install.sh --version vX.Y.Z
Run it, then autostart it
A source checkout runs under flutter run -d linux, and an installed package runs as hyprbaric. Either way, startup failures print to the terminal, so run it in the foreground once before moving it into hyprland.conf.
# Start hyprbaric with the session.
exec-once = hyprbaric
hyprbaric registers and reconciles its own enabled global shortcuts through the XDG portal and Hyprland. Configure them in Settings → Keybinds or TOML, and do not duplicate them as manual hyprland.conf binds. The shortcuts guide describes the complete action list and conflict behavior.
Blur behind the bar
hyprbaric names its layer surface hyprbaric, so a pair of Hyprland layerrule entries is all it takes:
layerrule = blur on, match:namespace ^hyprbaric$
layerrule = ignore_alpha 0.05, match:namespace ^hyprbaric$
The second rule is the one that matters. hyprbaric draws its panels inside a single layer surface that spans the whole output, because a dropdown needs room to open below the bar. Almost all of that surface is fully transparent, so blur on by itself blurs your entire screen. ignore_alpha tells Hyprland to skip pixels below the given alpha, which confines the effect to the bar and whatever panel is open.
Keep the threshold well under the bar's own alpha. The opacity setting maps directly onto it, so at the default 77 the bar sits at 0.77 and at the minimum of 20 it sits at 0.20. A threshold around 0.05 works across that whole range. On Hyprland versions before the match: syntax, the same rules are written layerrule = blur, hyprbaric and layerrule = ignorealpha 0.05, hyprbaric.
Where configuration lives
There is nothing to create before the first run: with no file anywhere, every table falls back to its built-in defaults. Personal settings belong in ~/.config/hyprbaric/config.toml, which is also where the settings window saves. Configuration walks through creating it, and Environment and files lists every location that is searched and in what order.
Next steps
Use the settings window or a focused TOML override for appearance, modules, workspaces, night light, and shortcuts.
ReferenceSee every field →Review defaults, valid values, and the TOML-only polling and discovery policies.
EnvironmentTune the host →Environment variables, the files hyprbaric writes, capture destinations, and logging.
