{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Getting Started","text":" "},{"location":"community/","title":"Community","text":""},{"location":"community/#forums","title":"Forums","text":""},{"location":"community/#discord-no-discord-account","title":"Discord (No Discord account?)","text":""},{"location":"community/#bluesky","title":"Bluesky","text":""},{"location":"community/#xtwitter-no-xtwitter-account","title":"X/Twitter (No X/Twitter account?)","text":""},{"location":"community/#reddit","title":"Reddit","text":""},{"location":"community/#lemmy","title":"Lemmy","text":""},{"location":"donations/","title":"Credits and Donating","text":"

Enjoy using Bazzite and want to help sustain its development? Consider sponsoring the project and its individual maintainers and contributors.

Sponsor Bazzite ($ USA) Sponsor Bazzite (\u20ac Europe)"},{"location":"donations/#bazzite-maintainers","title":"Bazzite Maintainers","text":"Kyle Gospodnetich Sponsor Founder, Image & CI/CD Lead HikariKnight Sponsor Virtualization, Scripting, User Support Noel Miller Sponsor Community Manager, Installer Enhancements, Custom Image Tooling"},{"location":"donations/#bazzite-core-contributors","title":"Bazzite Core Contributors","text":"Zeglius Sponsor Scripting, Documentation Maintenance, Live ISOs Maintainer CheckYourFax Community Support, Issue Wrangling Valerie Social Media Manager, Technical Support Am\u00e9lia Logo and Mascot Creator Kurt Himebauch ujust Extraordinaire. Decky wrangler. Framegen. Zacharias Xenakis Bazzite Portal, UX enhancements, bug fixes & translations stellaberrant Translations and bug fixes wolfyreload Visual Guides on Youtube, QA Testing CharlieBros Language Translations in Spanish Crono Sponsor Does not think of himself as a contributor, but helps with significant testing"},{"location":"donations/#universal-blue","title":"Universal Blue","text":"

Special thanks to Universal Blue's Emeritus who has contributed in the early days of the project.

Jorge Castro Sponsor Universal Blue founder, Bluefin Lead Maintainer, Co-creator of Bazzite DX edition Niklas Haiden Aurora Lead Maintainer, Co-creator of Bazzite DX edition Benjamin Sherman uCore Lead Maintainer, Kernel modules maintainer, UBlue Main image maintainer m2 Kernel modules maintainer, UBlue Main image maintainer. Bug Fixes & Enhancements. Tulip Blossom Sponsor Bluefin Maintainer, Leads Wolfi Bluefin expansion. Numerous fixes affecting Bazzite. Gareth Widlansky Image Maintenance"},{"location":"donations/#other-contributors","title":"Other Contributors","text":"RJ Trujillo Early Maintainer of Bazzite. CI/CD Pipelines, Initial Alternate Desktop Environment Support, and proper Steam Deck support. Emeritus. Pat Connors Documentation Aarron Lee Decky plugin creator for alternate handhelds. Provided a lot of early testing, especially with GPD and Legion Go devices. Emeritus. Jan Early Kernel maintainer of Bazzite through the kernel-fsync project. Emeritus. Sean Srock Animator. Early Ally tester. Creator of Bazzite Boot/Sleep animations. Bouhaa Early ChimeraOS maintainer that provided invaluable testing with gamemode session. Emeritus. RoyalOughtness Sponsor secureblue maintainer. Provides bug fixes related to security. Jason Nagin Creator of the non-Live Installer and its build action. Marco Rodolfi Bug Fixes & Enhancements FiftyDinar Bug Fixes & Enhancements Matthew Schwartz Steam Gaming Mode Testing & Consulting Atapi Driver Backports XYNY Infographics & Alternate Custom Tooling termdisc Technical Support Justin Garrison Developer Relations Ian Off QA Testing Alex Banna Prototyping Tony Pilot Brian Ketelsen Tooling Expert

View the full list of Bazzite contributors in the GitHub repository

"},{"location":"donations/#fedora-project","title":"Fedora Project","text":"

Bazzite would not exist without Fedora Linux since it is built directly on top of it. The Fedora Project does not take monetary donations, but values hardware donations and contributions to the project:

"},{"location":"donations/#software-included-in-bazzite","title":"Software Included in Bazzite","text":"

We also encourage you to donate to the projects that are used in Bazzite which helps us keep open source sustainable!

(If we missed software that is part of Bazzite and can be donated to, then please let us know or PR a fix!)

"},{"location":"donations/#special-thanks","title":"Special Thanks","text":"

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:

"},{"location":"sb/","title":"Sb","text":""},{"location":"Advanced/","title":"Advanced Guides","text":""},{"location":"Advanced/Auto-Mounting_Secondary_Drives/","title":"Auto-Mounting Secondary Drives","text":"

MicroSD cards automatically mount without any manual intervention required.

"},{"location":"Advanced/Auto-Mounting_Secondary_Drives/#video-guide","title":"Video Guide","text":""},{"location":"Advanced/Auto-Mounting_Secondary_Drives/#setup-an-auto-mounting-partition","title":"Setup an auto-mounting partition","text":"
  1. Open Gnome Disks, should have an icon like this.

  2. Wipe the partition you want to use, then use the leftover to create a new one.

  3. Give the drive a name and a filesystem.

Bazzite only supports BTRFS/Ext4 filesystems for reporting issues.

Now reboot, your partition should be mounted automatically. Should appear under /run/media/system/PARTITION_NAME.

"},{"location":"Advanced/Auto-Mounting_Secondary_Drives/#manual-mounting","title":"Manual mounting","text":"

Append ,user,exec at the end if it doesn't work properly.

"},{"location":"Advanced/Auto-Mounting_Secondary_Drives/#troubleshooting","title":"Troubleshooting","text":""},{"location":"Advanced/Auto-Mounting_Secondary_Drives/#emergency-mode-after-mounting","title":"Emergency Mode after mounting?","text":"

This video tutorial shows how to recover from your mounting mistakes.

"},{"location":"Advanced/Auto-Mounting_Secondary_Drives/#drives-will-not-auto-mount-despite-being-btrfsext4-requests-authentication-every-boot-to-mount","title":"Drives will not auto-mount despite being BTRFS/ext4 (Requests authentication every boot to mount)","text":"
  1. Mount the target disk(s).

  2. Open Gnome Disks and navigate to the target disk.

  3. Click on Additional Partition Options > Edit Mount Options.

  4. Ensure \"User Session Defaults\" is FALSE and \"Mount at system startup\" is TRUE, then click \"Ok\".

  5. Repeat for any additional disks. You can confirm this worked by checking your Fstab file and seeing that the appropriate UUIDs have been added. sudo cat /etc/fstab.

"},{"location":"Advanced/Best_Shell_Practices/","title":"Best Shell Practices","text":""},{"location":"Advanced/Best_Shell_Practices/#changing-the-default-terminal-shell","title":"Changing the default terminal shell","text":"

Note

The procedure for changing the default terminal on Bazzite is the same as that for Project Bluefin since both are based on Universal Blue. These instructions are adapted from the Project Bluefin docs.

Bazzite ships Ptyxis as the default terminal. It shows up as Terminal in the menu. It is strongly recommended that you change your shell via the terminal emulator instead of system-wide. Click on the Terminal settings and edit your profile:

Then select \"Use Custom Command\" and add the shell you want to use. /usr/bin/fish is included on the image and other shells like ZSH may be installed with Homebrew:

"},{"location":"Advanced/Reset_Forgotten_User_Password/","title":"Reset Forgotten User Password","text":"

Important

This method is only if you forgot your current user password! Changing your current password should be done through the desktop environment.

Warning

Follow this guide at your own discretion because you can break your system attempting any of this.

  1. Reboot your device.
  2. Press Esc on the keyboard to reach the GRUB boot menu. a. If you press Esc too many times, you may end up at a grub> prompt. b. Return to the boot menu by typing exit and pressing Enter
  3. Edit the last deployment by presssing E on your keyboard.

Edit the GRUB prompt and append init=/bin/bash to the line beginning with linux.

Continue boot process with Ctrl+X

Once you are in the GRUB command line:

  1. Temporarily mount SELinux

    mount -t selinuxfs selinuxfs /sys/fs/selinux

  2. Load SELinux policy

    /sbin/load_policy

  3. Enter your new password (i.e. passwd bazzite)

    passwd [INSERT USERNAME HERE]

  4. Sync

    sync

  5. Reboot

    /sbin/reboot -ff

Your user password should now be reset.

Thanks to Colin Walters for the solution.

"},{"location":"Advanced/Reset_Forgotten_User_Password/#not-working","title":"Not Working?","text":"

Many users forget steps regarding SELinux because of old habits. If you've created everything but the SELinux steps above, then the file /etc/shadow will be unreadable or unreachable by any process.

The good way to check if /etc/shadow is in bad SELinux configuration is to execute following command:

ls -Z /etc/shadow

You should also notice unlabeled_t on your side. You now have to fix the label on /etc/shadow with command below:

restorecon -v /etc/shadow

And then check result again with ls -Z /etc/shadow, which should lead to:

system_u:object_r:shadow_t:s0 /etc/shadow

Now the system is ready and you can reboot with /sbin/reboot -ff.

"},{"location":"Advanced/bazzite-cli/","title":"bazzite-cli","text":""},{"location":"Advanced/bazzite-cli/#what-is-bazzite-cli","title":"What is bazzite-cli?","text":""},{"location":"Advanced/bazzite-cli/#list-of-cli-tools","title":"List of CLI Tools","text":"

Bazzite's opt-in command line experience. bazzite-cli comes with command line tools such as:

The community may add new tools over time, re-running ujust bazzite-cli will install them.

"},{"location":"Advanced/bazzite-cli/#using-bazzite-cli-with-alternate-shells","title":"Using bazzite-cli With Alternate Shells","text":"

You can enable bazzite-cli for fish or zsh by pre-pending an override to the $SHELL variable to the command with:

SHELL=fish ujust bazzite-cli\nSHELL=zsh ujust bazzite-cli\n# Or do it all at once from bash with\nujust bazzite-cli && SHELL=fish ujust bazzite-cli && SHELL=zsh ujust bazzite-cli\n
"},{"location":"Advanced/creating_custom_image/","title":"Creating A Custom Bazzite Image","text":""},{"location":"Advanced/creating_custom_image/#use-cases","title":"Use Cases","text":""},{"location":"Advanced/creating_custom_image/#recommended-methods","title":"Recommended Methods","text":""},{"location":"Advanced/creating_custom_image/#option-a-using-the-image-template","title":"Option A - Using the Image template","text":"

Use the official template image to build off of to make your own custom Bazzite preferred over forking the project.

"},{"location":"Advanced/creating_custom_image/#video-guide","title":"Video Guide","text":""},{"location":"Advanced/creating_custom_image/#option-b-forking-bazzite","title":"Option B - Forking Bazzite","text":"

Sometimes you don't want to make a whole new image from scratch, you just want to change some things without too much extra work by forking Bazzite. It is highly recommended to use the Pull application for Github to keep your fork in sync.

"},{"location":"Advanced/creating_custom_image/#option-c-using-bluebuild","title":"Option C - Using BlueBuild","text":"

BlueBuild is a project that orginally started as a starting point for Universal Blue custom image building and eventually became its own separate project. All support for Blue-Build images should be directed to the appropriate communication channels outside of Universal Blue.

"},{"location":"Advanced/custom_resolution/","title":"Custom Resolutions","text":""},{"location":"Advanced/custom_resolution/#kscreen-doctor-kde-imagesdesktop-mode-only","title":"Kscreen-Doctor (KDE Images/Desktop Mode only)","text":"

Starting with Plasma 6.6, kscreen-doctor allows addition of a custom modeline. If you are on the KDE image, try to use that first!

"},{"location":"Advanced/custom_resolution/#guide-to-add-a-custom-resolution-using-kscreen-doctor","title":"Guide to add a custom resolution using kscreen-doctor","text":"
  1. Run kscreen-doctor -o in the terminal.
  2. Find the ID of the monitor you want to add a mode for. You should see something similar to this:
    Output: 1 eDP-1 a17bb763-cbd3-4b3d-b7d3-7344112e71b7\n    enabled\n    connected\n    priority 1\n    Panel\n    replication source:0\n    Modes:  1:2880x1800@60.00!  2:2880x1800@120.00*  3:1600x1200@59.87...... # output omitted for brevity\n
    For example, if you want to add a custom mode to eDP-1, your ID will be 1. Note this down.
  3. You can now construct the command to add your custom mode, following this format:
    kscreen-doctor output.<ID>.addCustomMode.<Width>.<Height>.<Refresh>.<Scaling>\n
    Replace each of the options with what you want to set. Note that refresh rate is in mHz (millihertz), so a 75Hz refresh rate will correspond to 75000 in <refresh>. <Scaling> can be full or reduced. Use full to stretch the resolution to fill the screen, or reduced to add black bars to preserve the aspect ratio.

    For example, the command for adding a custom resolution of 1920x1080@75Hz for display ID 1 that will be stretched to fill the screen would be:

    kscreen-doctor output.1.addCustomMode.1920.1080.75000.full\n

"},{"location":"Advanced/custom_resolution/#custom-resolution-helper","title":"Custom-Resolution-Helper","text":"

Remove any custom resolutions if you encounter an unexpected display issue with crh rm all. Any modifications to your device should be done appropriately at your own risk.

Custom resolutions created with this method require a reboot to take effect.

A command-line utility that assists with creating and managing custom resolutions for your Bazzite installation.

"},{"location":"Advanced/custom_resolution/#using-custom-resolution-helper","title":"Using custom-resolution-helper","text":"

Open a host terminal and enter:

custom-resolution-helper\n

There is also an alias which is less typing for those on handhelds or HTPC setups without a keyboard:

crh\n
"},{"location":"Advanced/custom_resolution/#guide-for-creating-a-custom-resolution-using-custom-resolution-helper","title":"Guide for creating a custom resolution using custom-resolution-helper","text":"

Starting with Plasma 6.6, kscreen-doctor allows addition of a custom modeline. If you are on the KDE image and only need custom resolution in desktop mode, try to use that first!

Modedb methodEDID method
  1. Run custom-resolution-helper in a terminal.
  2. Verify that you do not have a duplicate resolution.
  3. Choose Add, using arrow keys to navigate and enter to submit.
  4. Select the Display you want to create a custom resolution for. This display should be connected.
  5. Follow the Instructions on-screen in Interactive Mode.
  6. Once you finished selecting the options, you will get a prompt to change the boot configuration. Simply authorize it with your password.
  7. Once the command finishes, you can reboot and select the new resolution in your System Settings.
  1. Run custom-resolution-helper in a terminal.
  2. Choose Dump-EDID and select your display.
  3. The EDID will be placed in /tmp/crh/edid.bin.
  4. You can copy this to either Home, Downloads, or Desktop folder.
  5. We can use the familiar CRU to edit it, however, this will require a wine/proton launcher. You can use Lutris, Faugus launcher, or even Steam to open this.
  6. Once you open CRU, click the import option in the lower lefthand corner. Make sure files of type is set to \"all\", and \"Import complete EDID\" is selected.
  7. You can do your modifications to the edid, the same way as on Windows.
  8. Once you finish, save it as a file using the export option.
  9. Move the edited edid file to /tmp/crh/edited/, and select it in crh add-edid. You will get a prompt to change the boot configuration. Simply authorize it with your password.
  10. Once the command finishes, you can reboot and select the new resolution in your System Settings.
"},{"location":"Advanced/custom_resolution/#interactive-mode-option-explaination","title":"Interactive Mode Option Explaination:","text":" "},{"location":"Advanced/custom_resolution/#guide-for-creating-a-custom-resolution-for-sunshine-game-streaming","title":"Guide for creating a custom resolution for Sunshine Game Streaming","text":"

Let's say you are streaming from your host PC (running Bazzite) to your laptop:

...and text in the stream looks blurry because of resolution scaling.

You can use custom-resolution-helper to add a virtual display to your host PC (running Bazzite) without a dummy plug!

Do not disable the main display, as doing that may leave you with no available display out (which may also break streaming). If you do encounter a black screen that persists after rebooting, you can try going into a tty by pressing ctrl + alt + F2, and edit or remove ~/.config/kwinoutputconfig.json from the command line. Note that this will remove your monitor configurations. An example command will be mv ~/.config/kwinoutputconfig.json ~/.config/kwinoutputconfig.json.bak

"},{"location":"Advanced/custom_resolution/#advanced-usage","title":"Advanced Usage","text":"

This tool adds a kernel argument with video=[RESOLUTION]. The [RESOLUTION] string follows the format <name>:<xres>x<yres>[M][R][-<bpp>][@<refresh>][i][m][eDd], as specified in the kernel documentation for modedb.

If you feel confident enough and know what you are doing, you can use the

custom-resolution-helper add [RESOLUTION]\n

to add a resolution with functionality not included in this script, such as forcing a DVI-I port to use digital output.

You can also manipulate kernel arguments directly via

rpm-ostree kargs --editor\n

However, please note that any modifications to your device should always be done appropriately at your own risk.

"},{"location":"Advanced/dracut-and-initramfs/","title":"How to Use Modprobe Options in Bazzite","text":""},{"location":"Advanced/dracut-and-initramfs/#if-you-just-plan-to-add-options-to-a-module-then-you-should-consider-using-a-karg","title":"If you just plan to add options to a module, then you should consider using a karg!","text":"

Touching the initramfs system and modprobe will slow down your updates so all your updates will take several minutes longer. In most cases what you want to do in modprobe can be done with simple kernel arguments.

In this example lets change the below modprobe options into a karg (kernel argument):

options hid_apple fnmode=2\n
This would translate to the karg:
hid_apple.fnmode=2\n
To add this to grub we issue the command:
rpm-ostree kargs --append-if-missing=\"hid_apple.fnmode=2\"\n
This lets you change the module option without editing the initramfs system and is a lot faster whenever you update the system as the kernel arguments are not regenerated on each update.

"},{"location":"Advanced/dracut-and-initramfs/#upstream-documentation-on-modifying-kernel-arguments","title":"Upstream Documentation on Modifying Kernel Arguments","text":"

Read the upstream Fedora documentation on this topic for more information.

"},{"location":"Advanced/looking-glass/","title":"Installing Looking Glass","text":""},{"location":"Advanced/looking-glass/#read-first","title":"READ FIRST!","text":"

Looking-Glass is a very experimental project and is not ready for production use! This means there are no official packages for looking-glass-client yet. For this reason we do not package or ship looking-glass-client, we only provide a working configuration and SELinux rules so that it can be used in Bazzite. We do however package the kvmfr kernel module and include it with the system image, as such file any issue with the kvmfr module in Bazzite to our Discord or Github issue tracker and make sure to ping @HikariKnight.

We will only tell you to file an issue with Looking-Glass directly if the issue is not related to the packaging and configuration of the kvmfr module.

"},{"location":"Advanced/looking-glass/#enabling-the-kvmfr-module","title":"Enabling the KVMFR Module","text":"

You can enable the kvmfr module by running this command:

ujust setup-virtualization kvmfr\n
"},{"location":"Advanced/looking-glass/#compiling-looking-glass-client","title":"Compiling Looking-Glass Client","text":"

Create a fedora:latest distrobox that we will use to compile the binary, use the following command to make the container, when asked about what image to use, select the default one as I have verified this guide works with that image for building. This distrobox has to be made manually without the --nvidia flag which our ujust automatically applies to enable hardware acceleration, however we explicitly do not want it in order to make cmake-data successfully install.

Note

If you are not using the latest Fedora version, please change latest to match your version number, this is to avoid dependency versioning issues.

distrobox create -i \"fedora:latest\" -n \"tmp-lookingglass\"\n
If you want to use a separate home folder for this then make a folder to contain this containers home folder and run this command instead:
distrobox create -i \"fedora:latest\" -n \"tmp-lookingglass\" -H \"/path/to/new/home\"\n
Enter the container with distrobox enter tmp-lookingglass

Follow upstream documentation, you can find the fedora build dependencies here and you will also want to install the dependencies mentioned for PipeWire users. Since we will be building for Wayland and not X11 you will also need the package libdecor-devel

When you get to the part for running cmake, use the command:

cmake -DENABLE_WAYLAND=1 -DENABLE_X11=0 -DENABLE_PULSEAUDIO=0 -DENABLE_PIPEWIRE=1 ..\n
The above command will disable X11 support and Pulseaudio support, but enable Pipewire and Wayland support, this will avoid any issues as Bazzite does not ship the X11 dependencies for looking-glass.

Copy the built looking-glass-client binary to /run/host/home/$USER/.local/bin/ You can do that using the following commands if you followed the looking-glass documentation.

mkdir /run/host/home/$USER/.local/bin\ncp ./looking-glass-client /run/host/home/$USER/.local/bin/\n
Test and see if looking-glass-client binary works for you on the host with your VM running.

Exit the container and run the below command to remove the container we used to build the Looking-Glass client.

distrobox stop tmp-lookingglass ; distrobox rm tmp-lookingglass\n

"},{"location":"Advanced/plymouth_init/","title":"Show Detailed Init Logs During Boot","text":""},{"location":"Advanced/plymouth_init/#purpose","title":"Purpose","text":"

See the init log show if services are functional when your device boots.

"},{"location":"Advanced/plymouth_init/#1-change-initramfs-theme-to-enable-detailed-init-logs","title":"1 - Change Initramfs Theme to Enable Detailed Init Logs:","text":"
sudo plymouth-set-default-theme details\n

Alternatively, create /etc/plymouth/plymouthd.conf manually

"},{"location":"Advanced/plymouth_init/#2-regenerate-initramfs-reboot-to-enable-theme-change","title":"2 - Regenerate Initramfs & Reboot to Enable Theme Change","text":"
sudo rpm-ostree initramfs --enable --reboot\n
"},{"location":"Advanced/rescue-and-emergency-mode/","title":"Booting Into Rescue and Emergency Modes","text":""},{"location":"Advanced/rescue-and-emergency-mode/#preface","title":"Preface","text":"

Fedora already has a built-in mechanism (provided by systemd) for booting into rescue/emergency modes.

However, Fedora (and thus Universal Blue systems), do not set a root password during install. Thus, when the emergency or rescue mode is reached, the user is shown the error:

Cannot open access to console, the root account is locked.\n
We've improved the situation for all Universal Blue derivatives using inspiration from Fedora CoreOS.

Now, when booting to emergency or rescue mode with a locked root account, the user is instead presented a more standard prompt:

Press Enter for maintenance\n(or press Control-D to continue):\n

At this point, pressing Enter will drop the user into the appropriate root shell. SELinux will also be active in this mode (unless it has been disabled by other configuration), so this is a good mode to use if needing to reset your password, etc.

See below for more details:

"},{"location":"Advanced/rescue-and-emergency-mode/#booting-to-emergency-mode","title":"Booting to Emergency Mode","text":"

Emergency mode provides the most minimal environment possible and allows you to repair your system even in situations when the system is unable to enter rescue mode. In emergency mode, the system mounts the root file system only for reading, does not attempt to mount any other local file systems, does not activate network interfaces, and only starts few essential services.

  1. Press Esc on the keyboard to reach the GRUB boot menu. a. If you press Esc too many times, you may end up at a grub> prompt. b. Return to the boot menu by typing exit and pressing Enter
  2. Select the desired deployment (the top entry is generally correct) and edit by pressing E on the keyboard.
  3. Arrow down to the line starting with linux and press Ctrl+E to reach the end of the line.
  4. Add the word emergency to the end of the line. a. Ensure there is a space between emergency and the pre-existing text. b. Equivalent parameters -b and systemd.unit=emergency.target may be added instead of emergency.
  5. Press Ctrl+X to boot the system.
"},{"location":"Advanced/rescue-and-emergency-mode/#booting-to-rescue-mode","title":"Booting to Rescue Mode","text":"

Rescue mode provides a convenient single-user environment and allows you to repair your system in situations when it is unable to complete a normal booting process. In rescue mode, the system attempts to mount all local file systems and start some important system services, but it does not activate network interfaces or allow more users to be logged into the system at the same time. In Fedora, rescue mode is equivalent to single user mode.

  1. Press Esc on the keyboard to reach the GRUB boot menu. a. If you press Esc too many times, you may end up at a grub> prompt. b. Return to the boot menu by typing exit and pressing Enter
  2. Select the desired deployment (the top entry is generally correct) and edit by pressing E on the keyboard.
  3. Arrow down to the line starting with linux and press Ctrl+E to reach the end of the line.
  4. Add the word single to the end of the line. a. Ensure there is a space between single and the pre-existing text. b. Equivalent parameters 1, s, S, and systemd.unit=rescue.target may be added instead of single.
  5. Press Ctrl+X to boot the system.
"},{"location":"Advanced/rescue-and-emergency-mode/#root-shell-with-no-password-how-can-this-be-secure","title":"Root shell with no password! How can this be secure?","text":"

This improvement is implemented such that a user must have the ability to edit the kernel command line. If your bootloader (eg, GRUB) is configured with a password preventing users from modifying the kernel command line, bypassing the password for a locked root account will not be enabled. This is especially important since emergency mode can be reached when a filesystem check fails at boot time, not just when specified on the kernel command line.

Given this safeguard, this improved rescue & emergency method is just as secure as setting init=/bin/bash, etc. Plus, it is less likely a user will damage SELinux labels using this method.

"},{"location":"Advanced/rescue-and-emergency-mode/#reset-forgotten-user-password","title":"Reset Forgotten User Password","text":"

Forgot the user password to login? Read the Fedora Documentation on this topic. Please remember that the default password for all new Bazzite installations is \"bazzite\" if you did not set one during the installation setup.

"},{"location":"Advanced/scopebuddy/","title":"ScopeBuddy","text":""},{"location":"Advanced/scopebuddy/#what-is-it","title":"What is it?","text":""},{"location":"Advanced/scopebuddy/#how-to-use-it","title":"How to use it","text":"

As a gamescope replacement just to fix the Steam Overlay:

If you just want to fix the Steam Overlay (and Steam Input in some games), all you have to do is replace gamescope in your launch options for the game with scb or ScopeBuddy. Essentially turning

XDG_DEFAULT_LAYOUT=no gamescope -w 1920 -h 1080 -W 2560 -H 1440 -- %command% --launcher-skip\n

Into

XDG_DEFAULT_LAYOUT=no scb -w 1920 -h 1080 -W 2560 -H 1440 -- %command% --launcher-skip\n

Now your Steam Overlay will work when using gamescope for a game in desktop mode! \ud83c\udf89

"},{"location":"Advanced/scopebuddy/#usage-in-lutris","title":"Usage in Lutris","text":"
  1. Open Lutris and right click on the game you want to use ScopeBuddy with.
  2. Click Configure
  3. Go to the System Options tab and scroll down to Game execution
  4. Click Add under Environment variables and set the key to SCB_APPID and the value to lutris/nameofgame.
  5. In the Command prefix add scb --
  6. Click Save

The SCB_APPID Environment variable is optional, but will let you take advantage of game specific config files

"},{"location":"Advanced/scopebuddy/#configuration-files","title":"Configuration files","text":""},{"location":"Advanced/scopebuddy/#setting-global-defaults","title":"Setting global defaults","text":"

If you ran your game once with the above launch options, ScopeBuddy will have created a default example config for you ~/.config/scopebuddy/scb.conf

It might be possible that the file doesnt exists, in such case, create an empty one.

Inside the file you can add env vars and setup a default set of gamescope arguments.

export XDG_DEFAULT_LAYOUT=no\nSCB_GAMESCOPE_ARGS=\"-f -w 2560 -h 1440 -W 2560 -H 1440 -r 180\"\n

The above scb.conf will make ScopeBuddy always set the keyboard layout in gamescope to norwegian and run gamescope with the arguments -f -w 1920 -h 1080 -W 2560 -H 1440 -r 180

This means we can now shorten our Launch Options for games we want to run in gamescope to just

scb -- %command% --launcher-skip\n

Note

--launcher-skip is just an example launch option

"},{"location":"Advanced/scopebuddy/#auto-resolutionhdrvrr","title":"Auto Resolution/HDR/VRR","text":"

For users that routinely change resolutions or use game streaming via Sunshine/Moonlight or Steam Remote Play, your display properties may change frequently.

On KDE desktops (early Gnome support added with caveats), ScopeBuddy accepts configuration to automatically inject the width and height, HDR state, or VRR state of your primary display.

Add the following variables to the following to the config file at ~/config/scopebuddy/scb.conf:

SCB_AUTO_RES=1 # Overrides output height and width with current display\nSCB_AUTO_HDR=1 # Adds --enable-hdr if the current display has HDR enabled\nSCB_AUTO_VRR=1 # Adds --adaptive-sync if the current display has VRR enabled\n
If you have multiple displays (or a streaming \"dummy plug\"), these values will be detected from your primary display in KDE.

Hard-coding a specific display in your SCB_GAMESCOPE_ARGS with --prefer-output {your-device-here} will make these automatic values detect from the preferred display.

A full config example using SCB_AUTO_* vars might look like:

SCB_GAMESCOPE_ARGS=\"-f --mangoapp\" # passes args for fullscreen + mangohud to gamescope\nSCB_AUTO_RES=1\nSCB_AUTO_HDR=1\nSCB_AUTO_VRR=1\n

This will result in the following gamescope command output when your KDE display is set to 2560x1440 with HDR and VRR on: gamescope -f --mangoapp -W 2560 -H 1440 --hdr-enabled --adaptive-sync.

Later, if you switch your KDE display to 1920x1080 with HDR off and VRR on: gamescope -f --mangoapp -W 1920 -H 1080 --adaptive-sync.

All without changing a single line in your Steam launch options or ScopeBuddy config!

"},{"location":"Advanced/scopebuddy/#additional-config-files","title":"Additional Config Files","text":"

If you have a different set of defaults you use for a game, for example you want to upscale this game from 1080p to 1440p, then you can have a separate default config and tell ScopeBuddy to use that instead. For this example, make the file 1080p.conf inside ~/.config/scopebuddy/ and add defaults specific to what you want to use for upscaling from 1080p.

export XDG_DEFAULT_LAYOUT=no\nSCB_GAMESCOPE_ARGS=\"-f -w 1920 -h 1080 -W 2560 -H 1440 -r 180\"\n

To use this new config you can tell ScopeBuddy to use it by setting the SCB_CONF env var in the games Launch Option in steam

SCB_CONF=1080p.conf scb -- %command% --launcher-skip\n

ScopeBuddy will now use 1080p.conf instead of scb.conf to set default options and environment variables.

Note

If you supply any argument to ScopeBuddy then SCB_GAMESCOPE_ARGS will be ignored entirely! This means using the launch option scb -f -- %command% will load the env vars from scb.conf however it will not use SCB_GAMESCOPE_ARGS from any config files.

"},{"location":"Advanced/scopebuddy/#setting-specific-options-for-a-single-steam-game","title":"Setting specific options for a single Steam game","text":"

For this example we will use Path of Exile 2, this game supports HDR, so we want to append the --hdr-enabled argument to gamescope.

First we will need to find Path of Exile 2's Steam AppID, you can find this by going to the games Properties in Steam and then heading to the Updates section. At the bottom you will see some information, you want the App ID value, in our Path of Exile 2 example this is 2694490.

Now make 2694490.conf inside ~/.config/scopebuddy/AppID/ and add your Path of Exile 2 specific options. And for examples sake let's set SteamDeck to 0, because let us say the game enforces settings that are only relevant on Steam Deck hardware, so we turn off announcing to the game that we are on the Steam Deck Client.

export SteamDeck=0\nSCB_GAMESCOPE_ARGS+=\" --hdr-enabled\"\n

Now when steam runs scb -- %command%, ScopeBuddy will load the config from scb.conf then load AppID/2694490.conf afterwards to apply extra options on top of the defaults (or replace previous options from the default config if the same variables are exported or changed again)

Notice how SCB_GAMESCOPE_ARGS uses += instead of =.

This let's us re-use the SCB_GAMESCOPE_ARGS we set in our scb.conf

Note

You can also set an AppID manually using SCB_APPID=\"somecoolgame\" to override the automatic AppID detection which only supports Steam currently. This can be used to manually add rudimentary support for \"AppID\"-like configs for games in other launchers like Lutris or Heroic; for example, SCB_APPID=\"heroic/somecoolgame\" would use the config file AppID/heroic/somecoolgame.conf.

"},{"location":"Advanced/scopebuddy/#frequently-asked-questions-faq","title":"Frequently asked questions (FAQ)","text":""},{"location":"Advanced/scopebuddy/#is-there-a-graphical-application-for-making-configurations","title":"Is there a graphical application for making configurations?","text":"

Yes! There is one on flathub: ScopeBuddy GUI

"},{"location":"Advanced/scopebuddy/#can-i-use-scopebuddys-functions-without-using-gamescope","title":"Can I use ScopeBuddys functions without using gamescope?","text":"

Yes, just use the env var SCB_NOSCOPE=1 in the Launch Options like this

SCB_NOSCOPE=1 scb -- %command% --launcher-skip\n

This will tell ScopeBuddy to not launch gamescope and ignore SCB_GAMESCOPE_ARGS in all configs. The default config file will also be set to noscope.conf instead of scb.conf unless you also added the SCB_CONF env var to the launch options.

Note

You can also export SCB_NOSCOPE=1 inside an appid config if you never want to use gamescope for a game but still use ScopeBuddy for it. However noscope.conf will be ignored when used like this, due to it being applied after scb.conf has been loaded.

"},{"location":"Advanced/scopebuddy/#does-scopebuddy-work-inside-steam-gaming-mode","title":"Does ScopeBuddy work inside Steam Gaming Mode?","text":"

Yes! When ScopeBuddy detects that steam is running in Steam Gaming Mode, it will force SCB_NOSCOPE=1 and SCB_CONF=gamemode.conf so that you can set custom options that will only be used in Steam Gaming Mode while keeping game specific options!

This means you can use ScopeBuddy to automatically handle using nested gamescope when in desktop mode and not utilizing gamescope when inside Steam Gaming Mode. No more manually adding and removing gamescope from launch options when you switch between Steam Gaming Mode and Desktop Mode! \ud83c\udf89

"},{"location":"Advanced/scopebuddy/#can-i-have-scopebuddy-handle-the-launch-options-for-my-games","title":"Can I have ScopeBuddy handle the launch options for my games?","text":"

Of course! You will just use an AppID config for this and you can then append launch options by adding this to the AppID config for the game.

command+=\" --launcher-skip --some-other-parameter\"\n

Note

The += is very important as you NEED to append launch options to the %command%, it is also vital that you start with a space after the first \" otherwise the game will fail to launch.

"},{"location":"Advanced/scopebuddy/#can-i-have-scopebuddy-not-apply-its-fixes-and-only-use-it-as-a-gamescope-manager","title":"Can I have ScopeBuddy not apply its fixes and only use it as a gamescope manager?","text":"

Using the following environment variables will change ScopeBuddy's default behavior

Note

See XKCD 1172 for context to why these environment variables exist

"},{"location":"Advanced/scopebuddy/#when-should-i-use-export-for-an-environment-variable","title":"When should I use export for an environment variable?","text":"

This depends if it is an internal variable for ScopeBuddy or a global variable for games. Rule of thumb is that you export every environment variable except in the situation of

"},{"location":"Advanced/scopebuddy/#wait-this-is-all-just-bash","title":"Wait... This is all just Bash!?","text":"

Every config file for ScopeBuddy is a full bash script that is sourced before running gamescope and the game. This means if you are an advanced user you can do some really creative stuff! You can also set SCB_DEBUG=1 to have the final command written to ~/.config/scopebuddy/scopebuddy.log

Note

Steam will mess with the launch environment, some tools like curl will have incompatible libraries in the environment while wget will work fine. Test your scripts properly and have them write to a log for easy debugging using 2>&1 1>/tmp/myscript.log at the end of it in the config to write the output to a log file during testing.

Some handy variables available to you are

Let your creativity go wild! But please be responsible!

"},{"location":"Advanced/scopebuddy/#script-example-for-an-arcdps-updater-for-guild-wars-2","title":"Script example for an ArcDPS updater for Guild Wars 2","text":"

This is meant as inspiration for any ideas you might have?

Make a config file for Guild Wars 2 AppID/1284210.conf

# Guild Wars 2\n# Do not use gamescope for this title\nSCB_NOSCOPE=1\n# Use ArenaNet login instead of Steam\ncommand+=\" -provider Portal\"\n\n# Get the game directory from the expanded %command% variable from steam\nGAMEDIR=$(echo $command | awk -F '\" \"' '{ print $12 }' | sed 's/\\/Gw2-64.exe//')\n# Run the arcdps updater script before game starts\n\"$SCB_CONFIGDIR/scripts/dl-arcdps\" \"$GAMEDIR\"\n

Then make the script file (remember to make it executable) scripts/dl-arcdps

#!/bin/bash\n# Get the directory passed to the script\nGW2_DIR=$1\n# Get the latest md5sum for arcdps\nNEWMD5SUM=$(wget -qO- https://www.deltaconnected.com/arcdps/x64/d3d11.dll.md5sum | awk '{print $1}')\n# Get installed arcdps md5sum\nMD5SUM=$(md5sum \"$GW2_DIR/d3d11.dll\" 2>/dev/null | awk '{print $1}')\n# If they do not match, ask to update arcdps\nif [ \"$MD5SUM\" != \"$NEWMD5SUM\" ]; then\n    if zenity --question --text=\"Update ArcDPS?\\nNew MD5: $NEWMD5SUM\\nOld MD5: $MD5SUM\"; then\n        # Use wget to download arcdps as curl does not work in the steam environment\n        wget -O \"$GW2_DIR/d3d11.dll\" https://www.deltaconnected.com/arcdps/x64/d3d11.dll\n    fi\nfi\n
"},{"location":"Advanced/scopebuddy/#video-overview","title":"Video Overview","text":""},{"location":"Advanced/sunshine-brew/","title":"Changes to Sunshine on Bazzite","text":"

This change will take effect in an update in the near future, along with the switch to OGC kernel with inputplumber. Look out for announcements!

"},{"location":"Advanced/sunshine-brew/#the-change","title":"The Change","text":"

Sunshine had historically been shipped with the base Bazzite image - but that will no longer be the case.

"},{"location":"Advanced/sunshine-brew/#why-is-this-happening","title":"Why is this happening?","text":"

The reasoning for this change is due to the lack of a stable package of Sunshine on Fedora 43, and as of April, six months into the Fedora 43 lifecycle, and nearing the release of Fedora 44. This forced Bazzite to use the Sunshine-Beta package instead, and had thus caused users to have non-functional streaming after an update numerous times, due to multiple changes to their systemd service name.

"},{"location":"Advanced/sunshine-brew/#what-should-i-do-if-i-am-currently-using-sunshine","title":"What should I do if I am currently using Sunshine?","text":"

The guide below will walk you through switching to the Homebrew Sunshine package if you already actively use Sunshine, so that you will continue to have a working stream from your Bazzite Sunshine host when the update occurs.

  1. Open the Bazzite Portal and select Sunshine
  2. Select Enable or Enable(Beta) if you want the beta version of Sunshine
  3. A Terminal Window will appear. Wait for the installation to complete and you will be prompted to input your password to enable screen capture through Kernel Mode Setting.
  4. Disable the old Sunshine service by opening a new terminal window and run
    systemctl --user disable --now app-dev.lizardbyte.app.Sunshine.service\n
  5. This is a good time to test if your new setup works - Your settings should persist.
"},{"location":"Advanced/sunshine-brew/#something-went-wrong-what-should-i-do","title":"Something went wrong, what should I do?","text":""},{"location":"Advanced/sunshine-brew/#the-brew-link-step-did-not-complete-successfully","title":"The brew link step did not complete successfully","text":"

To fix this, make the directory by running

mkdir -p /home/linuxbrew/.linuxbrew/Cellar/xkeyboard-config/2.47/share/xkeyboard-config-2\n

If you encounter any other issues, feel free to reach out on the Bazzite Discord!

"},{"location":"Advanced/swapfile/","title":"Using Swap for Additional Memory or Hibernation","text":""},{"location":"Advanced/swapfile/#purpose","title":"Purpose","text":"

This guide will walk you through the steps to create a swapfile on a BTRFS filesystem, which can be used for additional memory or hibernation.

Bazzite-Deck images already support hibernation via Handheld Daemon using a dynamic swap file (General -> Hibernate). In addition, all Bazzite images use zram by default to provide additional memory.

Use this guide if you want to create a persistent swapfile instead of zram for more uncompressed memory, or if you want to use hibernation via the desktop environment.

"},{"location":"Advanced/swapfile/#create-the-swapfile","title":"Create the Swapfile","text":"

First, create a subvolume for the swapfile. This ensures that if you decide to use snapshots, the swapfile will not be included in them. You should also fix the SELinux context of the swapfile directory.

sudo btrfs subvolume create /var/swap\nsudo semanage fcontext -a -t var_t /var/swap\nsudo restorecon /var/swap\n

Then, create the swapfile itself. In this example, we create a 26GB swapfile. Again, you need to fix the SELinux context of the swapfile itself.

SIZE=26G\nsudo btrfs filesystem mkswapfile --size $SIZE /var/swap/swapfile\nsudo semanage fcontext -a -t swapfile_t /var/swap/swapfile\nsudo restorecon /var/swap/swapfile\n

Load the swapfile to verify it works with:

sudo swapon /var/swap/swapfile\n

"},{"location":"Advanced/swapfile/#adding-it-to-fstab","title":"Adding it to fstab","text":"

Now, you need to add your swapfile to /etc/fstab to make it persistent:

sudo cp /etc/fstab /etc/fstab.bak\nsudo nano /etc/fstab\n

Attention

Be careful when you edit the fstab file otherwise your system will no longer start! In this case, the previous image can be used to boot.

Add the following line of code to fstab:

/var/swap/swapfile none swap defaults,nofail 0 0\n
"},{"location":"Advanced/swapfile/#disable-zram","title":"Disable zram","text":"

Finally, you need to disable zram to enable hibernation to work properly. For this, you can zero out the zram-generator configuration file. This prevents Bazzite updates from restoring it.

echo \"\" | sudo tee /etc/systemd/zram-generator.conf\n

Finally, reboot your device to apply the changes made above.

"},{"location":"Advanced/swapfile/#reverting-changes-and-restoring-zram","title":"Reverting Changes and Restoring zram","text":"

To revert the changes and restore zram, first remove the swapfile entry from /etc/fstab. Then, re-enable zram by copying the original configuration file back:

sudo cp /usr/etc/systemd/zram-generator.conf /etc/systemd/zram-generator.conf\n

"},{"location":"Gaming/","title":"Gaming Guides","text":""},{"location":"Gaming/Common_gaming_issues/","title":"Common Gaming Issues","text":""},{"location":"Gaming/Common_gaming_issues/#native-linux-port-versus-windows-version","title":"Native Linux Port Versus Windows Version","text":"

Some Linux ports may have missing functionality or worse performance than on the Windows version running through Proton. However, there are scenarios where using the native port exclusively is your only option, and may even be desirable.

If a Linux native game does not launch, then force the Legacy Runtime compatibility layer by going into the game's properties and selecting \"Compatibility\" then checking \"Force the use of a specific Steam Play compatibility tool\" and selecting it.

"},{"location":"Gaming/Common_gaming_issues/#denuvo-anti-tamper-drm-locking-games","title":"Denuvo Anti-Tamper DRM Locking Games","text":"

Games that use Denuvo Anti-Tamper DRM consider changing Proton versions as activating the game on different hardware which may cause you to get locked out of the game if you change the Proton version more than 5 times within a 24 hour period.

"},{"location":"Gaming/Common_gaming_issues/#source-1-engine-audio-and-custom-content-bugs","title":"Source 1 Engine Audio and Custom Content Bugs","text":"

Note

This only applies to specific games running on the Source engine.

Attention

Do not attempt to follow this workaround until you run into issues with audio or the specific scenario mentioned below regarding Left 4 Dead 2.

Missing voice lines or custom content not loading in Source games? SELinux is blocking MP3 decoding and other middleware because it executes heap memory.

This has also been confirmed to cause issues joining and hosting custom maps in Left 4 Dead 2.

"},{"location":"Gaming/Common_gaming_issues/#the-fix-for-audiocustom-content-issues","title":"The fix for audio/custom content issues:","text":"

Warning

Configuring SELinux is intended for advanced users and if used irresponsibly can break other components in your system and weaken the security of your device.

Open a host terminal and enter these 4 commands at your own risk:

sudo su\n
cd /tmp\n
ausearch -c 'hl2_linux' --raw | audit2allow -M my-hl2linux\n
semodule -X 300 -i my-hl2linux.pp\n

Reboot your device and test to see if the Source game still has issues.

"},{"location":"Gaming/Common_gaming_issues/#undoing-this-change","title":"Undoing this change:","text":"

Disable or remove the module.

"},{"location":"Gaming/Common_gaming_issues/#disable-the-change","title":"Disable the change:","text":"
semodule -X 300 -d my-hl2linux\n
"},{"location":"Gaming/Common_gaming_issues/#remove-and-delete-the-change","title":"Remove and delete the change:","text":"
semodule -X 300 -r my-hl2linux\n

The .pp file should be in /root if you want to remove that.

"},{"location":"Gaming/Common_gaming_issues/#steam-games-not-launching","title":"Steam Games Not Launching","text":"

Steam games might not launch for a variety of reasons.

"},{"location":"Gaming/Common_gaming_issues/#gathering-steam-log-files","title":"Gathering Steam log files:","text":"

If you encounter issues with a game launching on Steam:

  1. Open the game's properties and enter this launch option: PROTON_LOG=1 %command%

  2. Launch the game

A log file should appear in your Home directory named after the game's application ID number.

"},{"location":"Gaming/Common_gaming_issues/#ntfs-formatted-drive-permission-issues","title":"NTFS formatted drive permission issues:","text":"

Make sure your games are not on a NTFS (Windows) partition. More information can be found here.

"},{"location":"Gaming/Common_gaming_issues/#multi-user-wine-quirks","title":"Multi-user WINE quirks:","text":"

Note

Bazzite-Deck does not support multiple Linux user accounts, this information only applies to the Desktop edition of Bazzite.

Sometimes Steam games will completely refuse to launch on a secondary user account. This can be due to the ownership of the WINE prefix files. You might see an error like this in ~/.local/share/Steam/logs/console-linux.txt on the secondary user account:

wineserver: /SteamLibrary/steamapps/compatdata/377160/pfx is not owned by you\n

You can fix this by creating a separate Steam library folder to hold the prefix data for Proton and creating a symbolic link (symlink) for the other folders (like common game data).

USER2@bazzite: /mnt/ExtraStuff/USER2SteamLibrary/steamapps$ ls -la\ntotal 32\ndrwxrwxr-x. 3 USER2 steamplayers 4096 Jan 29 15:19 .\ndrwxrwsr-x. 3 USER2 steamplayers 4096 Jan 29 16:13 ..\n-rwxr-xr-x. 1 USER2 USER2         2287 Jan 29 15:19 appmanifest_377160.acf\nlrwxrwxrwx. 1 USER2 USER2           51 Jan 29 15:10 common -> /mnt/ExtraStuff/USER1SteamLibrary/steamapps/common/\ndrwxr-xr-x. 3 USER2 USER2         4096 Jan 29 15:13 compatdata\nlrwxrwxrwx. 1 USER2 USER2           56 Jan 29 15:12 shadercache -> /mnt/ExtraStuff/USER1SteamLibrary/steamapps/shadercache/\nlrwxrwxrwx. 1 USER2 USER2           49 Jan 29 15:12 temp\nlrwxrwxrwx. 1 USER2 USER2           53 Jan 29 15:12 workshop\n

Similarly copy or symlink the appmanifest files from each library for games to show up properly in each Steam library.

"},{"location":"Gaming/Game_Launchers/","title":"Game Launchers","text":""},{"location":"Gaming/Game_Launchers/#steam-setup","title":"Steam Setup","text":"

Steam can run Windows games on Linux. It utilizes a wide range of projects and patches all packed into a piece of software built-in to Steam called Proton for Windows compatibility.

"},{"location":"Gaming/Game_Launchers/#forcing-a-specific-proton-steam-play-tool-version","title":"Forcing A Specific Proton / Steam Play Tool Version","text":""},{"location":"Gaming/Game_Launchers/#important-notes","title":"Important Notes","text":"

Run that specific version by going into the game's Properties > Compatibility > Force the use of a specific Steam Play compatibility tool

"},{"location":"Gaming/Game_Launchers/#image-example","title":"Image Example","text":""},{"location":"Gaming/Game_Launchers/#non-steam-games","title":"Non-Steam Games","text":"

It is recommended to use Lutris for most non-steam games. There are edge cases with specific launchers and games that have a better working alternative than Lutris, but Lutris is the most supported option for PC games outside of Steam on Bazzite outside of special scenarios.

"},{"location":"Gaming/Game_Launchers/#lutris-setup","title":"Lutris Setup","text":"

Lutris offers two methods to play Windows games on Bazzite. Community-driven scripts or manually adding the executable. It is highly recommended to use the manual method as some scripts are poorly maintained.

"},{"location":"Gaming/Game_Launchers/#manually-adding-a-windows-game-to-lutris","title":"Manually adding a Windows game to Lutris","text":"

However if your game is not listed or doesn't work with the provided script, then manually add the executable. It will need a prefix directory created, but by default it will use the ~/Games directory for each game.

"},{"location":"Gaming/Game_Launchers/#lutris-install-scripts","title":"Lutris Install Scripts","text":"

Lutris is game management software that doubles as a WINE front-end for Windows games. Several games and launchers can be installed by searching for the title and using one of the installer scripts for it.

"},{"location":"Gaming/Game_Launchers/#lutris-shortcuts","title":"Lutris Shortcuts","text":"

Right clicking a game on Lutris gives the option to add it as a non-Steam game (useful for Steam Gaming Mode), create a desktop shortcut, or an application menu shortcut.

"},{"location":"Gaming/Game_Launchers/#other-game-launchers","title":"Other Game Launchers","text":"

Bazaar can install other game launchers like Heroic Games Launcher (for GOG/Epic/Amazon games) or alternate frontends like Faugus.

"},{"location":"Gaming/Hardware_compatibility_for_gaming/","title":"Hardware Compatibility for Linux Gaming","text":""},{"location":"Gaming/Hardware_compatibility_for_gaming/#minimum-system-requirements","title":"Minimum System Requirements","text":"

The Hardware for Linux website is a good indicator for how well OEM hardware is supported on the Linux desktop.

"},{"location":"Gaming/Hardware_compatibility_for_gaming/#steam-gaming-mode-requirements","title":"Steam Gaming Mode Requirements","text":"

Note

These specific requirements only apply to Bazzite-Deck images which ships with all handheld Bazzite ISO downloads.

The Hardware for Linux website is a good indicator for how well OEM hardware is supported on the Linux desktop.

"},{"location":"Gaming/Hardware_compatibility_for_gaming/#compatible-handhelds","title":"Compatible Handhelds","text":"

The Handheld Wiki lists tested handhelds with proper support for the Steam Deck, ASUS ROG Ally, Lenovo Legion Go, and a handful of other handhelds.

"},{"location":"Gaming/Hardware_compatibility_for_gaming/#vulkan-compatible-gpu","title":"Vulkan Compatible GPU","text":"

Attention

Linux gaming is heavily dependent on having compatible hardware with Vulkan.

"},{"location":"Gaming/Hardware_compatibility_for_gaming/#viewing-your-gpus-vulkan-version","title":"Viewing Your GPU's Vulkan Version","text":"

If you're using a device with an older or weaker GPU that does not support Vulkan 1.3 or later, then you need to use older Proton and Wine builds like Proton/WINE 6 or earlier. Check which Vulkan version your GPU uses, enter this in the terminal:

vulkaninfo | grep 'Instance Version'\n

Try using Proton-Sarek if your have hardware that can utilize Vulkan 1.1, but not newer Vulkan versions. It can be installed using ProtonPlus.

"},{"location":"Gaming/Hardware_compatibility_for_gaming/#gpus-without-vulkan-support","title":"GPUs Without Vulkan Support","text":"

However if your GPU does not support Vulkan at all then you must use an older Proton version (Proton 3, 4, or 5) and use this launch option for most Steam games:

PROTON_USE_WINED3D=1 %command%\n

This will use the OpenGL translation as opposed to Vulkan.

"},{"location":"Gaming/Hardware_compatibility_for_gaming/#storage-filesystems","title":"Storage Filesystems","text":"

Note

Bazzite will automatically mount secondary drives that are formatted as Ext4 or BTRFS by default.

BTRFS is the default and recommended filesystem for Bazzite. Any secondary drives that you plan to play video games on should be backed up and reformatted to either Ext4 or BTRFS, however the drive will lose all of the data when performing this operation. You can use GNOME Disks to format the drives appropriately at your own risk.

"},{"location":"Gaming/Hardware_compatibility_for_gaming/#unsupported-filesystems-for-secondary-drives","title":"Unsupported Filesystems for Secondary Drives","text":"

Critical

NTFS and exFAT/FAT32 ARE NOT SUPPORTED. BOTH FILESYSTEMS CAN AND WILL LEAD TO DATA CORRUPTION UNDER LINUX. DO NOT USE THEM! winBTRFS UNDER WINDOWS STILL HAS BUGS AND IS ALSO NOT A SOLUTION.

THERE IS CURRENTLY NO RELIABLE CROSS-PLATFORM FILESYSTEM THAT CAN BE SHARED WITH WINDOWS AND LINUX.

Warning

You will lose all of your data reformatting secondary internal/external drives.

Info

To disable the NTFS nag, run ujust _disable-ntfs-service. ONLY DO THIS IF YOU KNOW WHAT YOU ARE DOING. THIS WILL NOT PREVENT DATA LOSS, ONLY DISABLE THE WARNING.

"},{"location":"Gaming/Hardware_compatibility_for_gaming/#ntfs","title":"NTFS","text":"

If you are coming from Windows and plan to game on a secondary drive with games already installed on it, then we regret to inform you that the NTFS filesystem is unsupported for PC gaming on Bazzite.

Playing games off of NTFS causes various issues, including but not limited to games not launching at all, and will eventually result in data corruption and permanent data loss!

"},{"location":"Gaming/Hardware_compatibility_for_gaming/#exfat-and-fat32","title":"exFAT and FAT32","text":"

FAT32 and exFAT are unsupported. Both filesystems do not support symbolic links which is required for Proton prefixes to work properly. However, there are scenarios where a microSD card is formatted to exFAT may work in some cases, but this method is unsupported as something the Bazzite maintainers do not plan to accommodate.

"},{"location":"Gaming/Hardware_compatibility_for_gaming/#sharing-games-with-a-windows-dual-boot","title":"Sharing Games with a Windows Dual-Boot","text":"

Install the unofficial WinBtrfs driver on your Windows installation at your own risk. Please make sure to read any documentation associated with this project before installing the driver on Windows.

"},{"location":"Gaming/Hardware_compatibility_for_gaming/#video-tutorial","title":"Video Tutorial","text":""},{"location":"Gaming/Managing_and_modding_games/","title":"Managing and Modding Games","text":""},{"location":"Gaming/Managing_and_modding_games/#compatibility-layers-managing-windows-games","title":"Compatibility Layers & Managing Windows Games","text":"

Windows games need to run through a compatibility layer (like Proton) on Bazzite. Install and update to the latest GE-Proton, Luxtorpeda, and other tools using ProtonPlus.

"},{"location":"Gaming/Managing_and_modding_games/#protontricks","title":"Protontricks","text":"

Some games require Protontricks (pre-installed) or Winetricks (for non-Steam games, included with Lutris) to function properly by installing Windows DLLs into the prefix.

"},{"location":"Gaming/Managing_and_modding_games/#hidden-files-in-file-manager","title":"Hidden Files in File Manager","text":"

Note

Winecfg contains the option to show hidden files for Windows programs that require the filepicker.

Desktop Linux contains hidden files and directories that may include important files related to gaming.

Show hidden files by clicking the hamburger menu (3 horizontal lines in the file manager) and selecting \"Show Hidden Files\" to see every directory and file that is hidden by default.

These directories and files all start with a . before it

"},{"location":"Gaming/Managing_and_modding_games/#what-is-a-proton-or-wine-prefix","title":"What is a Proton (or Wine) Prefix?","text":"

It's the glue that holds everything together when you run a game through Proton and also is responsible for containing any of the files the game would drop outside of the installation folder.

Important

This installation folder for Steam games is usually in: .../steamapps/common/<game>

Many PC games drop files in Windows folders like \"My Documents\" or \"AppData\" and both can be found in your prefix directory. This prefix directory may be useful for modding your games, backing up your saves, or configuration files.

For games on Steam, they are located in your ~/.steam/root/steamapps/compatdata/ folder, and then the AppID number of the game:

Non-Steam games can have the prefix folder anywhere you specify. By default Lutris uses ~/Games as the main folder.

"},{"location":"Gaming/Managing_and_modding_games/#broken-proton-prefix","title":"Broken Proton Prefix?","text":"

Warning

Deleting a Proton prefix can delete saves and configuration files!

Open the prefix directory for the game and delete the data inside of it. Be careful not to delete the root .../compatdata directory (or ~/Games, or the custom directory that you set, for non-Steam games) which would remove the prefix data for all of the games!

"},{"location":"Gaming/Managing_and_modding_games/#modding","title":"Modding","text":"

Steam Workshop is the most straightforward method to obtain mods, but is not supported for every title and requires you to own the game on Steam. Some mod managers have Linux ports like r2modman.

Adding and replacing game files is still viable in both the game directory and prefix, but there may be some extra steps involved. Some mods require a \"WINE DLL OVERRIDE\" environment variable in the Steam launch options. For non-Steam Games, use Lutris to open \"Wine Configuration\" and select the \"Libraries\" tab to add new overrides.

"},{"location":"Gaming/Managing_and_modding_games/#example-of-a-dll-override-launch-option","title":"Example of a DLL override launch option:","text":"
**DirectInput8 DLL Override**: \n`WINEDLLOVERRIDES=\"dinput8=n,b\" %command%`\n
"},{"location":"Gaming/gaming-intro/","title":"Introduction to Gaming on Bazzite","text":""},{"location":"Gaming/gaming-intro/#paradigm-shift","title":"Paradigm Shift","text":"

Linux gaming being a viable competitor to Windows is a relatively new paradigm. Most Windows exclusive games can run on Bazzite using modern hardware. There are still some rough edges, but gaming on Linux does offer advantages on the appropriate hardware such as better frame-times than on Windows.

"},{"location":"Gaming/gaming-intro/#steam-games","title":"Steam Games","text":"

Steam is the recommended way to play PC games on Bazzite as it ships with a compatibility layer known as Proton, which is a fork of WINE and other various projects merged into a convenient runner built into Steam for Linux, that is intended for gaming developed by Valve. Most singleplayer PC games should be able to run without any tweaking necessary, but there are cases where a game purchased and installed through Steam will not run out of the box. Some newer online multiplayer games require deeper access to your computer hardware and Windows drivers to run their anti-cheat software which may not run on Bazzite meaning these games will be unplayable unless Windows is running.

"},{"location":"Gaming/gaming-intro/#non-steam-games","title":"Non-Steam Games","text":"

Bazzite can also run games off of Steam using Lutris, which is a frontend for running video games and other software through Proton/WINE. Faugus Launcher is an alternative to Lutris available in the Bazaar app store which may be favorable due to a simpler design than Lutris. Heroic Games Launcher is recommended over Lutris for games that were purchased from Epic Games Launcher, GOG, and Amazon Games Launcher.

Games installed from the Microsoft Store do not run unless you use a Xbox Cloud Gaming client like Greenlight which requires a Game Pass Ultimate subscription for most games. Fortnite can also be played via this method without a Game Pass subscription. There are also select Game Pass titles available on Battle.net which can be ran using Lutris.

Console emulators can be installed from Bazaar or through projects like Retrodeck or Emudeck (Available in the Bazzite Portal application).

"},{"location":"Gaming/gaming-intro/#useful-external-resources","title":"Useful External Resources","text":""},{"location":"Gaming/launch-options-env-variables/","title":"Launch Options and Environment Variables","text":""},{"location":"Gaming/launch-options-env-variables/#preface","title":"Preface","text":"

Linux gaming is far more intuitive today than it was years ago. There are still advanced launch options and configurations that can be ran from Bazzite though. This guide will show off examples of advanced gaming tweaks that can be done on a Bazzite installation.

"},{"location":"Gaming/launch-options-env-variables/#configuration-templates-for-dxvk-mangohud-vkbasalt","title":"Configuration Templates for DXVK, MangoHud, & vkBasalt","text":"

Bazzite users can use templates for some of the pre-installed tools which can be accessed by right clicking anywhere in the file manager. There are also applications like Mango Juice that acts as a graphical method of configuring Mangohud.

"},{"location":"Gaming/launch-options-env-variables/#steam-launch-options-and-shortcuts","title":"Steam Launch Options and Shortcuts","text":"

Steam launch options allow you to pass environment variables, arguments, and commands to games when they start. Bazzite includes several shortcuts and UX improvements to make common launch options easier to use, especially on handheld devices.

"},{"location":"Gaming/launch-options-env-variables/#common-launch-option-patterns","title":"Common Launch Option Patterns","text":"

Most Steam launch options follow this pattern: ENVIRONMENT_VARIABLES command_or_script %command%

Examples:

PROTON_LOG=1 %command%                    # Enable Proton logging\nSteamDeck=0 %command%                     # Disable Steam Deck mode\nPROTON_ENABLE_NGX_UPDATER=1 %command%     # Enable DLSS updates\n

"},{"location":"Gaming/launch-options-env-variables/#bazzites-launch-option-shortcuts","title":"Bazzite's Launch Option Shortcuts","text":"

Bazzite includes several shortcuts to simplify common launch options:

"},{"location":"Gaming/launch-options-env-variables/#for-steam-deck-mode-control","title":"For Steam Deck Mode Control","text":""},{"location":"Gaming/launch-options-env-variables/#for-nvidia-users-dlss-swapper","title":"For NVIDIA Users (dlss-swapper)","text":""},{"location":"Gaming/launch-options-env-variables/#where-to-set-launch-options","title":"Where to Set Launch Options","text":"
  1. Right-click game in Steam library
  2. Select Properties
  3. In the General tab, find Launch Options field
  4. Enter your launch options
"},{"location":"Gaming/launch-options-env-variables/#frame-rate-limiting-issues-and-inconsistency","title":"Frame Rate Limiting Issues and Inconsistency","text":"

When using Gamescope, framerate limits can be applied in several ways. Unfortunately not all methods work for every enviroment, game, or hardware configuration.

Many inconsistencies can be observed, especially when applying framerate limits in desktop mode.

The tables below show the behavior of different framerate limiting methods.

"},{"location":"Gaming/launch-options-env-variables/#steam-game-mode-steam-gaming-mode-session","title":"Steam Game Mode (Steam Gaming Mode Session)","text":"Method Setup steps Requires V-Sync On In-Game? Change limit without restarting game? Latency Preferred Notes Gamescope FPS limiter Use Quick Access Menu > Performance > Framerate Limit No Yes Meh Preferred Automatically turns v-sync on at driver-level whenever the framerate cap is enabled. Additional latency will be introduced. MangoAPP (embedded) N/A - doesn't work at all. - - - \u2013 Frame limiter settings from mangoapp are ignored in game mode/deck mode. Use the slider or external mangohud instead. MangoHUD (external) Launch Options: MANGOHUD=1 %command% No Yes Meh \u2013 Set fps_limit=0,30,60,120... (0=no cap) in MangoHud.conf. May clash with MangoAPP. DXVK/VKD3D runtime frame limiter DXVK (D3D8/9/10/11): DXVK_FRAME_RATE={fps} %command%VKD3D-Proton (D3D12): VKD3D_FRAME_RATE={fps} %command% No No Best \u2013 Applies only to DXVK/VKD3D titles (no effect on native OpenGL or native Vulkan)."},{"location":"Gaming/launch-options-env-variables/#desktop-mode-gnome-kde-plasma-desktop-session","title":"Desktop Mode (GNOME / KDE Plasma Desktop Session)","text":"Method Setup steps Requires V-Sync On In-Game? Change limit without restarting game? Latency Preferred Notes Gamescope FPS limiter Launch Options: gamescope -r {fps} -- %command% / --framerate-limit {fps} Yes Yes Meh \u2013 Use gamescopectl debug_set_fps_limit {fps} to change the limiter value live without restarting. MangoAPP (embedded) Launch Options: gamescope --mangoapp -- %command% Yes Yes Meh \u2013 Caps are sometimes not effective. Set fps_limit=0,30,60,120... (0=no cap) in MangoHud.conf (or via MANGOHUD_CONFIG=...). Add show_fps_limit to preset to see in game. Change with ShiftL+F1. MangoHUD (external) Launch Options: MANGOHUD=1 gamescope -- %command% No Yes Meh Preferred Caps are almost always effective. Set fps_limit=0,30,60,120... (0=no cap) in MangoHud.conf (or via MANGOHUD_CONFIG=...). Add show_fps_limit to preset to see in game. Change with ShiftL+F1. DXVK/VKD3D runtime frame limiter DXVK (D3D8/9/10/11): DXVK_FRAME_RATE={fps} %command%VKD3D-Proton (D3D12): VKD3D_FRAME_RATE={fps} %command% No No Best \u2013 In-process/API-level caps; excellent timing, but you must restart to change.

If your framerate limiter isn't working, the following steps can often help:

  1. Disable adaptive sync/VRR or remove the --adaptive-sync flag from your gamescope args.
  2. Set vsync in-game to \"on\".
"},{"location":"Gaming/launch-options-env-variables/#advanced-launch-option-management-for-scopebuddy","title":"Advanced Launch Option Management for ScopeBuddy","text":"

For users who need more complex launch option management, consider the ScopeBuddy documentation for even more advanced Gamescope launch option management.

"},{"location":"General/","title":"General Guides","text":""},{"location":"General/Desktop_Environment_Tweaks/","title":"Desktop Environment Customization, Themes, and Tweaks","text":"

Warning

Install desktop customization software at your own risk!

"},{"location":"General/Desktop_Environment_Tweaks/#customizing-kde-plasma-with-themes","title":"Customizing KDE Plasma with Themes","text":"

KDE Plasma is the default Bazzite desktop environment and is highly customizable. One of the various customization that can be done is installing custom styles, cursors, and icons to your system with custom themes made by the community. Themes installed through the System Settings are installed into ~/.local/share/plasma; to uninstall them, you may need to manually delete the folders associated with the installed themes manually.

"},{"location":"General/Desktop_Environment_Tweaks/#manually-installing-themes","title":"Manually Installing Themes","text":"

Step-by-step instructions to install custom themes on KDE Plasma.

  1. Download the theme manually from the KDE Store.
  2. Extracting the contents to ~/.local/share/plasma/ (You may need to make this directory.)
  3. Open the system settings and select your theme, style, cursor etc. as it now should appear.
"},{"location":"General/Desktop_Environment_Tweaks/#theme-extraction-locations","title":"Theme Extraction Locations","text":"

The location where specific KDE Plasma components will be extracted on the desktop.

"},{"location":"General/Desktop_Environment_Tweaks/#global-themes","title":"Global Themes","text":"

Global themes are placed in ~/.local/share/plasma/look-and-feel/. (You may need to make this directory.)

"},{"location":"General/Desktop_Environment_Tweaks/#plasma-themes","title":"Plasma Themes","text":"

\"Plasma themes\" are placed in ~/.local/share/plasma/desktoptheme/. (You may need to make this directory.)

"},{"location":"General/Desktop_Environment_Tweaks/#plasma-window-decorations","title":"Plasma Window Decorations","text":"

\"Window decoration themes\" are placed in ~/.local/share/aurorae/themes/. (You may need to make this directory.)

"},{"location":"General/Desktop_Environment_Tweaks/#icon-cursor-themes","title":"Icon / Cursor Themes","text":"

\"Icon/Cursor themes\" are placed in ~/.local/share/icons. (You may need to make this directory.)

"},{"location":"General/Desktop_Environment_Tweaks/#sounds","title":"Sounds","text":"

System sounds can be replaced in ~/.local/share/sounds. (You may need to make this directory.)

"},{"location":"General/Desktop_Environment_Tweaks/#sddm-login-manager-themes","title":"SDDM (Login Manager) Themes","text":"

SDDM themes can be layered at your own risk if they are available as RPM packages using rpm-ostree.

"},{"location":"General/Desktop_Environment_Tweaks/#application-permissions-to-use-themes","title":"Application Permissions to Use Themes","text":"

Some Flatpaks need filesystem permissions for applications that have issues with cursor themes.

Example: (~/.local/share/icons/:ro in \"Filesystem\" in each problematic application or globally in Flatseal).

"},{"location":"General/Desktop_Environment_Tweaks/#customizing-other-desktops-and-sessions","title":"Customizing Other Desktops and Sessions","text":"

The default desktop environment for Bazzite is KDE Plasma which also happens to offer the most in-depth customization for a modern Linux desktop environment to date which is why this guide focuses heavily on Bazzite images that run KDE Plasma.

"},{"location":"General/Desktop_Environment_Tweaks/#manage-gnome-extensions-gnome-images","title":"Manage GNOME Extensions (-gnome Images)","text":"

The \"Extension Manager\" application allows for installing new extensions to GNOME and managing currently pre-installed extensions. Proceed with caution as extensions can make your system unstable and if your desktop crashes then GNOME will disable all of the extensions on the next boot.

"},{"location":"General/Desktop_Environment_Tweaks/#steam-gaming-mode-customization-deck-images","title":"Steam Gaming Mode Customization (-deck Images)","text":"

Warning

Decky Loader will sometimes have issues with new Steam and Gamescope updates, and may need to be uninstalled temporarily.

Install Decky Loader then install CSS Loader to customize how Steam Gaming Mode looks. Be aware that third-party plugins may cause issues. Read Bazzite's Steam Gaming Mode quirks documentation to resolve common issues if you run into them after using Decky Loader.

"},{"location":"General/Desktop_Environment_Tweaks/#desktop-environment-documentation","title":"Desktop Environment Documentation","text":""},{"location":"General/FAQ/","title":"Frequently Asked Questions (FAQ)","text":""},{"location":"General/FAQ/#who-is-bazzite-for","title":"Who is Bazzite for?","text":"

Bazzite is for those seeking an operating system that fits one of the following criteria:

"},{"location":"General/FAQ/#what-bazzite-image-do-i-use","title":"What Bazzite image do I use?","text":"

Bazzite's website offers a streamlined way of selecting the correct image which will be chosen based on hardware, desktop environment, and to include Steam Gaming Mode if the hardware supports it.

Bazzite offers multiple images, but most images will be following one of these three variants:

"},{"location":"General/FAQ/#1-desktop-edition","title":"1. Desktop Edition","text":"

(Variant 1)

Steam Gaming Mode is not on these specific images!

Intended specifically for desktops and laptops with a focus on gaming which is influenced by SteamOS's Desktop Mode and the maintenance-free nature of ChromeOS. A gaming-focused Fedora Atomic Desktop (Kinoite/Silverblue) operating system. Steam and other gaming utilities are part of the base operating system. System rollbacks available with a rock-solid stable Fedora Linux base. Most modern PC hardware should be compatible outside of specific drivers that do not work well on desktop Linux. Flathub is enabled out of the box, so all of the applications that you would find on SteamOS are available on Bazzite. System and application updates are automatically downloaded in the background and applied on a restart by default.

"},{"location":"General/FAQ/#2-bazzite-deck-edition","title":"2. Bazzite-Deck Edition","text":"

(Variant 2)

\"Steam Gaming Mode\" is pre-installed and its features fully functional for supported hardware. This version of Bazzite boots directly into the Steam Gaming Mode session and is intended for handhelds and couch-gaming scenarios. It also includes a Desktop Mode session. System and application updates are manually upgraded in Steam Gaming Mode and applied on a reboot.

"},{"location":"General/FAQ/#3-bazzite-dx-developer-experience-edition","title":"3. Bazzite-DX (Developer eXperience Edition)","text":"

(Variant 3)

A version of Bazzite that specifically caters to software development. It is not installed via an ISO; instead, you switch to it by rebasing from your current image to a Bazzite-DX image.

"},{"location":"General/FAQ/#bazzite-image-chart-example","title":"Bazzite Image Chart Example","text":"

Note

This does not include all of the Bazzite images.

Verify your Bazzite image by entering this command in the terminal:

rpm-ostree status\n

Important

Every Bazzite image should start with ostree-image-signed:docker://ghcr.io/ublue-os/.... The ... is a placeholder for the actual image name which can be referenced in the chart below.

Image Desktop Environment Steam Gaming Mode Hardware Edition bazzite KDE Plasma No AMD/Intel GPUs Desktop bazzite-nvidia KDE Plasma No Nvidia GPUs Desktop bazzite-nvidia-open KDE Plasma No Nvidia GPUs (Newer Nvidia GPUs) Desktop bazzite-gnome GNOME No AMD/Intel GPUs Desktop bazzite-gnome-nvidia GNOME No Nvidia GPUs Desktop bazzite-gnome-nvidia-open GNOME No Nvidia GPUs (Newer Nvidia GPUs) Desktop bazzite-deck KDE Plasma Yes AMD/Intel Arc GPUs Bazzite-Deck bazzite-deck-nvidia KDE Plasma Yes Nvidia GPUs (Newer Nvidia GPUs) Bazzite-Deck bazzite-deck-nvidia-gnome GNOME Yes Nvidia GPUs (Newer Nvidia GPUs) Bazzite-Deck bazzite-deck-gnome GNOME Yes AMD/Intel Arc GPUs Bazzite-Deck"},{"location":"General/FAQ/#steamos-is-based-on-arch-linux-so-why-use-fedora-atomic-desktop","title":"SteamOS is based on Arch Linux, so why use Fedora Atomic Desktop?","text":"

SteamOS receives package and driver updates less frequently despite the rolling release base. Bazzite will follow Fedora's update release cycle which means early access to new graphics card driver and kernel updates in comparison to SteamOS. Fedora Linux and Universal Blue currently supports a specific \"atomic\" implementation to maintain multiple images that can receive all of the same updates at once, which is unlike a derivative Linux distribution. The goal of Bazzite is to have an operating system ready to game after installing it.

"},{"location":"General/FAQ/#what-are-the-advantages-to-using-fedora-atomic-desktop-as-a-base","title":"What are the advantages to using Fedora Atomic Desktop as a base?","text":"

Since Bazzite is a custom Fedora Atomic Desktop image, it makes use of read-only root files for stability purposes, and is built as a bootable container image which has advantages such as:

Check out the Universal Blue homepage for more information on what this project is capable of.

"},{"location":"General/FAQ/#are-amd-and-intel-graphics-card-drivers-pre-installed","title":"Are AMD and Intel graphics card drivers pre-installed?","text":"

Yes and they are updated during a system upgrade when new drivers are available. It is not possible to manually update them separately as they are part of the image.

"},{"location":"General/FAQ/#are-nvidia-graphics-card-drivers-pre-installed","title":"Are Nvidia graphics card drivers pre-installed?","text":"

Yes, on the Nvidia images and they are updated during a system upgrade when new drivers are available. It is not possible to manually update them. - The legacy (-nvidia) image supports Pascal, Maxwell, and Volta architectures (GTX 900, GTX 1000, Nvidia Titan V, GTX 750 (TI) and GTX 745). - The modern (-nvidia-open) image supports every Nvidia card from the Turing architecture and newer (GTX 16 and all RTX cards).

"},{"location":"General/FAQ/#will-support-for-much-older-nvidia-graphics-cards-be-added","title":"Will support for much older Nvidia graphics cards be added?","text":"

There are currently no plans to support Kepler and older architectures (Most GTX 700 cards and older) since they are no longer supported by the upstream Nvidia drivers. - You can still install Bazzite, using the open-source nouveau driver. - However, the performance and stability of this driver lags behind the official Nvidia drivers. - It is not possible to manually install the proprietary Nvidia drivers for your older card in Bazzite. - You would need a different Linux distribution that allows for such, if you wish to use the proprietary Nvidia drivers for your GPU.

"},{"location":"General/FAQ/#what-if-i-change-hardware","title":"What if I change hardware?","text":"

Most hardware changes should not require any manual intervention outside of the expectations from that particular hardware which would be OS-agnostic. However, if you swap from or to a Nvidia GPU, then rebasing will be necessary as a manual intervention to get the appropriate graphics drivers.

"},{"location":"General/FAQ/#windows-games-claim-that-my-graphic-drivers-are-outdated-how-do-i-update-them","title":"Windows games claim that my graphic drivers are outdated, how do I update them?","text":"

Windows games cannot correctly detect Linux graphics drivers. - Because the version numbers are different between the Windows and Linux drivers, games will occasionally warn you about outdated drivers. - You can safely ignore any such warning. - Please see here for more details.

"},{"location":"General/FAQ/#does-bazzite-support-csmlegacy-boot","title":"Does Bazzite support CSM/Legacy Boot?","text":"

No. A notification with instructions on turning off CSM will occur when the installer detects Legacy BIOS boot:

"},{"location":"General/FAQ/#am-i-able-to-use-amd-fluid-motion-frames","title":"Am I able to use AMD Fluid Motion Frames?","text":"

Yes, but only if the game supports it. It's not available globally for every game like on Windows, but: * There may be individual game mods or Decky plugins that mimic similar functionality. * If you own Lossless Scaling on Steam, you can set up a LSFG Vulkan layer with the ujust get-lsfg terminal command.

"},{"location":"General/FAQ/#can-i-theme-my-grubbootloader","title":"Can I theme my GRUB/bootloader?","text":"

Theming the bootloader (GRUB) is unsupported by Bazzite and can cause critical issues such as your system not booting. Please remove any GRUB themes before reporting issues.

"},{"location":"General/FAQ/#can-i-change-the-hostname-of-my-device","title":"Can I change the hostname of my device?","text":"

Note

Hostnames must be under 20 characters due to a limitation with Distrobox containers.

Open the terminal and enter the following command

hostnamectl hostname <hostname>\n

Specify a hostname where <hostname> is.

"},{"location":"General/FAQ/#windows-bootloader-override","title":"I installed Windows but Bazzite won't boot","text":"

Flash the Bazzite Live ISO to a thumb drive, and run the Bazzite Bootloader Restoration Tool.

"},{"location":"General/FAQ/#can-i-switch-to-a-different-desktop-environment-on-my-current-installation","title":"Can I switch to a different desktop environment on my current installation?","text":"

(Example: Swapping from KDE Plasma to GNOME or vice-versa)

It is not recommended to switch between desktop environments due to configuration files having different standards which usually lead to broken installations after rebasing to a different Bazzite image with a different desktop environment installed.

"},{"location":"General/FAQ/#am-i-able-to-install-this-desktop-environment-or-that-window-manager","title":"Am I able to install this desktop environment or that window manager?","text":"

Make your own custom image based off Bazzite with the desktop environment or standalone window manager change that you want.

"},{"location":"General/FAQ/#what-is-the-0-and-1-in-the-grub-menu-at-boot","title":"What is the :0 and :1 in the GRUB menu at boot?","text":"

This allows users to rollback a bad system upgrade by selecting the previous deployment.

Deployments can also be pinned to rollback for future use, so :2, :3, etc. can also exist as long as you have the storage space for it.

"},{"location":"General/FAQ/#why-is-it-called-bazzite","title":"Why is it called Bazzite?","text":"

Fedora Linux's Atomic Desktops originally followed a naming scheme based on minerals. Bazzite is a mineral that is known for being strong, lightweight, and is blue.

"},{"location":"General/FAQ/#i-have-questions-or-concerns-that-cannot-be-answered-in-the-documentation","title":"I have questions or concerns that cannot be answered in the documentation","text":"

Note

Search for the appropriate keywords in Bazzite's documentation first before proceeding with the next steps.

We strongly urge you to report it to the issue tracker. Keep in mind that certain areas and topics are out of our control especially when it comes to Nvidia driver problems, game compatibility, or other problems that plague the modern day Linux desktop regardless if you're running Bazzite or another Linux operating system.

"},{"location":"General/Fedora_Atomic_Comparison/","title":"Comparison of Bazzite & Upstream Fedora Atomic Desktop","text":""},{"location":"General/Fedora_Atomic_Comparison/#what-is-bazzite","title":"What is Bazzite?","text":"

Bazzite is a custom image of Fedora Kinoite (KDE Plasma images) or Fedora Silverblue (GNOME images) which are part of the Fedora Atomic Desktop family with modifications made to try and provide a user friendly experience out of the box with a focus on PC gaming.

"},{"location":"General/Fedora_Atomic_Comparison/#key-differences","title":"Key Differences","text":"

The following is a list of features Bazzite ships with that differs from upstream Fedora Atomic Desktop operating systems:

"},{"location":"General/Fedora_Atomic_Comparison/#less-post-installation-setup","title":"Less Post-Installation Setup","text":""},{"location":"General/Fedora_Atomic_Comparison/#ease-of-use","title":"Ease of Use","text":""},{"location":"General/Fedora_Atomic_Comparison/#made-with-developers-in-mind","title":"Made with Developers in Mind","text":""},{"location":"General/Fedora_Atomic_Comparison/#extra-enhancements","title":"Extra Enhancements","text":""},{"location":"General/SteamOS_Comparison/","title":"Comparison of Bazzite and SteamOS","text":""},{"location":"General/SteamOS_Comparison/#what-is-steamos","title":"What is SteamOS?","text":"

SteamOS is an operating system originally designed for the Steam Deck. SteamOS is an OS for the Steam client and also features a basic desktop environment with KDE Plasma that allows users to e.g., install mods and emulators, but may be limited for desktop use.

"},{"location":"General/SteamOS_Comparison/#what-is-bazzite","title":"What is Bazzite?","text":"

Bazzite is a community-driven Linux gaming operating system, featuring the latest Linux drivers and a variety of flavors (Desktop (Bazzite), Handheld/HTPC (Bazzite-Deck), and Developer eXperience (Bazzite-DX)). It is based on Fedora Linux and features an atomic update system, ensuring the previous update is always available if something goes wrong.

It is also designed for daily driving, with a focus on gaming, multi-media, and development. In addition, since Bazzite ships the latest drivers, you can be sure that if your device can work on Linux, then it will work in Bazzite. Bazzite has support for AMD, recent Nvidia and Intel GPUs. Bazzite also works well for Lenovo, Asus, Ayn, GPD, and OneXPlayer handheld devices.

"},{"location":"General/SteamOS_Comparison/#extra-enhancements-on-bazzite-compared-to-steamos","title":"Extra Enhancements on Bazzite Compared to SteamOS","text":""},{"location":"General/SteamOS_Comparison/#daily-driving","title":"Daily Driving","text":""},{"location":"General/SteamOS_Comparison/#for-developers","title":"For Developers","text":""},{"location":"General/SteamOS_Comparison/#security-improvements","title":"Security Improvements","text":"

Bazzite supports LUKS Disk Encryption, Secure Boot, and TPM unlock of the encrypted disk. Bazzite also has SELinux (Security Enhanced Linux) enabled and pre-configured by default.

Secure Boot support is also useful for dual-booting with Windows, since it is required for certain anti-cheat software. Read more in the Secure Boot Guide.

"},{"location":"General/VPN/","title":"VPN Setup","text":""},{"location":"General/VPN/#using-functional-vpn-flatpaks","title":"Using functional VPN Flatpaks","text":"

VPN clients are usually not offered on the Bazaar app store as the Flatpak sandbox is too strict for most VPN clients to work as is which means they are not available in Bazaar to install. However examples of good VPN clients that are available in Bazaar:

"},{"location":"General/VPN/#tailscale","title":"Tailscale","text":"

Tailscale is included by default to provide VPN services for both desktop and development use cases. Read this Tailscale guide for common usage before proceeding.

"},{"location":"General/VPN/#import-vpn-configuration-files-through-desktop-environment","title":"Import VPN configuration files through Desktop Environment","text":"

This option may be good enough for you if you don't need special features provided by your VPN client, like kill-switches, split tunneling and other custom features not built-in to the VPN protocol. VPNs imported in this way can be toggled on and off at will.

KDE PlasmaGNOME

1. Open System Settings 2. Navigate to the Networking Section and go into the \"Wi-Fi & Internet\" settings 3. Click the \"+\" button at the bottom

4. Select your downloaded configuration file

1. Open Settings 2. Navigate to the Network section 3. Click the \"+\" button on the VPN section

4. Choose \"Import From file...\"

5. Select your downloaded configuration file.

"},{"location":"General/community-links/","title":"Community Resources","text":"

Note

There are links contained here that redirect to other sources that are not considered official documentation, but are considered good community-oriented resources, guides, and enhancements for Bazzite and the hardware that it is commonly installed on.

Warning

Some of these resources may be outdated, please follow them at your own risk.

"},{"location":"General/community-links/#hardware","title":"Hardware","text":""},{"location":"General/community-links/#software-gaming","title":"Software / Gaming","text":""},{"location":"General/community-links/#bootable-container-topics","title":"Bootable Container Topics","text":""},{"location":"General/community-links/#reference-documentation","title":"Reference Documentation","text":""},{"location":"General/community-links/#contribute","title":"Contribute","text":"

Edit this documentation to add other useful external resources!

"},{"location":"General/issues_and_resolutions/","title":"Common Issues & Resolution","text":""},{"location":"General/issues_and_resolutions/#steam-big-picture-mode-is-slow","title":"Steam Big Picture Mode is slow","text":"

Issue: When you select Steam Menu >> View >> Big Picture the user interface may run sluggish. However, the games that run through the interface are working smoothly.

Resolution: Close Steam completely and start Steam using the Steam Big Picture Mode menu shortcut. Also make sure that Steam Settings >> Interface >> Enable GPU accelerated rendering in web views (requires restart) is enabled in the Steam settings.

Note: This fix also fixes the performance issues in Steam Gamming Mode on Nvidia GPUs, however, this comes with a drawback that the Steam menu and side menu sometimes do not render properly.

"},{"location":"General/issues_and_resolutions/#audio-is-soft-on-asus-rog-ally-hardware","title":"Audio is soft on ASUS ROG Ally hardware","text":"

Issue: The sound is quiet even if at maximum volume.

Resolution: There are two audio devices that appear on the Rog Ally: - Family 17h/19h/1ah HD Audio Controller - ROG Ally

Both affect each other's audio volume so they must be at the same volume level.

"},{"location":"General/issues_and_resolutions/#gamepads-and-handheld-joysticks-dont-work-in-desktop-mode","title":"Gamepads and handheld joysticks don't work in Desktop Mode","text":"

Issue: Gamepads and handheld device joysticks don't work in desktop mode, so you have to use the touchscreen or connect an external mouse.

Open up Steam Settings >> Controller >> Non-Game Controller Layouts >> Desktop Layout. Click on Edit Then Enable Steam Input and configure how the controller needs to as a keyboard and mouse in Desktop Mode.

You'll often need to reduce the Right Joystick Sensitivity to somewhere between 50-80%. Otherwise, the mouse cursor will be too fast and will not be reliable.

"},{"location":"General/issues_and_resolutions/#setting-bazzites-desktop-editions-to-automatically-login","title":"Setting Bazzite's Desktop Editions to automatically login","text":"

Issue: How do you configure automatic login in Bazzite?

KDE Plasma Resolution

Open System Settings >> Colors and Themes >> Login Screen (SDDM) then on the right side of the screen there will be a button labelled Behaviour, click on it.

Now tick \"Automatically log in\", select your user and for the session, select \"Plasma (Wayland)\" and don't forget to to click on the \"Apply\" button.

GNOME Resolution

Open the Settings application >> Users. Click the Unlock button in the top right corner. Then switch on Automatic Login.

"},{"location":"General/issues_and_resolutions/#htpc-legacy-hardware-setup","title":"HTPC legacy hardware setup","text":"

Issue: How do you setup a similar version to Bazzite-Deck using GPU hardware that is considered \"legacy\" and unsupported for Steam Gaming Mode?

Resolution: Enable auto-login and set Steam to automatically launch in Steam's Big Picture Mode for a decent couch gaming experience if you have legacy hardware.

There is a video guide that you can follow for Bazzite's GNOME Desktop image using a Nvidia GPU (before Nvidia hardware could run Steam Gaming Mode, but same idea):

If you are using Bazzite's KDE Plasma image, then you can skip the \"Making Gnome look more familiar to Windows users\" section, and use the steps above to get auto login working in Bazzite KDE. Then finally set Steam Big Picture Mode to auto-start in Settings >> Autostart.

"},{"location":"General/issues_and_resolutions/#no-wi-fi-or-wired-connection-in-bazzite-when-dual-booting-with-windows","title":"No Wi-Fi or wired connection in Bazzite when dual-booting with Windows","text":"

Issue: You are dual-booting Windows with Bazzite and your Wi-Fi/wired connection works in Windows but fails in Bazzite sometimes.

Resolution: Fast Startup is a feature of Windows that puts your computer into a hybrid state between shutdown and hibernation to speed up the time it takes for Windows to start up. However, this setting can lock up hardware devices such as your Wi-Fi, ethernet and perhaps other hardware. One solution is to select the Restart option instead of the Shutdown option, which will perform a full power cycle. However, a better solution is to simply disable Fast Startup.

You can do this by:

Now if you now select the Shutdown option, Windows will shut down completely and not interfere with Bazzite.

"},{"location":"General/issues_and_resolutions/#wi-fi-is-slow-wi-fi-lag-spikes","title":"Wi-Fi is slow / Wi-Fi lag spikes","text":"

Issue: Your Wi-Fi performance is much slower than expected or has lag spikes, which interferes with voice chat and online games. The problem is not present in Windows.

Resolution: The Wi-Fi power saving feature in Linux seems to work poorly on some Wi-Fi devices under Linux. Open the terminal and run ip link show this will list all your network devices and the output should look something like this:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000\n    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00\n2: wlp6s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000\n    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff permaddr 00:00:00:00:00:00\n

The device that we are interested in is the Wi-Fi device. In this example (my ROG Ally), the Wi-Fi network is called wlp6s0. Another common name for the Wi-Fi network is wlan0.

Next run iw wlp6s0 get power_save (change wlp6s0 if your device name is different) to confirm if power saving is on:

Power save: on\n

There are different steps to resolve this depending on if you've disabled iwd. If you have updated or installed Bazzite after 1st Jan 2026, iwd will be set as the default WiFi backend.

For performance reasons, and to fix certain issues in relation to streaming, iwd replaced wpa_supplicant as the default WiFi backend for Bazzite since 2026. To switch back, run ujust toggle-iwd. Note that switching will remove all network configurations.

iwd (iwd is ON)wpa_supplicant (iwd is OFF)

We are going to configure iwd to not use the power save feature for all Wi-Fi devices. Open a terminal and run

printf \"[DriverQuirks]\\nPowerSaveDisable = *\" | sudo tee /etc/iwd/main.conf\nsystemctl restart iwd\n

Next, run iw wlp6s0 get power_save to confirm that power save is off:

Power save: off\n

Note that this fix may negatively affect the battery life of your laptop or handheld. If you do wish to reverse this change, just delete the config file:

sudo rm /etc/iwd/main.conf\nsystemctl restart iwd\n

We are going to configure NetworkManager to not use the power save feature for all Wi-Fi devices. Open a terminal and run

printf \"[connection]\\nwifi.powersave = 2\" | sudo tee /etc/NetworkManager/conf.d/wifi-powersave-off.conf\nsystemctl restart NetworkManager\n

Next, run iw wlp6s0 get power_save to confirm that power save is off:

Power save: off\n

Note that this fix may negatively affect the battery life of your laptop or handheld. If you do wish to reverse this change, just delete the config file:

sudo rm /etc/NetworkManager/conf.d/wifi-powersave-off.conf\nsystemctl restart NetworkManager\n

"},{"location":"General/issues_and_resolutions/#error-on-connecting-to-wi-fi-failed-to-add-new-connection-8021x-connections-must-have-iwd-provisioning-files","title":"Error on connecting to Wi-Fi: \"Failed to add new connection: 802.1x connections must have IWD provisioning files\"","text":"

For performance reasons, and to fix certain issues in relation to streaming, iwd replaced wpa_supplicant as the default WiFi backend for Bazzite since 2026. To switch back, run ujust toggle-iwd. Note that switching will remove all network configurations.

NetworkManager cannot automatically generate 802.1x connections when using the iwd backend.

If you prefer to keep using the iwd backend and just want to connect to eduroam, follow these steps:

sudo nano /var/lib/iwd/eduroam.8021x\n

Then add the following:

[Security]\nEAP-Method=PEAP\nEAP-Identity=anonymous@<university.domain>\nEAP-PEAP-Phase2-Method=MSCHAPV2\nEAP-PEAP-Phase2-Identity=<username@university.domain>\nEAP-PEAP-Phase2-Password=<password>\n\n[Settings]\nAutoConnect=true\n

Make sure to replace <university.domain>, <username@university.domain> and <password> with proper login information. Afterwards, press Ctrl+X and Y to Save & Exit.

Now try to connect again. If you still can't connect, execute:

nmcli connection modify eduroam 802-1x.phase1-auth-flags 32\n

And try to connect again.

If you still encounter Wi-Fi related issues, try reverting to the wpa_supplicant backend or reach out to support on https://discord.bazzite.gg.

"},{"location":"General/issues_and_resolutions/#error-on-connecting-to-wi-fi-ip-configuration-was-unavailable-when-connecting-to-8021x-wireless-networks","title":"Error on connecting to Wi-Fi: \"IP configuration was unavailable\" when connecting to 802.1x wireless networks","text":"

For performance reasons, and to fix certain issues in relation to streaming, iwd replaced wpa_supplicant as the default WiFi backend for Bazzite since 2026. To switch back, run ujust toggle-iwd. Note that switching will remove all network configurations.

Check the system logs with ujust logs-this-boot | grep NetworkManager, you should be able to see that

NetworkManager[1563]: <info>  [1770094603.8488] device (wlan0): state change: failed -> disconnected (reason 'none', managed-type: 'full')\nNetworkManager[1563]: <info>  [1770094603.8568] dhcp4 (wlan0): canceled DHCP transaction\nNetworkManager[1563]: <info>  [1770094603.8569] dhcp4 (wlan0): activation: beginning transaction (timeout in 45 seconds)\nNetworkManager[1563]: <info>  [1770094603.8569] dhcp4 (wlan0): state changed no lease\n

When using the iwd backend, NetworkManager may be unable to obtain a DHCP lease on an Enterprise network if you have connected to it previously on a different backend or a different OS.

If you prefer to keep using the iwd backend, follow these steps:

sudo mkdir -p /etc/iwd/\nsudo nano /etc/iwd/main.conf\n

Then add the following:

[General]\nAddressRandomization=network\n

Afterwards, press Ctrl+X and Y to Save & Exit, then reload iwd by running:

systemctl daemon-reload\nsystemctl restart iwd\n

You should be able to connect to the enterprise network. If you still encounter Wi-Fi related issues, try reverting to the wpa_supplicant backend or reach out to support on https://discord.bazzite.gg.

"},{"location":"General/issues_and_resolutions/#nvidia-optimus-gpu-not-detected-on-laptops","title":"Nvidia Optimus GPU not detected on laptops","text":"

Issue: If you are running Bazzite on a laptop with an Nvidia Optimus GPU, you might notice that games are running poorly and seem to be running on the integrated GPU.

Resolution: You need to enable supergfxctl which will automatically switch to the discrete Nvidia GPU when launching your games. Open a terminal and run:

ujust enable-supergfxctl\n
"},{"location":"General/issues_and_resolutions/#waking-from-sleep-doesnt-work-with-a-gigabyte-b550-motherboard","title":"Waking from sleep doesn't work with a Gigabyte b550 motherboard","text":"

Issue: Once a Gigabyte b550 motherboard suspends, it does not properly resume, and the display remains black until a reboot.

Resolution: This can be fixed by disabling GPP0 and GPP8 wakeup. A hidden ujust command is provided to toggle this fix:

ujust _toggle-gigabyte-wake-fix\n

"},{"location":"General/issues_and_resolutions/#xbox-controller-over-bluetooth-is-stuck-on-a-connecting-loop-and-the-xbox-button-keeps-flashing","title":"Xbox controller over Bluetooth is stuck on a connecting loop and the Xbox button keeps flashing","text":"

Issue: Your controller is not on the latest firmware.

Resolution: Easiest solution here is to connect the controller to a Windows machine. Download the Xbox Accessories app and update the controller to the latest firmware. After that, the controller should connect seamlessly. A more advanced user could spin a Windows VM and pass through the controller to do the firmware update there.

"},{"location":"General/reporting_bugs/","title":"Reporting Bugs","text":""},{"location":"General/reporting_bugs/#submit-bug-reports-in-the-appropriate-place","title":"Submit bug reports in the appropriate place","text":"

Report bugs experienced with Bazzite in our issue tracker! We discourage reporting bugs in the Discourse forums since reports can get lost or may not be viewed by Bazzite contributors as often as the issue tracker.

"},{"location":"General/reporting_bugs/#bazzite-issue-template-walkthrough","title":"Bazzite Issue Template Walkthrough","text":""},{"location":"General/reporting_bugs/#update-bazzite-before-reporting","title":"Update Bazzite before reporting","text":"

Sometimes bugs are fixed during upgrades, so try updating and rebooting your device before submitting a report to see if the issue still persists between updates.

Read how to update Bazzite for your device: Updating guide

"},{"location":"General/reporting_bugs/#make-sure-to-attach-system-logs","title":"Make sure to attach system logs","text":"

Open a host terminal and enter:

ujust device-info\n

Attach the link that it outputs for system logs.

"},{"location":"General/reporting_bugs/#experience-system-crashes","title":"Experience system crashes?","text":"

ujust logs-last-boot\n
Copy the output inside of the bug report.

"},{"location":"General/terms/","title":"Dictonary & Terminology","text":""},{"location":"General/terms/#general","title":"General","text":""},{"location":"General/terms/#bazzite-deck-images","title":"Bazzite-Deck Images","text":""},{"location":"General/terms/#software","title":"Software","text":""},{"location":"General/terms/#underlying-technology","title":"Underlying Technology","text":""},{"location":"General/uninstalling-bazzite/","title":"Uninstalling Bazzite and Returning to Windows","text":""},{"location":"General/uninstalling-bazzite/#removing-bazzite-in-a-windows-dual-boot-scenario","title":"Removing Bazzite in a Windows Dual-Boot Scenario","text":"

Watch the video guide below:

"},{"location":"General/Installation_Guide/","title":"Installing Bazzite","text":""},{"location":"General/Installation_Guide/Installing_Bazzite_Framework_Laptop_13/","title":"Installing Bazzite Framework Laptop 13","text":""},{"location":"General/Installation_Guide/Installing_Bazzite_for_Framework_Laptop_16/","title":"Installing Bazzite for Framework Laptop 16","text":""},{"location":"General/Installation_Guide/alternate-install-guide/","title":"Alternative Installation Guide","text":"

Warning

This method may have scaling issues with the installer depending on the hardware especially if it is handheld PC hardware.

"},{"location":"General/Installation_Guide/alternate-install-guide/#rebasing-from-a-fedora-atomic-desktop-image","title":"Rebasing from a Fedora Atomic Desktop Image","text":"

If you experience issues with installing our ISO or the bootable drive you have is too small for Bazzite, then download the Fedora Kinoite (KDE Plasma) or Fedora Silverblue (GNOME) depending on which desktop environment you prefer.

  1. The installation setup is similar to Bazzite and includes the same installer with the same instructions, but do not set a root account if its an option in the installer.

  2. Once installed, you will not be on Bazzite until you enter the command found on our website that appears under \"Existing Fedora Atomic Desktop Users\" section when the download is ready or by referencing the full image list in the FAQ.

  3. Open the terminal and enter this command, and keep in mind this process has no progress indicator and will take a long time.

  4. Reboot when the rebase has finished, and Bazzite should be installed after rebooting and your username as well as the user password will carry over from the upstream Fedora Atomic Desktop to Bazzite.

  5. You will also be missing the default Flatpak applications unless you install them with the ujust command below.

"},{"location":"General/Installation_Guide/alternate-install-guide/#secure-boot-instructions-when-rebasing-from-upstream-fedora-atomic-desktop-images","title":"Secure Boot Instructions When Rebasing From Upstream Fedora Atomic Desktop images","text":"

Rebasing from Fedora Silverblue, Fedora Kinoite, etc. to Bazzite.

If you're rebasing from a Fedora Atomic Desktop image and use Secure Boot, then follow the instructions found in Bazzite's README.

"},{"location":"General/Installation_Guide/alternate-install-guide/#install-pre-installed-flatpak-applications","title":"Install Pre-Installed Flatpak Applications","text":"

Open the terminal and enter this command:

ujust _install-system-flatpaks\n

Choose the \"Flathub\" remote. If it asks for \"System\" or \"User\" then choose \"System\" since that is the default remote for Bazzite.

This command installs:

"},{"location":"General/Installation_Guide/alternate-install-guide/#remove-fedora-flatpak-remote","title":"Remove Fedora Flatpak Remote","text":"

Please remove the Fedora Flatpak remote using the Warehouse application. This will not remove userdata.

"},{"location":"General/Installation_Guide/alternate-install-guide/#rebasing-to-a-signed-image","title":"Rebasing to a signed image","text":"

Once everything is setup properly, then you should rebase from the unsigned image to the signed image for security reasons, so enter this command in the host terminal:

ujust verify-image\n
After the command is completed, reboot your device.

"},{"location":"General/Installation_Guide/alternate-install-guide/#video-tutorial","title":"Video Tutorial","text":""},{"location":"General/Installation_Guide/install-guide/","title":"Bazzite Installation Guide","text":""},{"location":"General/Installation_Guide/install-guide/#video-walkthrough","title":"Video Walkthrough","text":""},{"location":"General/Installation_Guide/install-guide/#system-requirements","title":"System Requirements","text":""},{"location":"General/Installation_Guide/install-guide/#installer-requirements","title":"Installer Requirements","text":""},{"location":"General/Installation_Guide/install-guide/#desktop-environments","title":"Desktop Environments","text":"

All of the images come with the choice of KDE Plasma or GNOME for their desktop environment.

Steam Gaming Mode is an option as an additional session to run in addition to KDE Plasma or GNOME.

More information can be found on Bazzite's FAQ about the differences between the image variants.

KDE PlasmaGNOMESteam Gaming Mode"},{"location":"General/Installation_Guide/install-guide/#kde-plasma-default","title":"KDE Plasma (Default)","text":""},{"location":"General/Installation_Guide/install-guide/#gnome-gnome-images","title":"GNOME (-gnome images)","text":""},{"location":"General/Installation_Guide/install-guide/#steam-gaming-mode-deck-images","title":"Steam Gaming Mode (-deck images)","text":"

Note

Your device will automatically boot into the Steam Gaming Mode session at startup, and Desktop Mode can be accessed from the \"power menu\" in Steam Gaming Mode.

"},{"location":"General/Installation_Guide/install-guide/#backup-device","title":"Backup Device","text":"

Make sure to backup your personal data from the drive you plan to install Bazzite on to a safe place before proceeding with the installation.

"},{"location":"General/Installation_Guide/install-guide/#download-bazzite","title":"Download Bazzite","text":"

Download the Bazzite ISO of your choice. Choose the hardware you plan to install Bazzite on, the vendor of your primary GPU, the desktop environment of your choice, and if you want Steam Gaming Mode which is the Bazzite-Deck variant intended for HTPC setups and handheld hardware.

"},{"location":"General/Installation_Guide/install-guide/#calculating-iso-sha256-checksum-hash","title":"Calculating ISO SHA256 Checksum Hash","text":"

Video Tutorial:

"},{"location":"General/Installation_Guide/install-guide/#flash-iso","title":"Flash ISO","text":"

Flash Bazzite to your bootable device using Fedora Media Writer and eject the ISO afterwards.

"},{"location":"General/Installation_Guide/install-guide/#booting-the-installer","title":"Booting The Installer","text":""},{"location":"General/Installation_Guide/install-guide/#handheld-devices","title":"Handheld Devices","text":"

Hold the 'Volume Down' (-) button and click the Power Button, and when you hear the chime, let go of both buttons, and you'll be booted into the Boot Manager. When you get to the boot menu, select your bootable device to boot into the Bazzite installer.

"},{"location":"General/Installation_Guide/install-guide/#live-environment","title":"Live Environment","text":"

Bazzite's live installer session lets you view the desktop applications pre-installed and get familiar with the UI/UX of it.

Please do not attempt to game on the live session since performance will not be accurate to when it is properly installed onto your drive. Additionally, it is worth noting that the install environment does not include all of Bazzite's hardware support, (for example for the Steam Deck Audio), as it is running a different kernel than regular Bazzite.

"},{"location":"General/Installation_Guide/install-guide/#network-setup-in-live-environment","title":"Network Setup in Live Environment","text":"

Please note that an internet connection is not required to install Bazzite, but is useful if you're testing Bazzite before testing in the live environment. Open the Bazzite installer when ready to proceed with installation.

"},{"location":"General/Installation_Guide/install-guide/#select-your-language-region-and-keyboard-layout","title":"Select Your Language, Region, and Keyboard Layout","text":"

The first steps to installing Bazzite include selecting the system language, region for your time zone, and the layout of your keyboard for the correct input mapping.

"},{"location":"General/Installation_Guide/install-guide/#partitioning-setup","title":"Partitioning Setup","text":"

Warning

Make sure to only select the appropriate drives to avoid losing data on others, and it is best practice to safely remove any external drives before proceeding.

Select the drive that you plan to install Bazzite on. Please note that this will wipe all of the data on the drive selected.

"},{"location":"General/Installation_Guide/install-guide/#dual-booting-windows","title":"Dual Booting Windows","text":"

Note

Skip this section if you plan to install Bazzite without dual-booting Windows.

Warning

The \"format as efi\" button when dual-booting says it will format the Windows EFI, but what it actually does is add itself to the EFI. This is an upstream bug with the installer.

If you are dual-booting with Windows then use automatic partitioning as it is the only option available in the live ISO, but it should work for most people's dual-booting usecases. If you require manual partitioning, then download the legacy ISO and follow the legacy ISO installation guide. For dual booting Windows on separate drives, use your motherboard's UEFI boot menu as the GRUB bootloader may not recognize each boot entry correctly.

"},{"location":"General/Installation_Guide/install-guide/#video-walkthrough_1","title":"Video Walkthrough","text":""},{"location":"General/Installation_Guide/install-guide/#written-walkthrough","title":"Written Walkthrough","text":"
  1. Installing Bazzite with a shared drive.
  2. Installing Bazzite on a separate drive.
Shared Drive (Automatic Partitioning)Separate Drive
  1. (In Windows) Disable Bitlocker encryption and fastboot, and reboot.
  2. (In Windows) Resize the Windows partition with the Disk Management app to have enough space for Bazzite. Usually should look something like this: Source: diskpart.com
  3. Run the Bazzite installer with the automatic partitioning option.
  4. Reboot into Bazzite and run ujust regenerate-grub in the terminal to add Windows to the GRUB.

When a dedicated drive is feasible, this method is recommended.

Install Bazzite on a separate internal or external drive.

  1. Install the other operating system on a drive (like Windows).
  2. Install Bazzite on a second drive.
  3. Set Bazzite as the default in your boot order (optional).

If you install Windows second, you should disconnect the Bazzite drive to prevent using the Windows installer of using its EFI partition.

You can also install Windows to an external drive with Windows-to-Go using Rufus to dual boot if you do not have an internal drive available.

"},{"location":"General/Installation_Guide/install-guide/#dual-booting-other-linux-operating-systems","title":"Dual-booting other Linux operating systems","text":"

Note

Dual booting with other Linux distributions, especially non-atomic Fedora, is not officially supported. It is recommended to use your motherboard's UEFI boot menu or to forgo dual booting entirely to avoid unexpected issues. If something does go wrong, restore Bazzite's bootloader using the Bootloader Restoring Tool in the Live ISO.

For Fedora Atomic Desktop images on the same drive: to dual boot another Fedora Atomic Desktop image (like Bluefin) installed alongside Bazzite, you must make an additional EFI partition and switch between them through your motherboard's UEFI boot menu.

"},{"location":"General/Installation_Guide/install-guide/#disk-encryption","title":"Disk Encryption","text":"

Warning

It will not be possible to decrypt your drive and the data will be lost if you forget your encryption password!

Disk encryption is optional but is available via LUKS. You will need a physical USB keyboard to decrypt the drive! Skip this step if you do not require disk encryption on this device. This isn't a necessary step for the most common scenarios unless you fear a bad actor will have access to your physical drive that Bazzite is installed on.

"},{"location":"General/Installation_Guide/install-guide/#user-account-setup","title":"User Account Setup","text":"

Warning

It is not recommended to enable a root account.

Create a username and a password to login to your Bazzite account. This password will also be used for any administrative privileges. Make sure it is a password that you can remember.

"},{"location":"General/Installation_Guide/install-guide/#installing-bazzite","title":"Installing Bazzite","text":"

Review the changes that you are about to make in the installer. Please read carefully before proceeding with the installation. Please wait for Bazzite to install. This may take a while.

"},{"location":"General/Installation_Guide/install-guide/#reboot","title":"Reboot","text":"

Reboot your device. You can now eject the flashable medium you used to install Bazzite out of your device once your device begins to boot up again.

"},{"location":"General/Installation_Guide/install-guide/#secure-boot","title":"Secure Boot","text":"

Note

Skip this section if Secure Boot is not enabled or unsupported with your hardware.

Important

The enrollment prompt uses an English QWERTY keyboard layout, indiscriminately of your actual hardware keyboard. Other layouts can therefore interfere with the characters of the password (i.e. A and Q are swapped on AZERTY layouts).

Bazzite supports Secure Boot however Universal Blue's key must be enrolled to use it otherwise keeping Secure Boot on in your BIOS will result in Bazzite not booting.

"},{"location":"General/Installation_Guide/install-guide/#important-secure-boot-notes","title":"Important Secure Boot Notes:","text":""},{"location":"General/Installation_Guide/install-guide/#error-message-if-key-is-not-enrolled-properly","title":"Error Message (if key is not enrolled properly):","text":"
error: ../../grub-core/kern/efi/sb.c:182:bad shim signature.\nerror: ../../grub-core/loader/1389/efi/linux.c:256:you need to load the kernel first.\n\nPress any key to continue...\n

Follow Method B below to resolve this and move past the error message if you encounter it.

"},{"location":"General/Installation_Guide/install-guide/#method-a-during-installation-method","title":"Method A - During Installation Method","text":"

Note

This screen will also appear on the next boot if you enable Secure Boot if it was disabled during installation.

A blue screen will appear giving the option to enroll the signed keys after leaving the Bazzite installer.

Enroll MOK if you have secure boot enabled. If prompted to enter a password, then enter:

universalblue\n

Otherwise Continue boot if you have Secure Boot disabled or if it is not supported with your hardware.

"},{"location":"General/Installation_Guide/install-guide/#method-b-after-installation-method","title":"Method B - After Installation Method","text":"

Disable Secure Boot in the BIOS before proceeding, and then re-enable it after enrolling the key.

If you have already installed Bazzite then enter this command in a host terminal:

ujust enroll-secure-boot-key\n

If prompted to enroll the required key, then enter the password in the host terminal:

universalblue\n

You can now turn Secure Boot back on in the BIOS. Use the following command to boot straight into your system's BIOS (if supported):

ujust bios\n
"},{"location":"General/Installation_Guide/install-guide/#complete-mok-enrollment-at-boot","title":"Complete MOK enrollment at boot","text":"

On the next boot, you will see the blue MokManager screen:

  1. Choose Enroll MOK.
  2. When prompted for a password, enter:
    universalblue\n

After the reboot, the key is enrolled and Secure Boot can remain enabled. Your system should now boot normally under Secure Boot.

"},{"location":"General/Installation_Guide/install-guide/#troubleshooting-installation","title":"Troubleshooting Installation:","text":"

Read the Troubleshooting Guide or the Alternative Installation Guide for installation workarounds.

"},{"location":"General/Installation_Guide/install-guide/#post-installation","title":"Post-Installation","text":"

Bazzite is now installed. Read the Post-Installation Guide for recommended next steps!

"},{"location":"General/Installation_Guide/legacy-install/","title":"Legacy ISO Installation Guide","text":""},{"location":"General/Installation_Guide/legacy-install/#legacy-isos-only","title":"Legacy ISOs Only","text":"

This guide is only for the legacy ISOs which are still supported at this time due to the new installer not supporting manual partitioning and some small bugs that are still present in the new installer.

"},{"location":"General/Installation_Guide/legacy-install/#system-requirements","title":"System Requirements","text":""},{"location":"General/Installation_Guide/legacy-install/#installer-requirements","title":"Installer Requirements","text":""},{"location":"General/Installation_Guide/legacy-install/#desktop-environments","title":"Desktop Environments","text":"

All of the images come with the choice of KDE Plasma or GNOME for their desktop environment.

Steam Gaming Mode is an option as an additional session in addition to KDE Plasma or GNOME and is recommended for Home Theatre PC (HTPC) and handheld setups.

More information can be found on the Bazzite FAQ about the differences between the image variants.

KDE PlasmaGNOMESteam Gaming Mode"},{"location":"General/Installation_Guide/legacy-install/#kde-plasma-default","title":"KDE Plasma (Default)","text":""},{"location":"General/Installation_Guide/legacy-install/#gnome-gnome-images","title":"GNOME (-gnome images)","text":""},{"location":"General/Installation_Guide/legacy-install/#steam-gaming-mode-deck-images","title":"Steam Gaming Mode (-deck images)","text":"

Note

Your device will automatically boot into the Steam Gaming Mode session at startup, and Desktop Mode can be accessed from the \"power menu\" in Steam Gaming Mode.

"},{"location":"General/Installation_Guide/legacy-install/#0-backup-data","title":"0. Backup Data","text":"

Make sure to backup your personal data from the drive you plan to install Bazzite on to a safe place before proceeding with the installation.

"},{"location":"General/Installation_Guide/legacy-install/#1-download-and-flash-legacy-iso","title":"1. Download and Flash Legacy ISO","text":""},{"location":"General/Installation_Guide/legacy-install/#calculating-iso-sha256-checksum-hash","title":"Calculating ISO SHA256 Checksum Hash","text":"

Video Tutorial:

"},{"location":"General/Installation_Guide/legacy-install/#2-boot-bazzite","title":"2. Boot Bazzite","text":""},{"location":"General/Installation_Guide/legacy-install/#handheld-devices","title":"Handheld Devices","text":"

Hold the 'Volume Down' (-) button and click the Power Button, and when you hear the chime, let go of both buttons, and you'll be booted into the Boot Manager. When you get to the boot menu, select your bootable device to boot into the Bazzite installer.

"},{"location":"General/Installation_Guide/legacy-install/#3-inside-the-installation-medium","title":"3. Inside the Installation Medium","text":"

Installing Bazzite without a physical keyboard connected to your device:

If you do not have a USB physical keyboard connected, do NOT press \"User Creation\", since it will remove the default username and password, and you will be unable to type a username or password without a physical keyboard.

default user: bazzite default password: bazzite

"},{"location":"General/Installation_Guide/legacy-install/#dual-booting","title":"Dual Booting","text":"

Note

Skip this section if you plan to install Bazzite without dual-booting Windows.

"},{"location":"General/Installation_Guide/legacy-install/#dual-booting-windows","title":"Dual-Booting Windows","text":"

For dual booting Windows on separate drives, use your motherboard's UEFI boot menu as the GRUB bootloader may not recognize each boot entry correctly.

"},{"location":"General/Installation_Guide/legacy-install/#video-walkthrough","title":"Video Walkthrough","text":""},{"location":"General/Installation_Guide/legacy-install/#written-walkthrough","title":"Written Walkthrough","text":"
  1. Installing Bazzite with a shared drive.
  2. Installing Bazzite on a separate drive.
Shared Drive (Automatic Partitioning)Shared Drive (Manual Partitioning) [Only Available on Legacy ISO]Separate Drive
  1. (In Windows) Disable Bitlocker encryption and fastboot, and reboot.
  2. (In Windows) Resize the Windows partition with the Disk Management app to have enough space for Bazzite. Usually should look something like this: Source: diskpart.com
  3. Run the Bazzite installer with the automatic partitioning option.
  4. Reboot into Bazzite and run ujust regenerate-grub in the terminal to add Windows to the GRUB.
  1. (In Windows) Resize the Windows partition with the Disk Management app to have enough space for Bazzite. Usually should look something like this: Source: diskpart.com
  2. Run the Bazzite installer with manual partitioning
  3. Reboot into Bazzite and run ujust regenerate-grub in the terminal to add Windows to the GRUB.

When a dedicated drive is feasible, this method is recommended.

Install Bazzite on a separate internal or external drive.

  1. Install the other operating system on a drive (like Windows).
  2. Install Bazzite on a second drive.
  3. Set Bazzite as the default in your boot order (optional).

If you install Windows second, you should disconnect the Bazzite drive to prevent using the Windows installer of using its EFI partition.

You can also install Windows to an external drive with Windows-to-Go using Rufus to dual boot if you do not have an internal drive available.

If you install Windows after Bazzite, you can restore Bazzite's bootloader with the Bootloader Restoring Tool in the Live ISO.

"},{"location":"General/Installation_Guide/legacy-install/#manual-partitioning-instructions","title":"Manual Partitioning Instructions","text":"

Only users who are dual booting on the same drive should use these instructions. Automatic partitioning is preferred in other cases.

Bazzite only supports the BTRFS filesystem for /.

If you need a tutorial video for manual partitioning, watch this tutorial at timestamp 9:10.

  1. Select Installation Destination
  2. Select Advanced Custom(Blivet-GUI) under Storage Configuration.
  3. Create the following partitions and devices:
  4. Select Done
  5. Select Accept Changes
  6. Continue with the installation.
"},{"location":"General/Installation_Guide/legacy-install/#dual-booting-other-linux-operating-systems","title":"Dual booting other Linux operating systems","text":"

Note

Dual booting with other Linux distributions, especially non-atomic Fedora, is not officially supported. It is recommended to use your motherboard's UEFI boot menu or to forgo dual booting entirely to avoid unexpected issues. If something does go wrong, restore Bazzite's bootloader using the Bootloader Restoring Tool in the Live ISO.

For Fedora Atomic Desktop images on the same drive: to dual boot another Fedora Atomic Desktop image (like Bluefin) installed alongside Bazzite, you must make an additional EFI partition and switch between them through your motherboard's UEFI boot menu.

For dual booting on separate drives:

Use your motherboard's UEFI boot menu as the GRUB bootloader may not recognize each boot entry correctly.

"},{"location":"General/Installation_Guide/legacy-install/#secure-boot","title":"Secure Boot","text":"

Note

Skip this section if Secure Boot is not enabled or unsupported with your hardware.

Important

The enrollment prompt uses an English QWERTY keyboard layout, indiscriminately of your actual hardware keyboard. Other layouts can therefore interfere with the characters of the password (i.e. A and Q are swapped on AZERTY layouts).

Bazzite supports Secure Boot however Universal Blue's key must be enrolled to use it otherwise keeping Secure Boot on in your BIOS will result in Bazzite not booting.

"},{"location":"General/Installation_Guide/legacy-install/#important-secure-boot-notes","title":"Important Secure Boot Notes:","text":""},{"location":"General/Installation_Guide/legacy-install/#error-message-if-key-is-not-enrolled-properly","title":"Error Message (if key is not enrolled properly):","text":"
error: ../../grub-core/kern/efi/sb.c:182:bad shim signature.\nerror: ../../grub-core/loader/1389/efi/linux.c:256:you need to load the kernel first.\n\nPress any key to continue...\n

Follow Method B below to resolve this and move past the error message if you encounter it.

"},{"location":"General/Installation_Guide/legacy-install/#method-a-during-installation-method","title":"Method A - During Installation Method","text":"

Note

This screen will also appear on the next boot if you enable Secure Boot if it was disabled during installation.

A blue screen will appear giving the option to enroll the signed keys after leaving the Bazzite installer.

Enroll MOK if you have secure boot enabled. If prompted to enter a password, then enter:

universalblue\n

Otherwise Continue boot if you have Secure Boot disabled or if it is not supported with your hardware.

"},{"location":"General/Installation_Guide/legacy-install/#method-b-after-installation-method","title":"Method B - After Installation Method","text":"

Disable Secure Boot in the BIOS before proceeding, and then re-enable it after enrolling the key.

If you have already installed Bazzite then enter this command in a host terminal:

ujust enroll-secure-boot-key\n

If prompted to enroll the required key, then enter the password in the host terminal:

universalblue\n

You can now turn Secure Boot back on in the BIOS. Use the following command to boot straight into your system's BIOS (if supported):

ujust bios\n
"},{"location":"General/Installation_Guide/legacy-install/#complete-mok-enrollment-at-boot","title":"Complete MOK enrollment at boot","text":"

On the next boot, you will see the blue MokManager screen:

  1. Choose Enroll MOK.
  2. When prompted for a password, enter:
    universalblue\n

After the reboot, the key is enrolled and Secure Boot can remain enabled. Your system should now boot normally under Secure Boot.

"},{"location":"General/Installation_Guide/legacy-install/#troubleshooting-installation","title":"Troubleshooting Installation:","text":"

Read the Troubleshooting Guide or the Alternative Installation Guide for installation workarounds.

"},{"location":"General/Installation_Guide/legacy-install/#post-installation","title":"Post-Installation","text":"

Bazzite is now installed. Read the Post-Installation Guide for recommended next steps or start gaming!

"},{"location":"General/Installation_Guide/post-installation/","title":"Post-Installation Setup","text":""},{"location":"General/Installation_Guide/post-installation/#first-boot-setup","title":"First Boot Setup","text":"

The first boot will show a screen showing your current and last deployment. It is important to note that the GRUB menu can be used to rollback Bazzite deployments if you encounter issues.

Read more about this in the Updates, Rollback, and Rebasing documentation.

"},{"location":"General/Installation_Guide/post-installation/#setting-up-steam-gaming-mode-bazzite-deck-images-only","title":"Setting Up Steam Gaming Mode (Bazzite-Deck Images Only)","text":"

If you selected to use Steam Gaming Mode before downloading the ISO, then you will be on the Bazzite-Deck version. After completing all of the above, then your next boot will be in Steam Gaming Mode which requires additional setup for Steam.

Read the Bazzite-Deck documentation for more information on the HTPC/Handheld images.

"},{"location":"General/Installation_Guide/post-installation/#configure-system-settings","title":"Configure System Settings","text":"

It is important to configure the system settings on a first boot to personalize your desktop especially if you notice the scaling is incorrect on first-boot. Open the system settings application in the desktop session to start configuring settings.

"},{"location":"General/Installation_Guide/post-installation/#scaling-settings","title":"Scaling Settings","text":"

KDE Plasma's System Settings application

GNOME's Settings application

Adjust the system settings to your preference.

"},{"location":"General/Installation_Guide/post-installation/#changing-default-password","title":"Changing Default Password","text":"

(If it wasn't changed in the legacy ISO installer)

Change it in the settings of Desktop Mode under the \"User\" category.

"},{"location":"General/Installation_Guide/post-installation/#dual-boot-post-configuration-setup","title":"Dual-Boot Post-Configuration Setup","text":"

Note

This only applies to Bazzite users who are dual-booting with Windows.

Show both your Windows and Bazzite installations in the GRUB menu to select from at boot by entering this command into the terminal:

ujust regenerate-grub\n
"},{"location":"General/Installation_Guide/post-installation/#bazzite-as-primary-boot","title":"Bazzite as Primary Boot","text":"

If the OS Boot Manager has set Windows Boot Manager to be the first boot priority, then this may result in booting directly into Windows after the install instead of Bazzite. You may have to fix this in your BIOS settings.

Take note that the GRUB menu might not show up. In such case, spam the \u2193 key when booting up.

"},{"location":"General/Installation_Guide/post-installation/#boot-into-windows-from-steam","title":"Boot into Windows from Steam","text":"

Adds a script in Steam to boot into Windows.

ujust setup-boot-windows-steam\n
"},{"location":"General/Installation_Guide/post-installation/#expanding-storage-size-in-a-windows-dual-boot-scenario","title":"Expanding storage size in a Windows dual-boot scenario","text":"

Note

This is for future reference after dual-booting for a while.

Watch this video tutorial on how to expand the storage:

"},{"location":"General/Installation_Guide/post-installation/#next-steps","title":"Next Steps","text":""},{"location":"General/Installation_Guide/post-installation/#configure-your-system-with-the-bazzite-portal-application","title":"Configure your system with the Bazzite Portal application","text":"

Familiarize yourself with the Bazzite Portal which does system maintenance, install a small subset of additional applications, and configure advanced system settings.

"},{"location":"General/Installation_Guide/post-installation/#install-additional-software-with-the-bazaar-app-store","title":"Install additional software with the Bazaar app store","text":"

Install additional software for Bazzite in the Bazaar app store. This is the place where you will be getting most of your applications, but if you require something that isn't found here then look into the Installing and Managing Applications.

"},{"location":"General/Installation_Guide/post-installation/#ready-to-game","title":"Ready to Game","text":"

You have now installed Bazzite!

Get started with gaming by reading our Gaming Guide which covers:

Enjoy Bazzite and make sure to report any bugs you encounter so they can be fixed ASAP if possible.

"},{"location":"General/Installation_Guide/troubleshoot_guide/","title":"Installation Troubleshooting","text":""},{"location":"General/Installation_Guide/troubleshoot_guide/#downloading-the-iso","title":"Downloading the ISO","text":"

Use a download manager (like Motrix) if the direct download fails or is downloading too slow.

"},{"location":"General/Installation_Guide/troubleshoot_guide/#drives","title":"Drives","text":"

Make sure to only select the appropriate drives to avoid losing data on others, and it is best practice to safely remove any external drives before proceeding.

"},{"location":"General/Installation_Guide/troubleshoot_guide/#failed-to-open-efibootmmx64efi-not-found-error","title":"\"Failed to open \\EFI\\BOOT\\mmx64.efi - Not Found\" error","text":"

To work around this issue, boot from file. Go into your UEFI (BIOS), select your EFI partition with Bazzite installed, then select /EFI/fedora/grubx64.efi to boot from. After this, your boot manager should boot normally showing \"FEDORA\" as the option.

"},{"location":"General/Installation_Guide/troubleshoot_guide/#installer-wont-boot","title":"Installer Won't Boot","text":"

Note

The new installer may not boot if your BIOS is in CSM Legacy boot as opposed to UEFI. Read more in the Bazzite system requirements.

Use the legacy ISO or try the alternative method of installing Bazzite.

"},{"location":"General/Installation_Guide/troubleshoot_guide/#error-code-1","title":"Error Code 1","text":"

The \"code 1\" error is a generic error code that appears during installation when a more specific error message isn't available. This error can occur in several scenarios that we have identified so far but there may be more scenarios:

"},{"location":"General/Installation_Guide/troubleshoot_guide/#no-space-left-on-device-error","title":"\"No Space left on Device\" Error","text":"

This error can misleadingly appear when the system does not have enough RAM for the installer to operate. You need at least 8GB of system memory to install Bazzite.

"},{"location":"General/Installation_Guide/troubleshoot_guide/#bad-shim-signature-you-need-to-load-the-kernel-first-error","title":"\"Bad shim signature, you need to load the kernel first\" error","text":"

Disable Secure Boot in BIOS to get past this screen. If you wish to use Secure Boot, follow the Secure Boot Guide using method B.

Video Guide:

"},{"location":"General/Installation_Guide/troubleshoot_guide/#device-is-active-error","title":"\"Device is Active\" Error","text":"

This error occurs when the installer encounters a BitLocker encrypted partition. You have two possible options:

A. If Dual Booting: Shrink the partition in Windows before installing, enough to have enough room for a Bazzite install. B. Bazzite Only: Delete the BitLocker partition using a tool like GParted before installing.

Watch this video for a demonstration:

"},{"location":"General/Installation_Guide/troubleshoot_guide/#error-checking-storage-configuration","title":"\"Error checking storage configuration\"","text":"

Watch this video for a workaround:

"},{"location":"General/Installation_Guide/troubleshoot_guide/#unable-to-allocate-requested-partition-scheme-error","title":"Unable to allocate requested partition scheme error","text":"

This error occurs when installing on drives larger than 2TB where the first 2TB or more is already occupied by one or more partitions. The image below illustrates the error message.

It seems like the Anaconda installer cannot create any partitions after the 2TB mark.

Here are some possible solutions on how you can address it:

"},{"location":"General/Installation_Guide/troubleshoot_guide/#alternative-installation-method","title":"Alternative Installation Method","text":"

Note

The alternative installation method is useful for downloading a smaller ISO and may resolve other issues, but also contains display issues in the installer on most handheld displays.

If none of the above errors are relevant to your issue, or you still have problems installing Bazzite, then try following our alternative installation method:

Try installing Bazzite by rebasing from Fedora Kinoite (KDE Plasma) or Fedora Silverblue (GNOME).

"},{"location":"General/Installation_Guide/troubleshoot_guide/#how-to-remove-an-orphaned-copy-of-grub","title":"How to remove an orphaned copy of GRUB","text":"
  1. Boot into the Bazzite installer (the Legacy Installer will not work for this) and open the Application Menu
  2. Type 'disk' and open the Disks app
  3. Select the drive you want to install Bazzite on
  4. Identify your EFI partition, it will be of filesystem type FAT and typically very small
  5. Mount the EFI partition (if it's not already mounted) by clicking on the Play button
  6. Click on the blue writing next to 'mounted at'
  7. Double-click on the EFI folder
  8. Identify the 'Ubuntu' or 'Fedora' folder and move it to the trashcan

Warning

Do not remove any other folders, such as Boot, Dell, HP, or Microsoft, or Windows may fail to boot properly!

  1. Reboot, and run the installer again. You might want to delete the partitions that were created during the first install attempt.
"},{"location":"Handheld_and_HTPC_edition/","title":"Bazzite-Deck Guides","text":""},{"location":"Handheld_and_HTPC_edition/Steam_Gaming_Mode/","title":"Bazzite-Deck General Overview","text":""},{"location":"Handheld_and_HTPC_edition/Steam_Gaming_Mode/#what-is-bazzite-deck","title":"What is Bazzite-Deck?","text":"

Bazzite for Home Theater PC setups and Handheld PCs. It is intended to be a controller-friendly environment and give users a \"console-like\" experience similar to SteamOS for the Steam Deck. It is intended for both handhelds and home theatre PC setups. Bazzite is similar to SteamOS by sharing many packages that SteamOS includes, so it is ready to game as soon the installation process is finished.

This documentation may not cover specific areas with the assumption that the user is already aware of SteamOS and how it works. If you are unfamiliar with something that cannot be found in our documentation, then research your specific question with \"SteamOS\" or \"Steam Deck\" as keywords in your search. Otherwise, ask your question on our forums or Discord.

"},{"location":"Handheld_and_HTPC_edition/Steam_Gaming_Mode/#what-is-steam-gaming-mode","title":"What is Steam Gaming Mode?","text":"

View the Handheld Documentation for post-installation setup and common issues on handheld hardware.

Please note that Steam Gaming Mode has demanding GPU hardware requirements compared to traditional desktop environments.

Important

The Steam beta client is not supported, please revert to the stable client before reporting issues.

Steam Deck UI Tour by Linux For Everyone

Bazzite utilizes Steam Gaming Mode to fill the niche of handheld and couch gaming setups. Steam Gaming Mode is what SteamOS on the Steam Deck is built around. A simple interface that is controller-friendly built around Steam's \"Big Picture Mode\" UI/UX. The minimal session only runs the bare minimum in the background, so most of the hardware resources is going towards the game being played.

Gamescope is the main ingredient in Steam Gaming Mode which gives options to set a framerate cap, resolution scaling options, etc. Steam Gaming Mode is also referred to as \"gamepadUI\" and \"gamescope-session\" but Bazzite documentation will usually refer to it as \"Steam Gaming Mode\" for consistency.

"},{"location":"Handheld_and_HTPC_edition/Steam_Gaming_Mode/#steam-input","title":"Steam Input","text":"

Note

Some games and emulators may need Steam Input **disabled** to work correctly with your controls.\n

A Steam guide that goes over tips and tricks for controls on the Steam Deck, but contains information that can still apply to all devices running Bazzite-Deck.

"},{"location":"Handheld_and_HTPC_edition/Steam_Gaming_Mode/#how-do-i-open-the-side-menus-with-a-physical-keyboard","title":"How do I open the side menus with a physical keyboard?","text":"

Steam Home Menu: Ctrl/Win+1 Quick Access Menu (QAM): Ctrl/Win+2

"},{"location":"Handheld_and_HTPC_edition/Steam_Gaming_Mode/#valves-official-steamos-guide","title":"Valve's Official SteamOS Guide","text":"

Important

Not all of the information will be accurate in regards to Bazzite-Deck.

Valve wrote a guide for the Steam Deck which may have some relevant information in regards to Bazzite.

"},{"location":"Handheld_and_HTPC_edition/quirks/","title":"Steam Gaming Mode Quirks and Workarounds","text":""},{"location":"Handheld_and_HTPC_edition/quirks/#how-do-i-use-my-microsd-card-that-i-used-on-my-steam-deck-running-steamos","title":"How do I use my microSD card that I used on my Steam Deck running SteamOS?","text":"

Open a host terminal and enter this command:

ujust switch-to-ext4\n
"},{"location":"Handheld_and_HTPC_edition/quirks/#how-do-i-specify-the-correct-monitor-for-gaming-mode-to-use-htpc-only","title":"How do I specify the correct monitor for Gaming Mode to use? (HTPC only)","text":"

In Desktop Mode, open a host terminal and run this command:

mkdir ~/.config/environment.d\nnano ~/.config/environment.d/10-gamescope-session.conf\n

Then add this to the file:

OUTPUT_CONNECTOR=DP-1 Change DP-1 to the correct output. You can find your display outputs using the command

KDE:

kscreen-doctor -o\n

GNOME:

gnome-randr\n

Note

It has been reported that some systems dont properly report the Display Output name when using gnome-randr, you can run the command below to list all the connected output names without any details so that you can compare them with what the above commands report.

grep -r '^connected' /sys/class/drm/*/status | grep -Po 'card.?-\\K([^/]*)'\n

Save with CTRL + X then pressing Y followed by ENTER

"},{"location":"Handheld_and_HTPC_edition/quirks/#audio-output-not-working-default-device","title":"Audio output not working (Default Device)","text":"

This issue happens usually with HDMI TV audio. Go into Desktop Mode and into the system settings to adjust the sound settings. Disable devices that do not match the sound output that you're using. An example of this is disabling all the things that aren't HDMI for your TV audio.

"},{"location":"Handheld_and_HTPC_edition/quirks/#change-physical-keyboard-layout-for-steam-gaming-mode","title":"Change physical keyboard layout for Steam Gaming Mode","text":"

Steam Gaming Mode has no official way to change the physical keyboard layout and will always default to the US layout. If you want to change the layout, then you can set the environment variable XKB_DEFAULT_LAYOUT=no replacing no with the correct layout for you.

Add this environment variable to ~/.config/environment.d/10-gamescope-session.conf Basically, make sure hidden files is turned on and move into the Home directory, then go into the .config directory and enter the environment.d directory. Inside that directory, the file that should be edited with a text editor should be saved as \"10-gamescope-session.conf\" for it to work properly.

(Please note, if both the \"10-gamescope-session.conf\" file and/or \"environment.d\" folder does not exist already, then create it.)

This works in Desktop Mode including running Nested Gamescope and also works for Nested Desktop, but it has its own quirks: altgr + 2 to write \"@\" on the Norwegian layout will still not work, but the basic keyboard layout will always work. The altgr key is luckily not needed for normal typing on the Norwegian layout, however altgr has been reported to work on the French layout, but your mileage may vary.

"},{"location":"Handheld_and_HTPC_edition/quirks/#how-do-i-disable-certain-steam-deck-features-that-conflict-with-my-setup","title":"How do I disable certain \"Steam Deck\" features that conflict with my setup?","text":"

Scenarios where this is desirable:

> Example 1: Keyboard and mouse is not working for this title.

> Example 2: The game\u2019s launcher for adjusting video settings or adding mods does not launch.

> Example 3: Certain features/options are not available that should be.

Open the game's properties on Steam and enter this launch option:

SteamDeck=0 %command%\n
"},{"location":"Handheld_and_HTPC_edition/quirks/#why-do-specific-decky-loader-plugins-not-function-on-bazzite","title":"Why do specific Decky Loader plugins not function on Bazzite?","text":"

Some plugins are built specifically for SteamOS or the Steam Deck, and won\u2019t necessarily work on Bazzite or non-Steam-Deck hardware.

For example, the DeckMTP plugin only works on the Steam Deck models and will not work on other hardware.

"},{"location":"Handheld_and_HTPC_edition/quirks/#how-do-i-use-steamdeckgyrodsu-on-hardware-that-isnt-the-steam-deck","title":"How do I use SteamDeckGyroDSU on hardware that isn't the Steam Deck?","text":"

You cannot use SteamDeckGyroDSU outside of the Steam Deck, but you can try disabling Steam Input and it may work depending on your hardware and use case.

"},{"location":"Handheld_and_HTPC_edition/quirks/#how-do-i-specify-which-gpu-that-steam-gaming-mode-should-use","title":"How do I specify which GPU that Steam Gaming Mode should use?","text":"

Open a TTY session with an external physical keyboard using this keyboard combination: Ctrl+Alt+F4

export-gpu\n

Alternatively, in Desktop Mode, enter this command in the terminal:

/usr/bin/export-gpu\n

Select the GPU to use for Steam Gaming Mode.

"},{"location":"Handheld_and_HTPC_edition/quirks/#i-lost-my-return-to-gaming-mode-shortcut","title":"I lost my \"Return to Gaming Mode\" shortcut","text":"

You can restore this shortcut by opening terminal and running:

ujust restore-gamemode-shortcut\n
"},{"location":"Handheld_and_HTPC_edition/quirks/#cannot-progress-past-this-screen","title":"Cannot progress past this screen","text":"

1. Open a TTY session with an external physical keyboard using this keyboard combination: Ctrl+Alt+F4 2. Login to your user. 3. Enter this command:

steamos-session-select plasma\n
4. Log into Steam in Desktop mode, and reboot the device.

"},{"location":"Handheld_and_HTPC_edition/quirks/#stuck-on-update-calculating-time-remaining","title":"Stuck on 'Update calculating: Time Remaining'","text":"

Reboot the device.

"},{"location":"Handheld_and_HTPC_edition/quirks/#steam-broke-and-gaming-mode-is-broken-too","title":"Steam broke and Gaming Mode is broken too","text":"

In scenarios where Steam Gaming Mode refuses to start due to an issue with the Steam client.

"},{"location":"Handheld_and_HTPC_edition/quirks/#desktop-mode-method","title":"Desktop Mode Method","text":"

Open a host terminal and enter this command:

ujust fix-reset-steam\n
"},{"location":"Handheld_and_HTPC_edition/quirks/#tty-method-if-you-cannot-access-desktop-mode","title":"TTY Method (if you cannot access Desktop Mode)","text":"

Access a TTY session with Ctrl+Alt+F4 and login with your Bazzite username and password.

Enter this command:

ujust fix-reset-steam\n
"},{"location":"Handheld_and_HTPC_edition/quirks/#something-went-wrong-while-displaying-this-content-error","title":"\"Something went wrong while displaying this content\" Error","text":"

This is most likely due to a broken Decky Loader plugin you have installed. Uninstall the broken plugin. Specific CSS Loader themes can also cause this issue.

"},{"location":"Handheld_and_HTPC_edition/quirks/#why-is-vrr-not-working-on-my-vrr-compatible-display","title":"Why is VRR not working on my VRR-compatible display?","text":"

Most of the time this is because you're connecting the device via HDMI which does not support VRR on Linux. Here is the source of that information.

"},{"location":"Handheld_and_HTPC_edition/quirks/#rainbow-display","title":"Rainbow Display","text":"

Toggle HDR on and off in the Quick Access Menu.

However, you may need to enable \"Force Composite\" found in the Developer Options, which also has to be enabled in the Steam settings beforehand.

"},{"location":"Handheld_and_HTPC_edition/quirks/#stuck-at-the-bazzite-logo","title":"Stuck at the Bazzite logo","text":"
  1. Opening a TTY session with an external physical keyboard using this keyboard combination and entering this command: Ctrl+Alt+F4
  2. Login to your user.
  3. Enter this command:
    ujust fix-reset-steam\n

Reboot the system.

"},{"location":"Handheld_and_HTPC_edition/quirks/#alternative-method","title":"Alternative Method","text":"

Attention

Try rebooting your device first before proceeding with the next steps! You may lose your games, saves, and other content if this is done incorrectly.

  1. Open a TTY session with an external physical keyboard using this keyboard combination and entering this command: Ctrl+Alt+F4 and mv ~/.local/share/Steam ~/.local/share/Steam1
  2. This command will rename the Steam directory to Steam1, and it will force Steam to reinitialize and create a new directory.
  3. You can move your games from the renamed Steam1 directory to the new Steam directory if you had any installed previously on your internal storage.
  4. Exit the TTY session by entering this keyboard combination: Ctrl + Alt + F2.
"},{"location":"Handheld_and_HTPC_edition/quirks/#video-tutorial","title":"Video Tutorial","text":""},{"location":"Handheld_and_HTPC_edition/quirks/#nvidia-gpu-exclusive-issues-with-steam-gaming-mode","title":"Nvidia GPU Exclusive Issues with Steam Gaming Mode","text":""},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/","title":"Handheld Compatibility","text":""},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/#steamos-like-functionality","title":"SteamOS-like Functionality","text":"

Notice: Bazzite uses Handheld Daemon for proper handheld support currently.

Bazzite-Deck images ship with Steam Gaming Mode which is intended to mimic the experience of SteamOS. The goal is to have earlier support for most x86_64 handheld PCs before SteamOS and with the same benefits of the desktop version of Bazzite.

"},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/#supported-handhelds","title":"Supported Handhelds","text":"

Attention

This list is incomplete and does not indicate that unlisted handhelds do not work with Bazzite currently, but because we lack specific information regarding their post-installation setup, workarounds, and proper hardware support for Linux, they are unlisted here.

All handhelds except for the Steam Deck make use of Handheld Daemon for controls, TDP, etc.

Click the name of each hardware to view post-installation setup and known issues/workarounds.

If your handheld isn't listed in the entries, then it does not necessarily mean that the device is unsupported.

"},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/#hhd-setup","title":"HHD Setup","text":"

Attention

HHD is intended and functional for handhelds that are not the Steam Deck.

Read the HHD README for more information.

  1. Double press the 'side menu button' to access Handheld Daemon overlay in Steam Gaming Mode

  2. Select the controller emulation and RGB color you want

Note

Gyro functionality requires DualSense emulation

"},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/#tdp-controls","title":"TDP Controls","text":"

There are a few options for TDP Controls that work with Bazzite:

"},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/#how-do-i-open-the-hhd-overlay","title":"How do I open the HHD Overlay?","text":"

Press, hold, or double-tap the Quick Access Menu button.

"},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/#controller-information","title":"Controller Information","text":"

For most handheld hardware, besides the Steam Deck, emulation of a DualSense controller is used for full functionality. Double tap or hold the side menu button to access settings for controller emulation including switching to an Xbox controller with reduced functionality.

If your device has paddles, you will want to use the DualSense Edge controller (excluding the Ayn Loki). It\u2019s disabled by default because some games do not map it correctly.

Some games and emulators may need Steam Input disabled to work correctly with your controls.

"},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/#desktop-controls","title":"Desktop Controls","text":"

Desktop controller layout may not exist by default if Steam doesn't setup your handheld controller properly. This can be fixed in Steam's controller settings.

The virtual keyboard is Steam's on-screen keyboard, but needs to be setup in Steam's settings in Desktop Mode. There is no default keybinding for Steam's on-screen keyboard (Remap it to X or whatever you prefer). Desktop controller layout may not exist by default if Steam doesn't setup your handheld controller properly. This can be fixed in Steam's controller settings

"},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/#decky-setup","title":"Decky Setup","text":"

To install Decky Loader, open a host terminal and enter:

ujust setup-decky\n

You can access Decky Loader by pressing the 'side menu button', also known as the Quick Access Menu (QAM), once from within Steam Gamemode or Steam Big Picture Mode.

The Quick Access Menu is accessible from the keyboard with Control + 2, or with an external controller using Xbox/PS button + A/X.

"},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/#decky-plugins","title":"Decky Plugins","text":"

Attention

Decky may break or uninstall after updates especially if there is an update.

Install optional Decky plugins for your handheld. If you experience any major issues then it is recommended to uninstall Decky before reporting Bazzite bugs.

"},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/#unsupported-handhelds","title":"Unsupported Handhelds","text":"

Note

Certain handhelds have been confirmed to boot Bazzite, but are plagued by missing driver support for Linux including missing audio drivers.

Unsupported handhelds could work with Bazzite, but there may be major issues encountered that are undocumented. If your handheld hardware is not listed, then you can still give Bazzite a try with our Bazzite-Deck image.

Your mileage may vary with untested hardware. Bazzite does not have the required setup for unsupported handheld, so setup will be manually done by the end-user for different functionality if it even works properly on the unsupported device.

"},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/#e-gpu-caveats","title":"e-GPU Caveats:","text":"

General Linux e-GPU Guide + Script

"},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/ASUS_ROG_Ally/","title":"ASUS Handhelds","text":"

Disclaimer

This wiki may contain outdated information.

"},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/ASUS_ROG_Ally/#asus-rog-ally-asus-rog-ally-x","title":"ASUS ROG Ally / ASUS ROG Ally X","text":""},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/ASUS_ROG_Ally/#general-notes","title":"General Notes","text":""},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/ASUS_ROG_Ally/#optional-tweaks","title":"Optional Tweaks","text":""},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/ASUS_ROG_Ally/#known-issues","title":"Known Issues","text":""},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/ASUS_ROG_Ally/#cpu-boost","title":"CPU Boost?","text":"

Disabled by default to prevent excessive power draw to the device.

More information can be found here about this.

"},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/Ayaneo_Handhelds/","title":"Ayaneo Handhelds","text":"

Disclaimer

Sleep functionality requires a BIOS update.

"},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/Ayaneo_Handhelds/#ayaneo-geek-1s","title":"Ayaneo Geek 1S","text":""},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/Ayaneo_Handhelds/#known-issues","title":"Known Issues","text":""},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/Ayaneo_Handhelds/#functional-hhd","title":"Functional HHD","text":"
sudo systemctl enable --now hhd@$(whoami)\n
"},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/Ayaneo_Handhelds/#e-gpu-support","title":"e-GPU Support:","text":""},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/Ayaneo_Handhelds/#external-resource","title":"External Resource","text":"

Check out the original thread for more information and updates on this device.

Ayaneo Geek 1s is (as of April 2025) the only Ryzen 7000 handheld which is yet to receive the EC update that increase battery life. You can follow and report on this discord thread.

"},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/Ayn_Handhelds/","title":"Ayn Handhelds","text":"

Disclaimer

This wiki may contain outdated information.

"},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/Ayn_Handhelds/#ayn-loki-max","title":"Ayn Loki Max","text":""},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/Ayn_Handhelds/#optional-tweaks","title":"Optional Tweaks","text":""},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/Ayn_Handhelds/#known-issues","title":"Known Issues","text":""},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/Ayn_Handhelds/#ayn-loki-mini-pro","title":"Ayn Loki Mini Pro","text":""},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/Ayn_Handhelds/#optional-tweaks_1","title":"Optional Tweaks","text":""},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/Ayn_Handhelds/#known-issues_1","title":"Known Issues","text":""},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/GPD_Handhelds/","title":"GPD Handhelds","text":"

Disclaimer

This wiki may contain outdated information.

"},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/GPD_Handhelds/#gpd-win-4","title":"GPD Win 4","text":""},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/GPD_Handhelds/#general-information-optional-tweaks","title":"General Information & Optional Tweaks","text":""},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/GPD_Handhelds/#known-issues","title":"Known Issues","text":""},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/GPD_Handhelds/#external-resource","title":"External Resource","text":"

For more information, check out the GPD Win Tips and Tricks guide which includes useful scripts for this handheld.

"},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/GPD_Handhelds/#gpd-win-max-2","title":"GPD Win Max 2","text":""},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/GPD_Handhelds/#optional-tweaks","title":"Optional Tweaks","text":""},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/GPD_Handhelds/#known-issues_1","title":"Known Issues","text":""},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/GPD_Handhelds/#external-resource_1","title":"External Resource","text":"

For more information, check out the GPD Win Tips and Tricks guide which includes useful scripts for this handheld.

"},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/Lenovo_Legion_Go/","title":"Lenovo Handhelds","text":"

Disclaimer

This wiki may contain outdated information.

"},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/Lenovo_Legion_Go/#lenovo-legion-go","title":"Lenovo Legion Go","text":""},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/Lenovo_Legion_Go/#optional-tweaks","title":"Optional Tweaks","text":""},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/Lenovo_Legion_Go/#known-issues","title":"Known Issues","text":""},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/Lenovo_Legion_Go/#bios-update-breaks-secure-boot-key","title":"BIOS update breaks Secure Boot key","text":"

Read our Secure Boot guide to re-enroll the key after a BIOS update if you keep Secure Boot enabled, which is the default for this device.

Info

As of July 2025, external monitors are working just fine. The external display can be set to its respective native resolution and refresh rate.

Without additional fixes, the internal display only offers its native resolution with the correct aspect ratio. Other resolutions can be chosen, but most of the screen will remain empty.

If your screen doesn't display the correct output or looks grainy, noisy, or oddly colorful then you will have to enter a TTY session and enter this command:

rm ~/.config/kwin*\n

Alternatively, ssh into it and enter this command:

mv ~/.config/kwinoutputconfig.json ~/.config/kwinoutputconfig.json.old\n
"},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/Lenovo_Legion_Go/#external-resource","title":"External Resource","text":"

For more information, check out the Legion Go Tips and Tricks guide which includes useful scripts for this handheld.

"},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/OneXPlayer_Handhelds/","title":"OneXPlayer Handhelds","text":"

Disclaimer

This wiki may contain outdated information.

"},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/OneXPlayer_Handhelds/#onexplayer-x1","title":"OneXPlayer X1","text":""},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/OneXPlayer_Handhelds/#known-issues","title":"Known Issues","text":""},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/Other_Handhelds/","title":"Other Handhelds","text":""},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/Other_Handhelds/#untested-handhelds","title":"Untested Handhelds","text":"

Note

Certain handhelds have been confirmed to boot Bazzite, but are plagued by missing driver support for Linux including missing audio drivers.

Untested handhelds could work with Bazzite, but there may be major issues encountered that are undocumented. Your mileage may vary with untested hardware.

Bazzite does not have the required setup for other handhelds, so setup will be manually done by the end-user for different functionality if it even works properly on the unsupported device.

"},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/Other_Handhelds/#hhd-setup-if-not-enabled-by-default-on-device","title":"HHD Setup (If Not Enabled By Default on Device)","text":"

Commands for functional HHD:

systemctl start hhd@yourusername\n
systemctl enable hhd@yourusername\n

Important

Replace yourusername with your Bazzite username.

"},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/Steam_Deck/","title":"Steam Deck","text":""},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/Steam_Deck/#steam-deck-lcd-oled-models","title":"Steam Deck (LCD & OLED Models)","text":""},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/Steam_Deck/#bios-updates","title":"BIOS Updates","text":"

It is recommended to enter ujust enable-deck-bios-firmware-updates in the terminal to receive Steam Deck BIOS updates.

"},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/Steam_Deck/#why-bazzite-over-steamos","title":"Why Bazzite over SteamOS?","text":"

Both SteamOS and Bazzite use Steam Gaming Mode and share packages between each other, but what about differences under the hood? Bazzite should have most of the functionality from SteamOS with Steam Gaming Mode working as intended.

If you want to see a more in-depth comparison, read our SteamOS comparison guide.

"},{"location":"Handheld_and_HTPC_edition/Handheld_Wiki/Steam_Deck/#known-issues","title":"Known Issues","text":""},{"location":"Installing_and_Managing_Software/","title":"Installing and Managing Applications","text":""},{"location":"Installing_and_Managing_Software/AppImage/","title":"AppImage","text":"

AppImage is a universal package format that attempts to bundle dependencies that an application requires into one portable file. They can be installed by downloading any file with a .AppImage file extension and then giving it executable permissions in the file's properties so the application can run properly. Like Windows executable files, they are usually found on the project's website to download. You should only download AppImages from sources that you trust.

"},{"location":"Installing_and_Managing_Software/AppImage/#gear-lever","title":"Gear Lever","text":"

Applications installed as an AppImage can integrate with your desktop and be managed with Gear Lever which you can install in Bazaar. Gear Lever will also check for new updates, but upgrades will still need to be applied manually. It is highly recommended to install Gear Lever to manage AppImages.

"},{"location":"Installing_and_Managing_Software/AppImage/#project-website","title":"Project Website","text":"

https://appimage.org/

"},{"location":"Installing_and_Managing_Software/Containers/","title":"Containers","text":""},{"location":"Installing_and_Managing_Software/Containers/#what-are-containers","title":"What are containers?","text":"

Containers are isolated environments for software to run. Bazzite utilizes containers in a software context for applications that either run better in a container environment or are not available in the Bazaar app store.

"},{"location":"Installing_and_Managing_Software/Containers/#distrobox","title":"Distrobox","text":"

Distrobox allows users to run other minimal versions Linux operating systems within their own containerized environment with access to their own repositories. Real world examples include applications that only have Linux support for Ubuntu and ship a .deb file on their website. An Ubuntu container can be created with DistroShelf and then the .deb file can be installed within the container and exported so it appears in your applications.

Quadlet is specifically used for running services like media servers, game servers, etc. Quadlet is advanced in comparison to other package formats and relies heavily on system-level tooling that is pre-installed on Bazzite. There is no quadlet command and requires declaratively creating services with it using systemd units and Podman.

"},{"location":"Installing_and_Managing_Software/Distrobox/","title":"Distrobox Containers","text":""},{"location":"Installing_and_Managing_Software/Distrobox/#basic-usage","title":"Basic Usage","text":"

Run other minimal variants of popular Linux distributions in Bazzite inside of a container and access each distribution's packages without any of their dependencies and libraries affecting the host machine.

Distrobox containers run sub-systems of other popular Linux distributions with access to their package managers (apt, dnf, pacman, etc.) and their package formats (.deb/.rpm) and any additional repositories like the AUR. Distrobox containers can be used for both development environments and installing applications that are not available in any of the other installation methods which can be exclusive to specific package managers.

"},{"location":"Installing_and_Managing_Software/Distrobox/#linux-distribution-examples","title":"Linux Distribution Examples:","text":"OS Package Manager Search for Packages Fedora dnf Fedora Packages / COPR Packages Arch pacman Arch Linux Packages / AUR Packages Debian / Ubuntu apt Debian Packages / Ubuntu Packages (PPA) openSUSE zypper openSUSE Packages Void xbps Void Linux Packages Alpine apk Alpine Linux Packages"},{"location":"Installing_and_Managing_Software/Distrobox/#arch-linux-distrobox-container-example","title":"Arch Linux Distrobox Container Example:","text":"

I use Arch (in a container) btw.

"},{"location":"Installing_and_Managing_Software/Distrobox/#use-cases","title":"Use Cases","text":"

Distrobox containers can be used for both development environments and installing applications that are not available in any of the other installation methods which can be exclusive to specific package managers.

"},{"location":"Installing_and_Managing_Software/Distrobox/#distrobox-graphical-interface","title":"Distrobox Graphical Interface","text":"

Distrobox containers can be created and managed graphically with DistroShelf which is pre-installed.

"},{"location":"Installing_and_Managing_Software/Distrobox/#desktop-integration","title":"Desktop Integration","text":"

Applications with a graphical user interface can integrate with your system with an application shortcut by exporting the application using the below command in the container terminal window:

distrobox-export --app <package>\n
To \"un-export\" the app, enter the command below in the container terminal window:

distrobox-export --delete --app <package>\n
"},{"location":"Installing_and_Managing_Software/Distrobox/#manually-create-pre-configured-distrobox-containers","title":"Manually Create Pre-Configured Distrobox Containers","text":"
ujust distrobox-assemble\n

Select the container that you want to use.

Advanced users: Declare your own custom Distrobox containers following the distrobox-assemble documentation.

"},{"location":"Installing_and_Managing_Software/Distrobox/#entering-the-container","title":"Entering The Container","text":"

Swap between different containers in your host with the terminal or alternatively enter:

distrobox enter <container>\n
"},{"location":"Installing_and_Managing_Software/Distrobox/#removing-distrobox-containers","title":"Removing Distrobox Containers","text":"

Delete containers graphically with DistroShelf.

Alternatively, use the command line:

distrobox stop <container_name>\n
distrobox rm -f <container_name>\n
"},{"location":"Installing_and_Managing_Software/Distrobox/#distrobox-video-guide","title":"Distrobox Video Guide","text":""},{"location":"Installing_and_Managing_Software/Distrobox/#project-website","title":"Project Website","text":"

https://distrobox.it/

"},{"location":"Installing_and_Managing_Software/Flatpak/","title":"Bazaar App Store","text":""},{"location":"Installing_and_Managing_Software/Flatpak/#purpose","title":"Purpose","text":"

Bazaar is the primary method of installing applications on Bazzite (outside of the small selection of software available in the Bazzite Portal or as a ujust command) and is recommended to install most applications from Bazaar over other formats for most software when possible. Bazaar is a frontend for Flatpaks that are from Flathub.

"},{"location":"Installing_and_Managing_Software/Flatpak/#what-is-flatpak","title":"What is Flatpak?","text":"

Flatpak is a universal containerized package format that tries to sandbox applications through flexible permissions that the application has access to on your system. It is the primary method of installing applications on Bazzite and the most recommended way to install software over other formats outside of the few exceptions of software available in the Bazzite Portal which take priority. Flatpaks can be graphically installed, upgraded, and uninstalled via the Bazaar app store.

"},{"location":"Installing_and_Managing_Software/Flatpak/#terminal-installation","title":"Terminal Installation","text":"

Alternatively open a host terminal and enter:

flatpak install <application>\n
"},{"location":"Installing_and_Managing_Software/Flatpak/#manage-flatpaks","title":"Manage Flatpaks","text":"

Manage Flatpaks with Flatseal and Warehouse which are both pre-installed.

"},{"location":"Installing_and_Managing_Software/Flatpak/#flatseal","title":"Flatseal","text":"

Flatseal is for changing application permissions if necessary.

Sometimes a project's website or Github repository contain information on what permissions need to be changed to perform certain functionality.

"},{"location":"Installing_and_Managing_Software/Flatpak/#warehouse","title":"Warehouse","text":"

Warehouse is a utility that gives users a graphical interface to downgrade applications, install remote Flatpak sources outside of Flathub at your own risk, and backup application user data.

"},{"location":"Installing_and_Managing_Software/Flatpak/#project-website","title":"Project Website","text":"

https://github.com/kolunmi/bazaar

"},{"location":"Installing_and_Managing_Software/Homebrew/","title":"Homebrew","text":""},{"location":"Installing_and_Managing_Software/Homebrew/#what-is-homebrew","title":"What is Homebrew?","text":"

Note

Any package that requires root privileges will either need a rootful Distrobox container or has to be layered with rpm-ostree.

Homebrew is a package manager that installs packages into their own prefix. It is primarily used for command-line interface (CLI) and terminal user interface (TUI) applications. Homebrew can also install graphical applications using the --cask flag, but most are for macOS as support for casks on Linux is still developing. Use the Bold Brew application or the terminal using the command below to install packages.

Install packages in a host terminal with this terminal command:

brew install <package>\n
"},{"location":"Installing_and_Managing_Software/Homebrew/#bold-brew","title":"Bold Brew","text":"

The Bold Brew application offers a terminal user interface (TUI) for installing common Homebrew packages.

"},{"location":"Installing_and_Managing_Software/Homebrew/#project-website","title":"Project Website","text":"

https://brew.sh/

"},{"location":"Installing_and_Managing_Software/Quadlet/","title":"Quadlet (Services)","text":""},{"location":"Installing_and_Managing_Software/Quadlet/#quadlet-usecases","title":"Quadlet Usecases","text":"

Quadlet is a feature of podman that allows a user to run a container as systemd units. It works by using a declarative syntax like docker compose but integrates to systemd and uses podman as a backend.

Quadlet can be used for application packaged as a container such as a server application. You can find a lot of examples of containerized applications from Linux Server.

"},{"location":"Installing_and_Managing_Software/Quadlet/#managing-quadlet","title":"Managing Quadlet","text":"

Quadlet can be managed like any other systemd service using below command.

Checking Quadlet status

systemctl --user status <service>\n

Stopping Quadlet

systemctl --user stop <service>\n

You can see more commands in man systemctl or tldr systemctl.

Note

Do not add the .container suffix when you interact with systemctl or an error will occur.

"},{"location":"Installing_and_Managing_Software/Quadlet/#quadlet-file-locations","title":"Quadlet File Locations","text":"

You can put your quadlet in these locations sorted by priority:

Note

If you want your service to start even when you are not logged in, run loginctl enable-linger $USER to start it automatically.

"},{"location":"Installing_and_Managing_Software/Quadlet/#running-quadlet-on-startup","title":"Running Quadlet on Startup","text":"

You may want to run your quadlet automatically on startup, just add an install section to the quadlet file if you want it to autostart. Most of the time default.target is what you want but if you need other target you can read about that on systemd docs.

[Install]\nWantedBy=default.target\n
"},{"location":"Installing_and_Managing_Software/Quadlet/#converting-docker-compose-to-quadlet-unit","title":"Converting Docker Compose to Quadlet Unit","text":"

You will find that most of containerized apps in the web are built using docker compose. Even the Linux Server that is linked above has all containers documented using a compose file. So you will need to convert it first, before running it as quadlet, fortunately you can use podlet to help you converting it.

Note

By default quadlet require full repository name. Most images are in docker hub so add docker.io/ (e.g \"nginxinc/nginx-unprivileged\" becomes \"docker.io/nginxinc/nginx-unprivileged\") to it.

"},{"location":"Installing_and_Managing_Software/Quadlet/#running-rootful-container-as-quadlet","title":"Running Rootful Container as Quadlet","text":"

While ideally you would run all containers using rootless podman, unfortunately not all containers will work with it. Use rootful podman by using a different quadlet path and run using root systemctl (without --user).

Rootful Quadlet Paths - /run/containers/systemd/ - Temporary quadlet - /etc/containers/systemd/ - Recommended location - /usr/share/containers/systemd/ - Image defined

"},{"location":"Installing_and_Managing_Software/Quadlet/#common-quadlet-key-description","title":"Common Quadlet Key Description","text":"Option Example Description ContainerName ContainerName=nginx Name of the container. Image Image=docker.io/nginxinc/nginx-unprivileged Container image that you want to use. AutoUpdate AutoUpdate=registry Source to check for update. The value is either registry or local. PublishPort PublishPort=8080:8080 Port opened by container. (HOST_PORT:CONTAINER_PORT) Volume Volume=/path/to/data:/data:z Link host folder with container folder. (HOST_FOLDER:CONTAINER_FOLDER:OPTION) Network Network=host Network used by container. The value can be host, none, or user defined network name

Note

The z option in volume is to prevent selinux from blocking access to the folder. You can read more here.

"},{"location":"Installing_and_Managing_Software/Quadlet/#troubleshooting","title":"Troubleshooting","text":"

If your quadlet for some reason isn't found or starting, you can debug the container unit using /usr/libexec/podman/quadlet -dryrun for system quadlet or /usr/libexec/podman/quadlet -user -dryrun for user quadlet.

"},{"location":"Installing_and_Managing_Software/Quadlet/#examples","title":"Examples","text":"

Real world examples for Quadlet usage.

"},{"location":"Installing_and_Managing_Software/Quadlet/#minecraft-server-hosting","title":"Minecraft Server Hosting","text":"

Note

Don't forget to run systemctl --user daemon-reload after creating the file

Documentation: https://docker-minecraft-server.readthedocs.io/en/latest Quadlet File:

# ~/.config/containers/systemd/minecraft.container\n[Container]\nContainerName=minecraft\nEnvironment=EULA=TRUE\nImage=docker.io/itzg/minecraft-server\nAutoUpdate=registry\nPublishPort=25565:25565\nVolume=/path/to/data:/data:z\n\n# Remove if you don't want autostart\n[Install]\nWantedBy=default.target\n

Note

Use absolute path for volume, e.g /home/username/minecraft/data.

"},{"location":"Installing_and_Managing_Software/Quadlet/#nginx-web-server","title":"NGINX Web Server","text":"

Create a file called ~/.config/containers/systemd/nginx.container with content below.

[Container]\nContainerName=nginx\nImage=docker.io/nginxinc/nginx-unprivileged\nAutoUpdate=registry\nPublishPort=8080:8080\n

Save it and run the code below.

systemctl --user daemon-reload\nsystemctl --user start nginx\nxdg-open localhost:8080\n
"},{"location":"Installing_and_Managing_Software/Quadlet/#plex-media-server","title":"Plex Media Server","text":"

Documentation: https://github.com/plexinc/pms-docker Quadlet File:

# ~/.config/containers/systemd/plex.container\n[Container]\nContainerName=plex\nEnvironment=TZ=Your/TimeZone\nImage=docker.io/plexinc/pms-docker\nAutoUpdate=registry\nNetwork=host\nVolume=/path/to/config:/config:z\nVolume=/path/to/transcode:/transcode:z\nVolume=/path/to/media:/data:z\n\n# Remove if you don't want autostart\n[Install]\nWantedBy=default.target\n

Note

You can find list of timezones here.

Note

Use absolute path for volume, e.g /home/username/plex/config.

Note

You can mount multiple volumes for your media, e.g Volume=/path/to/media:/tv:z and Volume=/path/to/another/media:/movie:z. Consult the documentation for more info.

"},{"location":"Installing_and_Managing_Software/Quadlet/#video-tutorial","title":"Video Tutorial","text":""},{"location":"Installing_and_Managing_Software/Quadlet/#samba-server","title":"Samba Server","text":"

Documentation: https://github.com/ServerContainers/samba Quadlet File:

# /etc/containers/systemd/samba.container\n[Container]\nEnvironment=ACCOUNT_username=password\n# Protected share with write access\nEnvironment=\"SAMBA_VOLUME_CONFIG_protected=[My Share]; path=/shares/protected; valid users = username; guest ok = no; read only = no; browseable = yes\"\n# Open share with readonly access\nEnvironment=\"SAMBA_VOLUME_CONFIG_guest=[Guest Share]; path=/shares/guest; guest ok = yes; browseable = yes\"\nImage=ghcr.io/servercontainers/samba:smbd-only-latest\nAutoUpdate=registry\nNetwork=host\nVolume=/path/to/protected:/shares/protected:z\nVolume=/path/to/guest:/shares/guest:z\n\n# Remove if you don't want autostart\n[Install]\nWantedBy=default.target\n

Note

You can find list of timezone here.

Note

Use absolute path for volume, e.g /home/username/samba/guest.

"},{"location":"Installing_and_Managing_Software/Quadlet/#useful-links","title":"Useful Links","text":""},{"location":"Installing_and_Managing_Software/Waydroid_Setup_Guide/","title":"Waydroid Setup Guide","text":""},{"location":"Installing_and_Managing_Software/Waydroid_Setup_Guide/#what-is-waydroid","title":"What is Waydroid?","text":"

Attention

Waydroid does not work on Nvidia hardware.

Waydroid is an Android container that runs on Linux. Bazzite users can run Android applications using this method.

"},{"location":"Installing_and_Managing_Software/Waydroid_Setup_Guide/#first-time-setup","title":"First Time Setup","text":"

Open a host terminal and enter this command to setup Waydroid:

ujust setup-waydroid\n
"},{"location":"Installing_and_Managing_Software/Waydroid_Setup_Guide/#initialize-waydroid","title":"Initialize Waydroid","text":"

Waydroid requires users to initialize it for the first time which can be done by selecting: Initialize Waydroid

Make sure this worked by entering this command:

/usr/bin/waydroid-launcher\n

This will launch Waydroid for the first time.

"},{"location":"Installing_and_Managing_Software/Waydroid_Setup_Guide/#configure-waydroid","title":"Configure Waydroid","text":"

Customize your Waydroid container

"},{"location":"Installing_and_Managing_Software/Waydroid_Setup_Guide/#part-1-stop-waydroid-session","title":"Part 1: Stop Waydroid Session","text":"

Waydroid needs to stop running to configure properly.

Open a host terminal and enter this command:

waydroid session stop\n
"},{"location":"Installing_and_Managing_Software/Waydroid_Setup_Guide/#part-2-configuration","title":"Part 2: Configuration","text":"

Open a host terminal and enter this command:

ujust setup-waydroid\n

Selecting Configure Waydroid will allow users to install additional Android tweaks with the Waydroid Extras Scripts.

  1. Select Android version you have installed. To find installed Android version, start Waydroid, open Settings app then go to \"About This Phone\". Your Android version will be 11 or 13.
  2. Select items to install
"},{"location":"Installing_and_Managing_Software/Waydroid_Setup_Guide/#available-waydroid-extras","title":"Available Waydroid Extras:","text":" "},{"location":"Installing_and_Managing_Software/Waydroid_Setup_Guide/#get-google-device-id-to-get-certified-gapps","title":"Get Google Device ID to Get Certified (GApps)","text":"
  1. Launch Waydroid (Waydroid must be running)

  2. After selecting your current Android version, select Get Google Device ID to Get Certified especially if you plan to use the Google Play Store (GApps).

  3. Follow the instructions in the terminal output.

After verification has happened, it will usually take a while before your device is Google Play certified.

"},{"location":"Installing_and_Managing_Software/Waydroid_Setup_Guide/#add-as-a-non-steam-shortcut","title":"Add as a Non-Steam Shortcut","text":"

This is useful for Bazzite images that use Steam Gaming Mode.

Make sure to add /usr/bin/waydroid-launcher to Steam as a non-Steam game for Waydroid to work properly in Steam Gaming Mode.

"},{"location":"Installing_and_Managing_Software/Waydroid_Setup_Guide/#enable-multi-touch-support","title":"Enable Multi-Touch Support","text":"

To use multi-touch gestures in Waydroid while running under Steam Gaming Mode, you need to enable \"Touchscreen Native Support\" in Steam's controller settings:

  1. Within your Waydroid shortcut, go to Controller Settings.
  2. Go to Edit Layout > Action Sets > Default.
  3. Select Add Always-On command.
  4. Under System, select the Touchscreen Native Support command.

"},{"location":"Installing_and_Managing_Software/Waydroid_Setup_Guide/#waydroid-tips-tricks","title":"Waydroid Tips & Tricks","text":"

This section is dedicated to more specific operations and issues within Waydroid running on Bazzite.

"},{"location":"Installing_and_Managing_Software/Waydroid_Setup_Guide/#waydroid-helper-application","title":"Waydroid Helper application","text":"

waydroid-helper is a GUI app that enables more advanced configuration and control over your waydroid installations.

To install it, run the following ujust command:

ujust setup-waydroid helper\n

You can alternatively go directly to their releases and install the latest AppImage via GearLever.

"},{"location":"Installing_and_Managing_Software/Waydroid_Setup_Guide/#disable-inputs-to-waydroid-when-unfocused","title":"Disable Inputs to Waydroid When Unfocused","text":"

Waydroid has an issue where it will register inputs from controllers, keyboards, and other input devices even when the window is not focused.

Disable this functionality:

Note

Waydroid must be running!

In a host terminal, run this command:

waydroid prop set persist.waydroid.uevent false\n

If you ever want to undo this change, run the same steps but set true instead of false with the same command.

"},{"location":"Installing_and_Managing_Software/Waydroid_Setup_Guide/#mouse-clicks-to-touch-input","title":"Mouse Clicks to Touch Input","text":"

Some applications do not expect mouse clicks and only respond to touchscreen taps.

Note

Waydroid must be running!

You can use this command in a host terminal to enable this per-application:

waydroid prop set persist.waydroid.fake_touch \"PACKAGE_NAME_HERE\"\n

Note

Package names are usually in the format of \"com.example.appname\". You can find the package name for the application at the bottom of the \"App info\" page in the Settings app.

Wildcards are also supported, so \"com.rovio.*\" would apply to all games by Rovio.

An example for the app \"Fate/Grand Order\" would be: waydroid prop set persist.waydroid.fake_touch \"com.aniplex.fategrandorder.en\"

The application inside of Waydroid needs to be restarted for the changes to take effect.

Warning

Only set specific applications with this command! Setting this globally to the system using a wildcard can cause irregular behavior with the mouse cursor.

To revert these changes, use the following command in a host terminal:

waydroid prop set persist.waydroid.fake_touch \"\"\n
"},{"location":"Installing_and_Managing_Software/Waydroid_Setup_Guide/#resolution-density-options","title":"Resolution & Density Options","text":"

This is intended for users who have issues with Waydroid's resolution, scaling, or running Waydroid nested. This is optional.

Open a host terminal and enter the following commands:

sudoedit /etc/default/waydroid-launcher\n
sudoedit /etc/default/steamos-nested-desktop\n

Save the text files when done.

"},{"location":"Installing_and_Managing_Software/Waydroid_Setup_Guide/#waydroid-hybrid-graphics-fix","title":"Waydroid Hybrid Graphics Fix","text":"

This is only intended for users who have multiple GPUs in their hardware who experience graphical corruptions in Waydroid.

Enter in a host terminal:

ujust setup-waydroid\n

Then Select GPU for Waydroid which will give the option on what GPU to utilize for Waydroid to fix graphical corruptions.

"},{"location":"Installing_and_Managing_Software/Waydroid_Setup_Guide/#reset-waydroid","title":"Reset Waydroid","text":"

Warning

You will lose all of your Waydroid data.

If you experience issues or want a fresh Waydroid container, then select Reset Waydroid after entering:

ujust setup-waydroid\n
"},{"location":"Installing_and_Managing_Software/rpm-ostree/","title":"Package Layering","text":""},{"location":"Installing_and_Managing_Software/rpm-ostree/#using-rpm-ostree","title":"Using rpm-ostree","text":"

Attention

Layering packages irresponsibly can be destructive and may prevent updates as well as other issues until the layered packages are removed.

Install Fedora Linux packages on top of the existing Bazzite image by using the rpm-ostree terminal command. Use for packages that cannot be installed from Homebrew or ran inside of a container. Layered packages can break system upgrades until removed due to dependency issues since the package will have to be updated with the rest of the image. It also causes upgrades to take longer to run.

"},{"location":"Installing_and_Managing_Software/rpm-ostree/#key-notes","title":"Key Notes","text":""},{"location":"Installing_and_Managing_Software/rpm-ostree/#terminal-commands-related-to-package-layering","title":"Terminal Commands Related to Package Layering","text":"

Use these commands at your own risk.

"},{"location":"Installing_and_Managing_Software/rpm-ostree/#layer-packages","title":"Layer Package(s)","text":"
rpm-ostree install <package>\n

Installs Fedora package(s) to the system that stay between updates, reboot to apply the installation.

"},{"location":"Installing_and_Managing_Software/rpm-ostree/#uninstall-layered-packages","title":"Uninstall Layered Package(s)","text":"
rpm-ostree uninstall <package>\n

Uninstalls any layered packages added to the system, reboot to apply the uninstallation.

"},{"location":"Installing_and_Managing_Software/rpm-ostree/#search-for-a-package","title":"Search for a Package","text":"
rpm-ostree search <package>\n

Searches for Fedora packages that can be installed.

"},{"location":"Installing_and_Managing_Software/rpm-ostree/#view-currently-layered-packages","title":"View Currently Layered Packages","text":"
rpm-ostree status\n

This will output the layered packages in your Bazzite installation.

"},{"location":"Installing_and_Managing_Software/rpm-ostree/#installing-rpm-files","title":"Installing RPM Files","text":"

Fedora Distrobox containers should be used for most .rpm files, but sometimes they need to be installed to your host if it isn't working well with a container.

You can install RPM binaries to your host with rpm-ostree by entering:

rpm-ostree install <package>.rpm\n

You may need to copy the full path (/path/to/rpmfile.rpm) for it to install properly.

Important

The downside of installing local RPM files outside of the Fedora repositories is updates for the specific RPM package will not apply automatically.

"},{"location":"Installing_and_Managing_Software/rpm-ostree/#how-do-i-addremove-copr-repositories","title":"How do I add/remove COPR repositories?","text":"

Warning

It is highly advised to not use third-party COPR repos if possible, so be aware there are risks associated with it including broken updates until removed.

Enable COPRDisable COPR DNF5 (Fedora COPR)DNF5 (repo file)Manually
sudo dnf5 copr enable <USER>/<PROJECT>\n

This method works with COPR other than Fedora's (ex.: Docker)

sudo dnf5 config-manager addrepo --from-repofile=https://url/to/file.repo\n
  1. Download the .repo file and save it to /etc/yum.repos.d/

  2. Then install the package(s) with rpm-ostree

  3. Reboot

If you experience issues updating your system due to GPG signature issues, then this can be fixed by either removing the COPR repository, or editing the file by changing gpgcheck=1 to gpgcheck=0 (or similar) and saving it at your own risk.

Ensure to remove any package installed with the COPR beforehand.

DNF5 (Fedora COPR)DNF5 (repo file)Manually
sudo dnf5 copr disable <USER>/<PROJECT>\n

Remove the .repo at /etc/yum.repos.d/

Remove the .repo at /etc/yum.repos.d/

"},{"location":"Installing_and_Managing_Software/rpm-ostree/#how-to-restore-default-coprs","title":"How to restore default COPRs","text":"
# Remove all current repos\nsudo rm /etc/yum.repos.d/*\n\n# Now copy the default repo files fro /usr/etc to /etc\nsudo cp /usr/etc/yum.repos.d/* /etc/yum.repos.d/\n
"},{"location":"Installing_and_Managing_Software/rpm-ostree/#major-caveats-using-rpm-ostree","title":"MAJOR caveats using rpm-ostree","text":"

Layering packages can cause severe consequences including:

Layering packages are mostly intended for system-level applications, libraries, and other dependencies. It is recommended to use Flatpak, Homebrew, containers, AppImage, Waydroid, or running the Windows version through a compatibility layer before installing software with rpm-ostree. Layering packages for a temporary time period is the better alternative than keeping a package layered indefinitely.

"},{"location":"Installing_and_Managing_Software/rpm-ostree/#how-to-remove-all-layered-packages","title":"How to remove ALL layered packages","text":"

If you run into issues upgrading due to a layered package conflict, then either optionally uninstall the conflicted package(s) or remove all layered packages with this command:

rpm-ostree reset\n
"},{"location":"Installing_and_Managing_Software/rpm-ostree/#project-website","title":"Project Website","text":"

https://coreos.github.io/rpm-ostree/

"},{"location":"Installing_and_Managing_Software/software-intro/","title":"Introduction to Installing Software on Bazzite","text":""},{"location":"Installing_and_Managing_Software/software-intro/#linux-package-formats","title":"Linux Package Formats","text":"

Package formats ranked from most recommended to least recommended for daily usage:

  1. Bazzite Portal (ujust Commands) (Convenience Commands) - Custom scripts maintained by Bazzite & Universal Blue contributors that can also install a small subset of applications. (This takes precedent over other formats but since it can only install only a small set of software, it is considered as an extension to system-level settings as opposed to an app store.)
  2. Bazaar App Store (Flatpak) (Graphical Applications) - Universal package format using a permissions-based model and should be used for most graphical applications, it is primary method of obtaining software on Bazzite.
  3. Homebrew (Command-Line Tools) - Install applications intended to run inside of the terminal (CLI/TUI).
  4. Containers - Run applications in an isolated environment to avoid dependency issues. 4a. Distrobox Containers (Linux Packages & Development Workflows) - Access to most Linux package managers for software that do not support Flatpak and Homebrew and for use as development boxes. 4b. Quadlet (Services) - Run containerized applications as a systemd service.
  5. AppImage (Portable Graphical Applications) - Portable universal package format that relies on specific host libraries at a system-level, usually obtained from a project's website.
  6. rpm-ostree (System-Level Packages) - Layer Fedora packages at a system-level (not recommended, use as a last resort)
"},{"location":"Installing_and_Managing_Software/software-intro/#non-linux-formats","title":"Non-Linux Formats","text":"

Bazzite can also run Windows and Android applications too. Please note that not all software intended for Windows and Android will run on Bazzite.

"},{"location":"Installing_and_Managing_Software/software-intro/#windows-executables","title":"Windows Executables","text":"

Use a WINE front-end:

Read the Bazzite Gaming Guide for more information on running Windows games on Linux.

"},{"location":"Installing_and_Managing_Software/software-intro/#android-apps","title":"Android Apps","text":"

Follow the Waydroid Setup Guide to install Android applications on Bazzite.

"},{"location":"Installing_and_Managing_Software/software-intro/#package-format-recommendation-scenarios","title":"Package Format Recommendation Scenarios","text":"

Note

Please note that only a small selection of software are available to install in the Bazzite Portal so it is not listed.\n

Package Format Graphical Application (GUI) Command\u2011Line / System\u2011Level Package Bazaar App Store (Flatpak) Primary method for obtaining graphical applications. Not recommended for command\u2011line applications or utilities. Homebrew Only a few apps (e.g., VSCode via Universal Blue cask) are recommended to install graphically. Highly recommended for command\u2011line tools. Containers (Distrobox / Quadlet) If not available in Bazaar, install the generic Linux package inside a Distrobox container and export it. For services, create a Quadlet. Recommended if a Homebrew package does not exist. AppImage Find an AppImage online at your own risk from a trusted source. Use Gear Lever (available in Bazaar) for proper system integration. \u2014 Package Layering If none of the above options work, layer the package at your own risk. Layer only if no other option works. Other Some software ships as a .tar.gz with an executable. It may run on Bazzite after making it executable in the file properties. Alternatively, use a Wine frontend (e.g., Lutris) for Windows versions. Waydroid may work if an Android port exists. \u2014 Custom Image \u2014 Intended for alternate desktop environments or software for unusual hardware; a custom Bazzite image may be required."},{"location":"Installing_and_Managing_Software/ujust/","title":"ujust Commands","text":""},{"location":"Installing_and_Managing_Software/ujust/#usage","title":"Usage","text":"

Note

Use the Bazzite Portal application as a graphical interface for popular ujust commands.

ujust commands that automate tasks using scripts which can be utilized to for system configuration and maintenance. It also can install specialized software that ships with Bazzite as an installation script by the maintainers and contributors of the project. Please note that some of the software that can be installed from ujust commands can add layered packages to your installation which is generally not recommended.

This will output a list of available commands.

Open a host terminal and enter this command:

ujust\n

ujust --choose\n

This will show a terminal user interface of ujust commands that you can choose to execute with arrow keys or mouse input.

Attention

Commands that require values or flags do not function with this method.

"},{"location":"Installing_and_Managing_Software/ujust/#manually-entering-commands","title":"Manually entering commands","text":"

Find the command you want to use and enter:

ujust <command>\n

You can search for specific commands by entering:

ujust | grep \"<search keyword(s)>\"\n
"},{"location":"Installing_and_Managing_Software/ujust/#view-each-ujust-scripts-source-code","title":"View each ujust script's source code","text":"

If you would like to see what each script does for each command then open a host terminal and enter:

ujust --show <command>\n

Alternatively, you can find the ujust commands locally in: /usr/share/ublue-os/just

Note

This directory also shows hidden ujust commands.

"},{"location":"Installing_and_Managing_Software/ujust/#ujust-script-overview","title":"ujust Script Overview","text":"

These are just some of the common Bazzite ujust script examples, there are much more available which are viewable with ujust --choose as mentioned above.

"},{"location":"Installing_and_Managing_Software/ujust/#maintenance-scripts","title":"Maintenance Scripts","text":""},{"location":"Installing_and_Managing_Software/ujust/#configurationenabling-scripts","title":"Configuration/Enabling Scripts","text":""},{"location":"Installing_and_Managing_Software/ujust/#troubleshooting-scripts","title":"Troubleshooting Scripts","text":""},{"location":"Installing_and_Managing_Software/ujust/#project-website","title":"Project Website","text":"

https://just.systems/man/en/

"},{"location":"Installing_and_Managing_Software/Updates_Rollbacks_and_Rebasing/","title":"Updates, Rollbacks, and Rebasing","text":""},{"location":"Installing_and_Managing_Software/Updates_Rollbacks_and_Rebasing/#updates","title":"Updates","text":"

Updates are automatic on Desktop images and manually done on Bazzite-Deck images, and both Bazzite variants upgrade everything at both a system-level and user-installed applications during the updating process.

Updating Guide

"},{"location":"Installing_and_Managing_Software/Updates_Rollbacks_and_Rebasing/#rollbacks","title":"Rollbacks","text":"

Swap back to a previous system update if there are major issues after updating via the GRUB menu or the rpm-ostree rollback command.

Rollbacks Guide

"},{"location":"Installing_and_Managing_Software/Updates_Rollbacks_and_Rebasing/#rebasing","title":"Rebasing","text":"

Important

Do not rebase to a different desktop environment than the one you are currently using, please backup and reinstall instead.

Rebase to Bazzite builds from the last 90 days, change Bazzite update channels, swap between the Desktop and Bazzite-Deck images, or move completely to a different Fedora Atomic Desktop image.

Rebase Guide

"},{"location":"Installing_and_Managing_Software/Updates_Rollbacks_and_Rebasing/#bazzite-rollback-helper-tool","title":"Bazzite Rollback Helper Tool","text":"

Utility to assist with rolling back to older Bazzite images, changing update branches, or swapping to a different Bazzite image.

Bazzite's Rollback Helper Utility Guide

"},{"location":"Installing_and_Managing_Software/Updates_Rollbacks_and_Rebasing/bazzite_rollback_helper/","title":"Bazzite Rollback Helper (brh)","text":"

Note

The Bazzite Portal integrates the Bazzite Rollback Helper commands into a graphical view.

"},{"location":"Installing_and_Managing_Software/Updates_Rollbacks_and_Rebasing/bazzite_rollback_helper/#purpose","title":"Purpose","text":"

bazzite-rollback-helper is a command-line tool for rolling back system upgrades or changing the update stream. Rollback to a Bazzite build within the last 90 days using a command-line utility that assists with rollbacks, rebasing, and outputs information on your current Bazzite image.

"},{"location":"Installing_and_Managing_Software/Updates_Rollbacks_and_Rebasing/bazzite_rollback_helper/#using-bazzite-rollback-helper","title":"Using bazzite-rollback-helper","text":"

Open a host terminal and enter:

bazzite-rollback-helper\n

There is also an alias which is less typing for those on handhelds or HTPC setups without a keyboard:

brh\n
"},{"location":"Installing_and_Managing_Software/Updates_Rollbacks_and_Rebasing/bazzite_rollback_helper/#options-available","title":"Options Available:","text":""},{"location":"Installing_and_Managing_Software/Updates_Rollbacks_and_Rebasing/bazzite_rollback_helper/#examples","title":"Examples","text":"

bazzite-rollback-helper list will list available bazzite images.

bazzite-rollback-helper rebase <image-name:stable> to rebase to an earlier image, update branch, or different Bazzite image (Desktop vs. Bazzite-Deck). Find a version from the list command.

"},{"location":"Installing_and_Managing_Software/Updates_Rollbacks_and_Rebasing/bazzite_rollback_helper/#rebasing-to-an-older-bazzite-image","title":"Rebasing to an older Bazzite image","text":"

Example: bazzite-rollback-helper rebase stable-40.20240930.0 (This image is an example and no longer can be rolled back to as it is too old.)

Rebasing to an image will lock you to that OS image which means new features and security updates will no longer be applied until you rebase back to the Stable update channel.

Get back to normal OS updates later after the bug has been squashed that prevents you from running the Stable update channel: bazzite-rollback-helper rebase stable

"},{"location":"Installing_and_Managing_Software/Updates_Rollbacks_and_Rebasing/bazzite_rollback_helper/#bazzite-rollback-helper-video-tutorial","title":"Bazzite Rollback Helper Video Tutorial","text":""},{"location":"Installing_and_Managing_Software/Updates_Rollbacks_and_Rebasing/rebase_guide/","title":"Rebase Guide","text":""},{"location":"Installing_and_Managing_Software/Updates_Rollbacks_and_Rebasing/rebase_guide/#what-is-rebasing","title":"What is Rebasing?","text":"

Warning

Rebasing between different desktop environments (e.g. KDE Plasma to GNOME) may cause issues and is unsupported.

Rebasing allows users to switch to a different image without having to reinstall and lose personal files and application data.

It is recommended to use the Bazzite Rollback Helper utility.

"},{"location":"Installing_and_Managing_Software/Updates_Rollbacks_and_Rebasing/rebase_guide/#rebase-scenarios","title":"Rebase Scenarios","text":""},{"location":"Installing_and_Managing_Software/Updates_Rollbacks_and_Rebasing/rebase_guide/#how-do-i-swap-between-bazzite-images","title":"How do I swap between Bazzite images?","text":"

See what channel or build you are on by entering this command in a host terminal:

rpm-ostree status\n

Check under \"Deployments:\" and the output should be similar to:

 \u25cf ostree-image-signed:docker://ghcr.io/ublue-os/[*image*]:[*channel*]\n

Switch to another Bazzite variant by entering the command for each specific image.

Open the terminal and enter:

rpm-ostree rebase <image>\n
"},{"location":"Installing_and_Managing_Software/Updates_Rollbacks_and_Rebasing/rebase_guide/#example","title":"Example:","text":"

Warning

Rebasing between different desktop environments (e.g. KDE Plasma to GNOME) may cause issues and is unsupported.

rpm-ostree rebase ostree-image-signed:docker://ghcr.io/ublue-os/bazzite-deck:stable\n

For rebasing to the KDE Plasma version of the Bazzite-Deck image.

"},{"location":"Installing_and_Managing_Software/Updates_Rollbacks_and_Rebasing/rebase_guide/#how-do-i-change-the-bazzites-update-branch-stable-testing-and-unstable","title":"How do I change the Bazzite's update branch? (Stable, Testing, and Unstable)","text":"

There are two update branches intended for end-users:

"},{"location":"Installing_and_Managing_Software/Updates_Rollbacks_and_Rebasing/rebase_guide/#the-unstable-branch","title":"The Unstable Branch","text":"

This is intended for Bazzite's core contributors and maintainers only and is used for major changes that need frequent testing. The unstable branch can fall behind updates even in the stable branch since it is testing specific major changes and is not something that is built on a schedule.

"},{"location":"Installing_and_Managing_Software/Updates_Rollbacks_and_Rebasing/rebase_guide/#switching-update-branches-in-steam-gaming-mode","title":"Switching Update Branches in Steam Gaming Mode","text":"

Bazzite-Deck images can switch branches in Settings > System > OS Update Channel in Steam Gaming Mode.

If you enabled advanced update channel, then additional options will appear. The options map as the following:

Stable (:stable)\nRelease Candidate (:testing)\nBeta (:testing)\nBeta Candidate (:unstable)\nMain (:unstable)\n
"},{"location":"Installing_and_Managing_Software/Updates_Rollbacks_and_Rebasing/rebase_guide/#example_1","title":"Example:","text":"
rpm-ostree rebase ostree-image-signed:docker://ghcr.io/ublue-os/bazzite:testing\n

For the testing branch on the AMD/Intel Desktop image.

"},{"location":"Installing_and_Managing_Software/Updates_Rollbacks_and_Rebasing/rebase_guide/#rebasing-to-older-builds","title":"Rebasing to older builds","text":"

Attention

You will have to rebase back to :stable once you want to upgrade to the newest release.

Warning

Switching to older Bazzite builds will not bring new updates until you upgrade back to :stable which means there will be no security updates until you rebase back to the stable branch.

Like rolling back to the previous Bazzite deployment, users can also rebase to a specific Bazzite builds that was were built within the last 90 days. All of your userdata will remain intact, but like how the warning indicates above, you will have to rebase manually back to :stable to update the system to receive the newest build.

View the list of available stable builds by entering:

skopeo list-tags docker://ghcr.io/ublue-os/bazzite | grep -- \"stable-\" | sort -rV\n

Rebasing to a specific build requires users to open a host terminal and enter:

rpm-ostree rebase ostree-image-signed:docker://ghcr.io/ublue-os/IMAGE-NAME:VERSION-YEARMONTHDAY\n

Example:

rpm-ostree rebase ostree-image-signed:docker://ghcr.io/ublue-os/bazzite-deck:39-20240113\n

For the Jan. 13th 2024 bazzite-deck (Fedora 39) build.

(Please note that this build is no longer available since it is past the 90 day limit and is only used as an example for this documentation.)

"},{"location":"Installing_and_Managing_Software/Updates_Rollbacks_and_Rebasing/rolling_back_system_updates/","title":"Rollbacks","text":""},{"location":"Installing_and_Managing_Software/Updates_Rollbacks_and_Rebasing/rolling_back_system_updates/#rolling-back-upgrades","title":"Rolling Back Upgrades","text":"

Swap back to a previous system update if there are major issues after updating via the GRUB menu or the rpm-ostree rollback command or using the Bazzite Rollback Helper.

"},{"location":"Installing_and_Managing_Software/Updates_Rollbacks_and_Rebasing/rolling_back_system_updates/#how-do-i-rollback-a-system-update","title":"How do I rollback a system update?","text":"

A rollback to the previous system deployment can be done by entering this command in a host terminal:

rpm-ostree rollback\n
"},{"location":"Installing_and_Managing_Software/Updates_Rollbacks_and_Rebasing/rolling_back_system_updates/#using-the-bazzite-rollback-helper-brh-utility","title":"Using the Bazzite Rollback Helper (brh) Utility","text":"

Rollback to an older Bazzite image from the last 90 days using the brh command.

"},{"location":"Installing_and_Managing_Software/Updates_Rollbacks_and_Rebasing/rolling_back_system_updates/#before-booting-bazzite-grub","title":"Before Booting Bazzite (GRUB)","text":"

Note

Controls may vary with different handhelds or HTPC setups to navigate the menu and an external physical keyboard may be required to rollback in GRUB.

Rollback can also be done in the GRUB menu (which appears before booting into Bazzite) by choosing the previous boot entry before booting to the desktop. It shows your current (:0) and your previous (:1) deployments. Your personal files will not be affected by this, and you can still update to the newest builds after rolling back.

"},{"location":"Installing_and_Managing_Software/Updates_Rollbacks_and_Rebasing/rolling_back_system_updates/#how-do-i-save-my-current-deployment","title":"How do I save my current deployment?","text":"

You can pin your current deployment with this command:

sudo ostree admin pin 0\n

In a host terminal for a backup save state of your current deployment to rollback to if a new system update causes issues.

"},{"location":"Installing_and_Managing_Software/Updates_Rollbacks_and_Rebasing/rolling_back_system_updates/#how-do-i-save-my-previous-deployment","title":"How do I save my previous deployment?","text":"

You can pin your previous deployment with this command:

sudo ostree admin pin 1\n

In a host terminal for a backup save state of your previous deployment to rollback if the current deployment has issues.

"},{"location":"Installing_and_Managing_Software/Updates_Rollbacks_and_Rebasing/rolling_back_system_updates/#how-do-i-unpin-a-deployment-if-i-saved-it","title":"How do I unpin a deployment if I saved it?","text":"

Unpin saved current deployment:

sudo ostree admin pin --unpin 0\n

Unpin saved previous deployment:

sudo ostree admin pin --unpin 1\n

View all deployment index numbers:

rpm-ostree status -v\n

Unpin saved deployment:

sudo ostree admin pin --unpin <index number>\n
"},{"location":"Installing_and_Managing_Software/Updates_Rollbacks_and_Rebasing/rolling_back_system_updates/#application-update-downgrades","title":"Application Update Downgrades","text":"

Read about the pre-installed Warehouse application to downgrade applications in the Bazaar App Store (Flatpak) documentation.

"},{"location":"Installing_and_Managing_Software/Updates_Rollbacks_and_Rebasing/updating_guide/","title":"Update Guide","text":""},{"location":"Installing_and_Managing_Software/Updates_Rollbacks_and_Rebasing/updating_guide/#updating-bazzite","title":"Updating Bazzite","text":"

Attention

It is required to have 3% free storage of your total drive that Bazzite is installed on to update properly.

Bazzite updates all of the changes made specifically in Bazzite itself, updates from Fedora's base packages upstream, graphic drivers, and user software installed from Bazaar.

"},{"location":"Installing_and_Managing_Software/Updates_Rollbacks_and_Rebasing/updating_guide/#desktop-images","title":"Desktop Images","text":""},{"location":"Installing_and_Managing_Software/Updates_Rollbacks_and_Rebasing/updating_guide/#bazzite-deck-images","title":"Bazzite-Deck Images","text":""},{"location":"Installing_and_Managing_Software/Updates_Rollbacks_and_Rebasing/updating_guide/#terminal-command-manually-upgrade-all-images","title":"Terminal Command (Manually Upgrade) [All Images):","text":"
ujust update\n
"},{"location":"Installing_and_Managing_Software/Updates_Rollbacks_and_Rebasing/updating_guide/#do-i-have-to-reboot-immediately-after-every-system-update","title":"Do I have to reboot immediately after every system update?","text":"

No, but the system upgrade will not apply until the next reboot. User-installed applications from Bazaar can be upgraded without rebooting.

"},{"location":"Installing_and_Managing_Software/Updates_Rollbacks_and_Rebasing/updating_guide/#how-do-i-view-the-changelog-for-each-update","title":"How do I view the changelog for each update?","text":"

Changelogs for each Bazzite can be found on Github.

"},{"location":"Installing_and_Managing_Software/Updates_Rollbacks_and_Rebasing/updating_guide/#metered-limited-network-connections-data-caps","title":"Metered / Limited Network Connections & Data Caps","text":"

Note

This is an unsupported configuration since updates are expected to be running daily for both the operating system and applications.

Open the System Settings of your desktop environment and turn on the setting relating to a metered connection (Data caps or incur charges). This setting will pause automatic updates for Bazzite.

"}]}