I see Bazzite is marketed to be like Steam-OS. I’ve never been interested in Steam-OS because games will be a secondary (or tertiary) computing use for me, not a primary one. But I still want to be able to play games to relax and have fun.
Is Bazzite suitable for general computing use? I use computers primarily for:
I’ve never considered an atomic installation before. It looks like Bazzite has frequent updates though, which is good. You don’t have to reinstall the entire OS and start over for each update, do you?
No you don’t, your current install will be updated. You can even turn on automatic updates and everything will happen in the background. When you do a restart or shutdown the updates will be applied.
If you take the Bazzite desktop iso, then Bazzite will behave like a normal Linux install. There is a separate installer that will install Bazzite to behave like a gaming console, but I just use the normal desktop install for my work laptop.
Whether it’ll fulfill your usecase will depend on what apps you use and Linux in general being able to do them (ie, Bazzite isn’t going to magically allow you to use Photoshop if that isn’t doable by any other Linux desktop).
Update images are provided in chunks. The more time and things changed, the more chunks you need. Rebasing to a different image (say, from Bazzite to Aurora) will take more chunks, but normal update usually need 1-15 chunks at around 100MB to, at the very most, 1.5G from my observation.
Once the chunks are grabbed, any rpm-ostree “layering” you’ve done will be re-applied and any /etc/ setting files that you haven’t personally touched will be overwritten by any new version of the files in /usr/etc/ folder of the new image chunk.
The way I see it Bazzite is geared for users who primarily game and do multimedia stuff, as it bakes in a lot of utilities and performance patches for gaming sessions, but if you’re looking for something more geared towards general use, I’d suggest also giving Bazzite’s relatives Aurora (KDE) or Bluefin (GNOME) a look. There you can get your gaming set up and running pretty quick using Flatpaks (Steam, Bottles, Lutris, gamescope, etc) or using the bazzite-arch container.
But yeah, regardless of whether or not gaming is your primary focus, Bazzite is an excellent atomic image, especially for heavy/demanding tasks.
Thank you so much. The fact that you use it for work means a lot. Unless your work is being a professional gamer, in which case it means less, but good for you on getting such an amazing job!
Can you expand a little on “rpm-ostree layering”? I’m not familiar with that concept.
My work is mainly with MS Excel, usually either with WPS Office synced to OneDrive via bpozdena’s OneDriveGUI.
So it’s like this:
You install Bazzite
You do rpm-ostree install input-remapper to install the input-remapper app.
rpm-ostree remembers that as one ‘layer’.
You do rpm-ostree install gnome-boxes to install the gnome-boxes app.
rpm-ostree remembers that as another ‘layer’.
You do rpm-ostree upgrade
rpm-ostree pulls in updated image chunks.
rpm-ostree takes in the new base image as a whole.
rpm-ostree re-applies layer 1 with input-remapper, then layer 2 with gnome-boxes.
The idea is that operations are done in order, and changes are tracked. It isn’t a perfect system, but it’s a way that user changes are retained in-between changes to the base system.
rpm-ostree is essentially the replacement for dnf in Fedora Atomic-based distro. To put it simply, it keep tracks of changes to the os, hence the ‘ostree’ part. It is how the OS it knows which chunks needs to be pulled during an update operation. It also handles rebase, which swaps out the source of your update images and swaps out any relevant chunks as well (say, swapping from an image based on Fedora 39 with GNOME installed to Fedora 40 with KDE installed).
“Layering” is essentially your custom operations that is done on top of those base images and image updates. Functionally, it’s no different from doing sudo dnf install/uninstall. What is being done, behind the scene, is that rpm-ostree ‘remembers’ each rpm-ostree install and rpm-ostree uninstall as their own layers. Each layers is then reapplied, in order, after every update.
Wow. That’s a fantastic description. Thank you so much.
How you explained it makes so much sense to me. I’m not sure whether or not I like it as a model (I see both pros and cons), but now it definitely makes sense.
Here’s just a little stream of consciousness of my thoughts on it…
I like it because it’s trivial to go back to a working base. You know your system is working, so you create a ‘layer’, and you’re good. It’s basically a snapshot, but I think more powerful (I need to learn more details to understand why I think it’s probably more powerful, but intuition is suggesting it is).
I’m not so sure I like it because I often perform actions in batches. When I have free time, I might install 3 apps. Let’s say 1 has a problem, but the other 2 are fine. Now what? Unless the problematic app happened to be the last app installed, I won’t have a layer that has what I want (just the 2 good apps).
Well you can just uninstall the problematic package, for one, using rpm-ostree uninstall package-name. rpm-ostree will just create layer with 2 of the remaining packages, with the problematic package removed. But the general recommendation is to not layer packages unless absolutely necessary, and to opt for Flatpaks for general purpose apps. For a more dedicated environment for development or other needs that require a traditional package system, distrobox containers can be utilized, such as by creating a typical Ubuntu or Fedora environment where sudo apt or sudo dnf can be used. Gaming can also be done this way.
You may wonder then, when is layering packages necessary? It really depends on the package, its functionality, and needs and preference. Typically hardware enablement packages need to be layered, such as custom fingerprint drivers for certain laptops, specific fan control utilities, and so on. This forum often has discussions about whether so and so packages are installed best within a container or as an image layer, and the solution may differ between packages.
The guide on rpm-ostree nick sent above has really good information and recommendations. In addition, you can also take a look at the Bluefin docs.
The way I see it it’s more like Bazzite’s gaming enhancements can also enhance non-gaming tasks and experience. I would say HDR is an example if it matters to you. As far as I understand, Bluefin and Aurora use the Fedora kernel, whereas Bazzite defaults to the Fsync kernel, which carries multiple other patches that will otherwise need user input to activate - for example, AMD CPU power management works the way I want it to OOTB when using Fsync, but needs to be explicitly passed as a karg on the Fedora kernel. The iGPU/dGPU switching is also a good one IMO, I don’t remember it being in Bluefin when I was using it - though to be fair I don’t have devices with multiple GPUs in the first place.
Thanks for the info! It’s been a while and admittedly I haven’t been keeping up with the branch differences, I was on latest with the Fedora kernel a while back. Now I know a thing to do over the weekend.
I don’t think Bluefin preinstalls any gaming-related packages as gaming is done with Flatpaks as opposed to Steam and Lutris being a system-level package. Read the Bazzite README to see what Bazzite includes.
Just another datapoint: I use Bazzite on my desktop for regular personal use which includes everything you’re doing except for the photo/art/3D/video editing (I don’t have experience with that stuff). It works just fine and I’m able to do the same type of gaming I could do on my steam deck.
On my work laptop, I run Bluefin and it’s been terrific. I’m in software/devops/infosec by trade and just about everything I wanted/needed was there. I did have some trouble with things like devpod but I don’t typically use those types of tools so it was more of a curiosity rabbit trail than anything.
Both spins have been super stable and overall “Just Work”.
But the overall experience is pretty neat. Nvidia driver & codec availability is great thanks to good RPM-Fusion support. Topgrade updater is an awesome time saver.
I would gladly see a standalone distro from this team sometime in the future.
It’s worth noting that you should very rarely have to layer anything. Layering everything defeats the intent of atomic setups. Layering is mostly going to be reserved for things a system has instead of things a system does. Things closer to the bare metal or that require administrative sovereignty, like a device driver or an authentication system.
By and large, you will be installing all of your apps via an abstraction layer (flatpaks, distroboxes, containers, homebrew, whatever). So managing individual apps will be kind of like you’d do it on your phone. Click once to install, maybe review the app permissions, click once to uninstall, etc. Your system remains insulated from the apps and the apps largely remain insulated from each other.
Looking over your list of requirements, pretty much everything is just going to be a flatpak. Gimp, LibreOffice, Firefox, Blender, Thunderbird, etc. You might want a distrobox/container/homebrew setup for Stable Diffusion et al. I don’t see anything in particular that would likely require layering.