Bazzite's Biggest Update - Deck 44 has Launched & Happy Birthday to Universal Blue!

Bazzite Deck 44 Launches Today

Don’t worry desktop users, there’s major improvements in here for you too!

Hello folks! It’s been a hard few months with over 700 commits just to the Bazzite repo. I’m beyond proud to be able to announce that we’ve finished our biggest update in the project’s history and are landing Bazzite 44 for deck images today! This marks the end of our one-time image decoupling. From now on updates will be simultaneous across all images. We’re already thinking about Bazzite 45 :grinning_face_with_smiling_eyes:.

This wouldn’t have been possible without the combined efforts of everyone involved. Of course I have to thank all my friends at the OGC for being absolute rockstars to work with. The ShadowBlip team for dealing with our endless bug reports and PRs, the Ultramarine/Terra team for putting up with 900+ PRs from me to bump packages we’re using and for their high quality repositories and builders, and for all of our contributors - faces new and old, for getting us across the finish line and tirelessly testing this work.


First off, Happy 5th Birthday to Universal Blue

It’s hard to believe we’ve been at this for five years already. Universal Blue changed my life in a lot of ways, and I’ve watched so many of its contributors go on to get Linux jobs. I’m so glad that I have the privilege to work together and call friends the amazing people here.

Some of the biggest news across the Universal Blue ecosystem includes:

Universal Blue now has over 110K weekly active users!

Unraid is now powered by uCore!

Bluefin adopts the Open Gaming Collective

If you’re interested in Project Bluefin check out Ahmed Adan’s work on bringing the OGC kernel to Bluefin. Bazzite will be featured in the upcoming Seven Days to the Wolves event.

Aurora working on Chunkah

Currently most Universal Blue images are rechunked with rpm-ostree, Chunkah is the modern replacement and Aurora has spent a great deal of time getting it stable & tested. Expect this to roll out to the rest of the Universal Blue stack in the future.

Bazzite users now make up 30% of the traffic on Flathub!


Here’s to another 5 years of Universal Blue! :tada: May we continue to mentor developers and push for the future of the Linux desktop - together.


Now, on to the update!

Changes to Bazzite Deck Images

This is the largest rework the deck images have ever had, replacing our old stack with the full SteamOS-aligned stack:

  • InputPlumber for controller handling, emulation, and remapping
  • SteamOS-Manager for handling everything from session switching to TDP control in steam.
  • PowerStation for TDP/power control on devices SteamOS-Manager can’t support today.
  • OpenGamepadUI as an extendable plugin overlay for options Steam doesn’t expose today

OpenGamepadUI’s overlay is enabled by default only on non-Valve handhelds for now, and can be toggled with ujust configure-opengamepadui.

Important things to note:

  • TDP control is done entirely through the Steam QAM now. OpenGamepadUI will only expose extra options like Boost control for devices that support toggling it. Powerstation powers TDP where necessary, and is disabled on hardware that is fully supported by Steam. Please note that on some handhelds Steam hides the TDP slider unless you’re using the performance option under performance profiles.
  • Similar story for RGB, most handhelds will just work, but some Ayn or ASUS users may want to emulate a DualShock controller for the time being, kernel patches are in development that will allow these to also be controlled through Steam.
  • Some devices may no longer allow fan control, but a plugin for OGUI is in development to restore them. If you’re affected, let us know on our GitHub and we’ll update you as this lands.
    • All handhelds are designed to have sufficient cooling without manual control, so at worst expect louder fans than you wanted until this plugin is complete and ready for consumption.
  • The original Legion Go will temporarily lose gyro, but a patch to re-enable it is in development.
  • DeckyLoader plugins, including SimpleDeckyTDP, can once again be used without causing conflicts.

This stack will continue to improve and we’ll be posting minor fixes and improvements consistently.

Game Mode Updates

In addition to our new GUI updater working in gamemode and having full controller support, for the first time ever the Steam system updates not only function properly but provide accurate change-logs thanks to work by honjow.

Upgrading

Deck users coming from 43 are crossing a Fedora major version and a complete handheld stack replacement. As long as you haven’t intentionally pinned your image to a specific date, you can update normally to get these improvements. We recommend pinning your current deployment, just in case you need to go back to the old stack in the short term or for your specific use case. Please note that because of changes in session management upstream some manual intervention is required to go backwards. Our deck images have no automatic updating, so embark on this journey when you’re ready and we’ll be here to support you.

We also now have a notification system for major updates like these so you don’t need to go looking for major changes like these. Unfortunately it didn’t make it in before the deck images were frozen, but from this point on you can expect to see a pop-up from time to time when your attention is required. Don’t worry, it’ll never be used for small updates or ads.

An update this massive is bound to have changes that require some getting used to. We will be triaging as many issues or regressions as possible. The majority of users should expect a seamless upgrade experience, at most needing to update any customized controller configs in Steam Input.

Any regressions can be reported in Discord for rapid support, or in our GitHub. Any bugs you find that we didn’t will of course have their fixes upstreamed to OGC and benefit PikaOS, Nobara, SteamOS, and many others that use this same standardized software stack

We appreciate your continued patience through this transition period. :folded_hands:


Changes to All images

Some of these you may recognize from older announcements, we’re including them here because they didn’t land in the Deck images during this long development period.

New Bazzite Updater

Bazzite now has a fancy GUI updater and changelog viewer thanks to work by rfrench3 (Robert French) · GitHub . It can even be added to Steam Game Mode and used entirely with a controller!

Latest & Greatest Bazaar


Bazzite is now sporting the newest Bazaar flatpak store, which I’m also very proud to announce has been accepted into the GNOME Circle! Background RAM usage has been reduced to as little as 3MB, and doesn’t run at all when no app searches or updates are being conducted.

Huge thanks to the Bazaar team for working with us all this time and for building what has become my favorite app store in Linux.

Rewritten Bazzite Portal


Reorganized and expanded so that anything you did with ujust can now be done with the Portal app.

  • New welcome screen
  • GRUB menu timeout configuration
  • CEC mode selection
  • AMD VRR toggle
  • NVIDIA Flatpak runtime update
  • ProtonPlus recipes and Portal Actions
  • Option to add the Bazzite Updater to Big Picture Mode
  • New Users will be greeted by our Bazzite Portal app on their first login.

Cardwire


Cardwire is the modern replacement for both switcheroo and supergfxctl/MUX switching. Laptop and multi-gpu users can now enjoy a far simpler and easier workflow for setting defaults, changing modes, and more. It even supports ASUS devices that have traditionally been tricky to work with.

Existing supergfxctl users need only open the Cardwire GUI and verify their desired mode is set. Cardwire takes over the task switcherooctl previously did and will intelligently pick your dGPU when applications request it.

The Open Gaming Collective kernel

As part of Bazzite’s commitment to upstream health and sustainability our homegrown kernel has been replaced. Our previous kernel had a huge number of patches with no viable path upstream.
Every image now ships the Open Gaming Collective kernel, built by OpenGamingCollective/kernel-packages directly against Greg K-H’s Linux stable repo.

This update uses the newly launched 7.2.0 kernel.

The OGC kernel is a shared, community-governed patchset maintained in the open at OpenGamingCollective/linux, with a hard requirement that work done against this kernel be in the process of being upstreamed or be intentionally temporary. We’re killing the idea of a “gamer kernel” and instead replacing it with a kernel that not only comes with the kernel developer stamp of approval, but is intentionally designed to help mentor YOU to get your first patch in. It only gets better from here, expect more news in the future.

This has been a long term effort of consulting between the members of the OGC, with direct feedback from kernel developers like Greg K-H. Kernel developers expect a path upstream, anything else hurts the community. We’re committed to this. This is part of why this update took such a long time. We appreciate your patience throughout this effort.

The OGC kernel is intended to be the best gaming kernel available. We’ve invested in the build system to ensure that no Linux gamer is left behind. This kernel is designed to be shared, it’s special because it’s not special.

Today it builds Debian, Fedora, and Arch, with plans for more distributions in the future.

Secure boot signed under Universal Blue and verifiable end to end: the kernel tarball is checked against kernel.org’s signing keys, the OGC patchset ships as a single GPG-signed monolithic patch or an archive of individual GPG-signed patches, and the resulting packages are published as signed OCI images.

Greatly Improved Security & Supply Chain

Speaking of verifiable end-to-end, Bazzite has adopted the OpenSSF security recommendations, which include:

  • Every image build workflow starts from zero privileges. Each one declares
    permissions: {} at the top, and individual jobs re-grant only the scopes
    they genuinely need - packages: write to push, id-token: write to sign.
    A compromised step can’t reach for anything it wasn’t handed.
  • Third-party actions and dependencies in Just and our Containerfile are pinned to full commit SHAs, not floating tags. A retagged or hijacked upstream action can’t quietly slip into a build, and Renovate keeps the pins current so this doesn’t rot into “pinned to something ancient and vulnerable.”
  • Images are signed with sigstore’s cosign, by digest rather than tag, so the signature covers exactly the bits you pulled.
  • Every image ships an SBOM (Software Bill-Of-Materials). Syft generates an SPDX SBOM from the built rootfs, ORAS attaches it to the image as an OCI referrer, and the SBOM artifact is signed too.
  • Builds carry provenance attestations generated by actions/attest and pushed to the registry alongside the image, tying each digest back to the workflow, commit, and runner that produced it.
  • ISOs get the same treatment: a detached cosign signature, a build provenance attestation, and a published SHA256 checksum.
  • Greatly reduced third party repo use. As of today the only repositories in use when building Bazzite are:
    • Terra, an OGC member.
    • Negativo17, a favorite of Fedora users for packages that can’t be in the upstream repositories - like our Nvidia drivers.
    • CachyOS copr, for the latest sched_ext schedulers.
    • Official Universal Blue copr repositories.

You can verify images using the following commands:

# The image itself
cosign verify --key cosign.pub ghcr.io/ublue-os/bazzite:stable

# Its build provenance
gh attestation verify oci://ghcr.io/ublue-os/bazzite:stable --repo ublue-os/bazzite

# Its SBOM
oras discover ghcr.io/ublue-os/bazzite:stable

Mesa 26.2.1 & VRAM overcommit / cgroups

The kernel carries the full VRAM overcommit series along with the
dmem cgroup work. The benefits of this include buffer eviction priorities, ordered bulk moves, VRAM claim throttling, protection limits, and a fast path so the compositor stops evicting your game’s textures.

Bazzite wires the userspace half up out of the box so there’s nothing you need to do as an end user to enjoy these features:

  • dmemcg-booster runs system-wide on every image
  • KDE images get plasma-foreground-booster-dmemcg
  • GNOME images swap uresourced for uresourced-dmemcg

The end result is your games always have priority over VRAM, and will no longer crash if they try to use more memory than you have available.

If you’re interested in learning more about these changes, visit VRAM Management Part 2: Beyond the Limits of Physical VRAM | pixelcluster's GPU blog

Improved schedulers backported from Kernel 7.3

This patch set greatly improves asymmetric/hybrid CPUs and 1% lows on hardware both old and new. More information can be found at: Making sure you're not a bot!

HDMI 2.1 FRL, ALLM, and VRR

Bazzite now carries support for the HDMI 2.1 stack, optionally toggle-able via ujust configure-amd-hdmi21 (or the matching Bazzite Portal toggle) for the time being to avoid regressions - let us know how it works for you!

Other shared changes

  • HDMI-CEC rework - SteamOS-Manager handles CEC now. ujust cec-mode lets you pick between dGPU mode (libcec/cec-ctl services, for external USB adapters) and Native mode (Valve’s linux-cec/cecd backend for hardware with kernel-native CEC).
  • bpftune for automatic kernel network tuning, including patches that can detect and optimize networking for games.
  • vulkan-low-latency-layer for latency reduction features in your favorite games.
  • MakeMKV + libmmbd for Blu-ray playback
  • New akmods: nct6687d, new-lg4ff, t150-driver, hid-fanatecff -
    and sc710 for Elgato capture cards
  • QEMU and ROCm are removed - they’ve moved to Bazzite-DX, or use Distrobox for ROCm workloads and the Virtual Machine Manager flatpak or Brew for QEMU.

KDE

  • Konsole replaces Ptyxis as the default terminal, this change was made because Konsole now has the same container functionality that Ptyxis gave us.
  • Oxygen theme and icon set included by default
  • A KDE SearchProvider for Bazzite Portal
  • Three new wallpapers: Bazzite Blue, Glass, and Giants

GNOME

  • Support for rounded blur in Blur My Shell OOTB
  • A GNOME SearchProvider for Bazzite Portal
  • Three new wallpapers: Bazzite Blue, Glass, and Giants

NVIDIA images

Flatpak runtimes now automatically update after an image update, preventing the need to manually update your flatpaks to get them working with your GPU again.

The legacy driver images now use an LTS kernel

These images ship the 580 LTS driver, the last NVIDIA branch supporting Maxwell, Pascal, and Volta. Previously they tracked the same mainline kernel as everything else, which meant that once NVIDIA stops updating 580, the driver would break against the next kernel bump and the images would be finished.

They now build against the OGC LTS kernel, giving them the longest possible support time after they’re eventually abandoned. This change should buy you years longer to survive this abhorrent hardware market.


Shoutouts :megaphone:

I just want to personally thank everyone that makes up our community. We all do this for free and we do it for you. Thank you for making this journey so fun for us and for sticking around while we finish this herculean effort.

Also a huge thanks to Nickname, starfish, and Andy10115 for stepping up to offer additional testing and updating our documentation for this massive change, just to name a few.

For those of you who miss Wallpaper Engine, check out Waywallen

Waywallen is installable as an extension and a flatpak, and supports Wallpaper Engine wallpapers without the instability of the previous solutions and with full support for the GNOME desktop as well.


It’s quite beautiful looking in motion too.

You can also grab a special Universal Blue 5th Anniversary Bluefin Wallpaper Engine here!

Lastly I want to showcase a new gaming project in the community that’s actually building off of our technology and working with us under the OGC.

Armada for ARM Handhelds

Armada is a SteamOS-like for ARM handhelds that has made some incredible improvements in a short amount of time. Starting today users looking for ARM builds on our website will be redirected to them, and we’ll be supporting this project every way we can. Just take a look at this, a dual screen gamescope session on an ARM handheld!

To my knowledge this is the first time this has ever been accomplished. Huge thanks to mmogr for the basis of this patch that enabled this as well!


That’s it for now folks. We’ll see you again in about 8 minutes when Fedora 45 lands and you can catch us at next year’s SCaLE conference!

6 Likes