Please see our website for a newcomer-friendly explanation of Bazzite. This readme will cover everything in-depth.
Bazzite is an OCI image that serves as an alternative operating system for the Steam Deck, and a ready-to-game SteamOS-like for desktop computers and living room home theater PCs.
Bazzite is built from ublue-os/main and ublue-os/nvidia using Fedora technology, which means expanded hardware support and built in drivers are included. Additionally, Bazzite adds the following features:
ujust install-resolve
)duperemove
service for reducing the disk space used by wine prefix contents.ujust restore-input-remapper
)ujust install-openrazer
in a terminal to begin using it.ujust install-opentabletdriver
in a terminal.amdgpu
driver.Common variant available as bazzite
, suitable for desktop computers.
[!IMPORTANT]
ISOs can be downloaded from our website, and a helpful install guide can be found here.
Rebase from an existing upstream Fedora Atomic to this image if you want Open Source GPU Drivers: (Please note: Mesa's Open Source option for NVIDIA GPUs, NVK is still prone to errors at the time of writing, for any issues relating to NVK please submit a report with Mesa, not Ublue/Bazzite)
rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite:stable
or for devices with Nvidia GPUs wanting the NVIDIA Proprietary Drivers:
rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite-nvidia:stable
For users with Secure Boot enabled: Follow our secure boot documentation prior to rebasing.
[!IMPORTANT]
Devices that are NOT the Steam Deck can still use thebazzite-deck
images, but must use a modern AMD GPU. Intel Arc GPUs also have been confirmed to work.
Variant designed for usage as an alternative to SteamOS on the Steam Deck, and for a console-like experience on HTPCs, available as bazzite-deck
:
duperemove
greatly trims the size of compatdata.rpm-ostree
's rollback functionality. You can even select previous images at boot.duperemove
process.ryzenadj.service
and /etc/default/ryzenadj
.batterylimit.service
and /etc/default/batterylimit
. (Works even when the device is off)CUSTOM_REFRESH_RATES=30-68
to /etc/environment
. Minimum and maximum refresh rates differ per handheld!ujust disable-bios-updates
and ujust disable-firmware-updates
in the terminal. These are automatically disabled on non-Deck hardware, and on Decks with DeckHD displays or 32GB RAM mods.[!WARNING]
Due to an upstream bug, Bazzite cannot be used on Steam Decks with 64GB eMMC storage at this time. Upgrading the storage resolves the issue.[!IMPORTANT]
ISOs can be downloaded from our website, and a helpful install guide can be found here.
Rebase from an existing upstream Fedora Atomic to this image:
rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite-deck:stable
Please refer to our Handheld Wiki for required setting changes and Decky Loader plugins for Steam Gaming Mode on your specific Handheld.
Be sure to also read the hhd documentation, some handhelds require specific setting changes/tweaks to function properly.
We also ship ujust
commands to install various CSS Loader themes that can't be found on the CSS Loader store. These will be automatically updated with Bazzite if installed.
# Install Handheld Controller Theme (https://github.com/victor-borges/handheld-controller-glyphs)
ujust install-hhd-controller-glyph-theme
Builds with the GNOME desktop environment are available in both desktop and deck flavors. These builds come with the following additional features:
[!IMPORTANT]
ISOs can be downloaded from our website, and a helpful install guide can be found here.
Rebase from an existing upstream Fedora Atomic to this image:
rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite-gnome:stable
To rebase an existing ostree system to a Desktop Environment with the Proprietary NVIDIA Drivers release:
rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite-gnome-nvidia:stable
[!WARNING]
Due to an upstream bug, Bazzite cannot be used on Steam Decks with 64GB eMMC storage at this time.
To rebase an existing ostree system to the Steam Deck/HTPC release:
rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite-deck-gnome:stable
For users with Secure Boot enabled: Follow our secure boot documentation prior to rebasing.
ujust
commands for convenience.Bazzite started as a project to resolve some of the issues that plague SteamOS, mainly out of date packages (despite an Arch base) and the lack of a functional package manager.
Despite this project also being image-based, you are able to install any Fedora package straight from the command line. These packages will persist across updates (So go ahead and install that obscure VPN software you spent an hour trying to get working in SteamOS). Additionally, Bazzite is updated multiple times a week with packages from upstream Fedora, giving you the best possible performance and latest features - all on a stable base.
Bazzite ships with the latest Linux kernel and SELinux enabled by default with full support for secure boot (Run ujust enroll-secure-boot-key
and enter the password universalblue
if prompted to enroll our key) and disk encryption, making this a sensible solution for general computing. (Yes, you can print from Bazzite)
Read the FAQ for details on what makes Bazzite stand out from other Linux based operating systems.
View additional documentation surrounding the project.
Ported SteamOS and ChimeraOS packages, among others used by Bazzite, are built on Copr in bazzite and bazzite-multilib.
Package | Status |
---|---|
ds-inhibit | |
extest | |
gamescope | |
gamescope-session-plus | |
gamescope-session-steam | |
gamescope-shaders | |
galileo-mura | |
gnome-randr-rust | |
gnome-shell | |
gnome-shell-extension-bazzite-menu | |
gnome-shell-extension-caribou-blocker | |
gnome-shell-extension-compiz-windows-effect | |
gnome-shell-extension-hanabi | |
gnome-shell-extension-hotedge | |
joystickwake | |
jupiter-fan-control | |
jupiter-hw-support-btrfs | |
jupiter-sd-mounting-btrfs | |
kf6-kio | |
mangohud | |
mesa | |
pipewire | |
powerbuttond | |
python3-hid | |
ryzenadj | |
scx-scheds | |
sdgyrodsu | |
steamdeck-dsp | |
steamdeck-gnome-presets | |
steamdeck-kde-presets | |
steamdeck-kde-presets-desktop | |
steam_notif_daemon | |
ublue-update | |
udisks2 | |
umu-launcher | |
upower | |
vpower | |
xwiimote-ng |
Additionally, the following packages are used from other Copr repos:
Package | Status |
---|---|
discover-overlay | |
hhd | |
kernel-fsync | |
latencyflex-vulkan-layer | |
nerd-fonts | |
noise-suppression-for-voice | |
obs-vkcapture | |
ptyxis | |
rom-properties | |
wallpaper-engine-kde-plugin | |
webapp-manager |
These images are signed with sigstore's cosign. You can verify the signature by downloading the cosign.pub
key from this repo and running the following command:
cosign verify --key cosign.pub ghcr.io/ublue-os/bazzite
[!WARNING]
Steam Deck Users: The Steam Deck does not come with secure boot enabled and does not ship with any keys enrolled by default. Do not enable this unless you absolutely know what you're doing.
Secure boot is supported with our custom key. The pub key can be found in the root of this repository here. If you'd like to enroll this key prior to installation or rebase, download the key and run the following:
sudo mokutil --timeout -1
sudo mokutil --import secure_boot.der
For users already on a Universal Blue image, you may instead run ujust enroll-secure-boot-key
.
If asked for a password, use universalblue
.
Bazzite is a community effort and wouldn't exist without everyone's support. Below are some of the people who've helped us along the way:
Bazzite is built entirely in GitHub and creating your own custom version of it is as easy as forking this repository, adding a private signing key, and enabling GitHub actions.
Familiarize yourself on keeping secrets in github. You'll need to generate a new keypair with cosign. The public key can be in your public repo (Your users need it to check the signatures), and you can paste the private key in Settings -> Secrets -> Actions
with the name SIGNING_SECRET
.
We also ship a config for the popular pull app if you'd like to keep your fork in sync with upstream. Enable this app on your repo to keep track of Bazzite changes while also making your own modifications.
You can find us on the Universal Blue Discord
Discuss and create user guides over at the Universal Blue Discourse Forums.
Follow Universal Blue on Mastodon.
View the full list of Bazzite resources and social presence.