A desktop app for Bazzite updates, tools, system management and troubleshooting. Currently under development.
Weblate automatically generates the POT template and manages translations: Bazzite Portal on Weblate.
KDE Plasma
GNOME
| Spinning | Bouncing | Spinning Mono | Bouncing Mono | Native (Plasma) | Native (GNOME) |
|---|---|---|---|---|---|
| Command | Opens |
|---|---|
bazzite-portal |
Home |
bazzite-portal --updates |
Updates, including when Portal is already open |
bazzite-portal --action-id TOOL_ID |
The tool matching an id in tools.yml |
The app expects two files in /usr/share/bazzite-portal/:
Image choices are maintained in rebase_images.json. Other desktops and Unstable can be shown by enabling Show unsupported rebase targets in Options.
Basic information, warnings and errors are logged at INFO level, with a 6 MiB storage limit. Detailed tracing is off by default. Use Open app logs in Options to find the logs; troubleshooting reports include them.
Code: GPL-3.0-only. Artwork credits: NOTICE.md. Third-party license texts: LICENSES.
Tool and announcement content, operation logs and command output are not translated.
Bump the desktop app version in pyproject.toml under [project].version. Bump the Decky plugin version separately in decky/package.json only when releasing plugin changes. Packaging derives the other version fields automatically. Pushing a higher app version to main creates a GitHub release after a successful RPM build.
The RPM keeps application code in /usr/share/bazzite-portal and runs it with the system Python (3.11 or newer). Python libraries, GTK, libadwaita and SDL3 remain system package dependencies; the app is not tied to a Python minor-version directory.
curl -fLO https://github.com/Xarishark/bazzite-portal/releases/latest/download/bazzite-portal.rpm
curl -fL https://raw.githubusercontent.com/Xarishark/bazzite-portal/main/templates/announcements.yml -o announcements.yml
sudo rpm-ostree usroverlay
sudo rpm --define '_pkgverify_level digest' -Uvh --replacepkgs ./bazzite-portal.rpm
sudo rpm -e bazzite-updater
sudo install -d -m 755 /usr/share/bazzite-portal
sudo install -m 644 /usr/share/yafti/yafti.yml /usr/share/bazzite-portal/tools.yml
sudo install -m 644 announcements.yml /usr/share/bazzite-portal/announcements.yml
sudo systemctl daemon-reload
sudo systemctl restart polkit.service
systemctl --user daemon-reload
gdbus call --session --dest org.freedesktop.DBus \
--object-path /org/freedesktop/DBus --method org.freedesktop.DBus.ReloadConfig
systemctl --user restart bazzite-portal-agent.service
bazzite-portalRestarting Polkit and refreshing the session bus lets the running desktop pick up the authorization rules and launcher installed through the temporary overlay. This trial installation is discarded when you reboot.

