ublue-os / bazzite

Bazzite is a cloud native image built upon Fedora Atomic Desktops that brings the best of Linux gaming to all of your devices - including your favorite handheld.
https://bazzite.gg
Apache License 2.0
4.07k stars 249 forks source link
desktop fedora-kinoite fedora-linux fedora-silverblue gaming htpc legiongo oci-image operating-system ostree rog-ally steam steam-deck valve

Bazzite

build-bazzite build-bazzite-isos

🇺🇸 🇪🇸 🇮🇩 🇨🇳 🇫🇷 🇧🇷 🇳🇱

Download Bazzite


Table of Contents

About & Features

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:

Desktop

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.

Steam Deck/Home Theater PCs (HTPCs)

[!IMPORTANT]
Devices that are NOT the Steam Deck can still use the bazzite-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:

[!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

Alternative Handhelds

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

GNOME

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.

Features from Upstream

Universal Blue

Features from Fedora Linux (Kinoite & Silverblue)

Why

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.

Showcase

KDE Vapor Theme KDE VGUI2 Theme Steam Game Mode Waydroid Distrobox Terminals GNOME Vapor Theme GNOME VGUI2 Theme

Documentation

View additional documentation surrounding the project.

Custom Packages

Ported SteamOS and ChimeraOS packages, among others used by Bazzite, are built on Copr in bazzite and bazzite-multilib.

Package Status
ds-inhibit Build Status
extest Build Status
gamescope Build Status
gamescope-session-plus Build Status
gamescope-session-steam Build Status
gamescope-shaders Build Status
galileo-mura Build Status
gnome-randr-rust Build Status
gnome-shell Build Status
gnome-shell-extension-bazzite-menu Build Status
gnome-shell-extension-caribou-blocker Build Status
gnome-shell-extension-compiz-windows-effect Build Status
gnome-shell-extension-hanabi Build Status
gnome-shell-extension-hotedge Build Status
joystickwake Build Status
jupiter-fan-control Build Status
jupiter-hw-support-btrfs Build Status
jupiter-sd-mounting-btrfs Build Status
kf6-kio Build Status
mangohud Build Status
mesa Build Status
pipewire Build Status
powerbuttond Build Status
python3-hid Build Status
ryzenadj Build Status
scx-scheds Build Status
sdgyrodsu Build Status
steamdeck-dsp Build Status
steamdeck-gnome-presets Build Status
steamdeck-kde-presets Build Status
steamdeck-kde-presets-desktop Build Status
steam_notif_daemon Build Status
ublue-update Build Status
udisks2 Build Status
umu-launcher Build Status
upower Build Status
vpower Build Status
xwiimote-ng Build Status

Additionally, the following packages are used from other Copr repos:

Package Status
discover-overlay Build Status
hhd Build Status
kernel-fsync Build Status
latencyflex-vulkan-layer Build Status
nerd-fonts Build Status
noise-suppression-for-voice Build Status
obs-vkcapture Build Status
ptyxis Build Status
rom-properties Build Status
wallpaper-engine-kde-plugin Build Status
webapp-manager Build Status

Verification

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

Secure Boot

[!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.

Contributor Metrics

Bazzite

Star History

Star History Chart

Special Thanks

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:

Build Your Own

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.

Join The Community

View the full list of Bazzite resources and social presence.