KDE Linux has an “immutable base OS”, shipped as a single read-only image. Btrfs is the base file system, Wayland is the display server, PipeWire is the sound server, Flatpak gets you apps, and Systemd is the glue to hold everything together.
I’ve been interested in the immutable OSes like Bazzite, but I haven’t tried any yet. Anyone else have experience with it?
Yes. It’s awesome.
Bazzite on my gaming rig: no time lost on applying updates and doing mantenance, only games.
Bluefin on my dad’s laptop. He’s super happy with it, and it looks enough like MacOS to satisfy his tastes. He’s been using it for about a year and he hasn’t broken it yet. And he’s able to break every single piece of software he looks at.
FYI my main laptop runs Fedora, which is already low maintenance enough.
I recently installed it on a new SSD I bought. The installation was very easy compared to the Linux Mint installation I did, Mint sharing a SSD drive with Windows.
The KDE environment is very nice, sleek, better than Mint Cinnamon IMO, but I still encountered technical problems, like I did with Mint. Linux handles desktops differently and seems to always mess up on my PC configuration. I was able to fix things on both Mint and Bazzite, but Bazzite has more functionality. The sticky edges are very nice, the desktop widgets have tremendous potential, and I can configure slideshow backgrounds separately for each monitor, with separate folder(s). The moving and adjusting window sizes is so much better too in Bazzite over Mint. I don’t like how Linux can only have one desktop, and other monitors have a weird ‘shared’ folder to represent other desktops. Moving items from one monitor to another is weird, creating copies instead. You cannot do the same things on all monitor desktops, options are literally not there if it’s not the main desktop.
It seems none of the Linux distributions are compatible with NTFS file system that Windows uses. This is because NTFS is proprietary, and that makes it really hard to support, forcing Linux devs to reverse engineer it. Bazzite recommends btrfs file system, which you can setup in the installation if you are doing the whole SSD (not dual installing.) Bazzite recommends physically removing any drives that have WIndows on it before the installation, but I saw some tutorials ignoring it, and I did as well, and it installed just fine without touching the Windows/Mint drive. I wish the documentation was a little more thorough in explaining the ‘why’ so that learning is easier. Instead it tells you to do stuff blindly, and you might know if it applies to you or not, a common problem I found with Linux documentation. In Mint, I could setup mounting other internal drives automatically without much trouble. Bazzite does not support this at all unless they are using a Linux format like ext4 or btrfs. I have to manually mount NTFS drives on every single logon to the PC, which is quite unacceptable for me. I’m not willing to ditch my current windows setup until I am comfortable with Linux, which I am not at this time.
I was able to get some games up and running very quickly in Bazzite, faster than Linux Mint, and installing other programs through the Bazaar app was a breeze. Factorio was a bit of a problem, because the Heroic app installs only one version of the game, and Factorio has experimental builds I played on. I learned a bit about Linux through that, like how permissions are tied with executables, not extensions like Windows does. I was able to create a shortcut, as well, that linked to the game and the icon pic. The process was pretty easy once I knew how things worked.
Then I tried to import my Windows Firefox profile into Bazzite with little success. I don’t want to use Firefox Sync because it seems to always choose the wrong browser to copy over, erasing the one I want to keep. Manually moving files seemed the best option, but finding the installation folder is impossible for a newbie to the file system like me, and the Firefox button to open the folder didn’t work. I managed to make a new profile in a local folder, in my user folder, and then transfer the profile over. It seemed to work until I logged on the next day. Firefox wouldn’t launch, giving me an error, not finding location of the profile folder. It seems that the atomic nature of the OS is making things like this very difficult, as I suspect it’s a permission issue or a persistent configuration issue, but I’m not sure. I also installed Vivaldi through the Bazaar, and installed ublock origin extension manually (because google doesn’t allow it anymore through their store). I noticed the extension wasn’t installed the next day too, probably a similar problem with Firefox. I know Firefox has a way to launch by selecting a profile first, through a profile manager, but haven’t looked into how to do that on Linux. It’s the “-P” launch instruction on Windows, which was easy to find, but not sure if it works on Linux or has a different method. The profile manager would only be a temporary fix, but I instead jumped back to Windows. I still haven’t found a way to make it work, mostly because of time and effort for a new person to Linux. Maybe eventually I will find the answer, because I really do want to ditch Windows eventually.
Bazzite updates can uninstall programs you have without any notice, mostly the programs that it comes with innately, which upset some people I saw on some forums. They liked using some of the programs, and didn’t like how they couldn’t opt out of those changes. It hasn’t affected me, but it could in the future. I mention it as a concern for those looking into Bazzite. But I think Bazzite does allows you to install almost anything you want, in different ways, mostly in container like apps, even Android and Windows apps. But it’s still kinda a pain switching files to new locations especially if it’s anything like the Firefox profile folder transferring problem.
After rebooting Bazzite for the first time, I noticed Grub didn’t seem to show up anymore upon booting, loading into Bazzite immediately. This made me go back into the bios and rearrange the booting drives, setting Mint to load first, like I had before installing Bazzite, and turned off a backwards compatible option of the booting options (forget the name of it), reducing the total booting options listed. I’m not sure what happened in the background, but Grub now saw all of my installed OSes, having Bazzite 0 as the top option, which I was perfectly fine with, and felt lucky with the order it made. (Bazzite has two booting options: 0 being the most recent update, 1 being the previous update). But now my Grub timeout was set for 3 seconds instead of the 10 seconds before. That was way too quick for me. Eventually I found out how to modify the grub configuration in Bazzite and find the command to update the grub. I almost used the wrong technique used on Debian Linux installations, but the atomic nature of Bazzite stopped me from making new scripts in the “src” folder. I’m not sure if there were other precautions even if I managed to place that script. I only tried to make the script because the Debian command to update the grub didn’t work, another newbie blunder.
I found the documentation of Bazzite very sparse, and not really suited for someone that only knows Windows wanting to move to Linux. Mint has better forums and documentation. Bazzite gets the main stuff okay, but not full documentation, and almost no links to pertinent sources, like KDE documentation that could have been useful. Some of the documentation is also buried in Bazzite’s github repository as well. Some forums suggest looking at other similar distributions for technical information and help. Bazzite is based on Fedora, specifically atomic versions, like Fedora Silverblue. Fedora’s forum is much more active and has more information, even a dedicated tips and tutorial section.
Despite the problems, Bazzite is still the best Linux distribution I have tried (also tried Ubuntu a decade ago), and I hope to over come the problems, but it can seem like an inscalable wall when new to Linux, but probably looks like a little hill or road bump to experienced Linux users. I’m not sure of how much experience you have with Linux, but wanted to share my foray for others as well on the fediverse wanting to try Linux. Thanks for reading. Cheers.
This was a great read and nearly mirrors my experiences with immutable distros as well.
I jumped ship from windows into Debian at first and after running into a lot of strange issues (mostly self inflicted) I decided I liked the idea of an immutable distro + containers to keep me on rails and prevent me from nuking things I shouldn’t.
I went with Aurora DX initially but decided to switch to Bazzite DX instead (which just took a single rebase command since they’re both based on Universal Blue. That was very cool) In theory it sounds great but I’ve run into issues with containers that I don’t understand. Specifically it seems like a permissions issue or something to do with the way my file system is set up. I tried installing a .deb into a debian container (same version and same .deb I had already installed just fine on Debian previously) but the container kept throwing weird errors about missing files. The path in the container error seems like it doesn’t exist and even if I remake the container with a custom root directory I get the same error. Just very weird stuff like that.
I wish I could hop on a discord call with someone who is familiar with this stuff and have them walk me through some of this. I’m definitely not going back to Windows so I’ll figure all this stuff out eventually, but its a bit of a struggle right now.
I’m still new to Linux, but your problem sounds like you installed a system package of the application that requires dependencies that are not installed in with the container, and wasn’t installed along side the application. Every single system application I installed with Mint, through the Mint package manager, would always install extra dependencies that the main app needed to run. I would try to use a flatpak version of the application, either in the Bazaar app itself, or in the Debian container. I haven’t messed with distroshelf/box yet, though.
Thank you for sharing your experiences. It was an interesting and in-depth read.
I have moderate Linux experience. I used it in University and can do basic things in the terminal, but I don’t have the best foundational Linux knowledge. My laptop is currently on Opensuse TW and was wondering if it was worth keeping it, or if my life would be simpler on an immutable distro.
I would like to use it for programming, game development (Godot) and music production (Reaper / MuseScore and Kontakt). Getting these working in Opensuse was finicky, but I got it done, and now I’m wondering if it’s worth blowing that up to start over.
Thanks again!
Bazzite is very solid, it just keeps working
I tried VanillaOS for a bit but not for long enough to really get into it. One challenge I had was limited Linux experience, and Vanilla wrote their own everything. I found it to be a bit too much for the light experimenting I like to do.
Haven’t tried any others yet.
+1 for immutable, been using Bazzite since last year.
They’re good as a gaming/day to day use distros. It’s a bit annoying when you start needing to install things on the root level. It’s doable, but not as straightforward as on your regular distro. I have bazzite htpc as my basement steam console and it’s been fantastic (one issue with suspension but no big deal, I just shut it down when I’m done).
I also have it on a laptop that I use sometimes before bed to watch something or do something on the browser. They’re great if you want something that just works.
My main rig runs cachy OS.
I used Fedora’s atomic KDE version for a bit. It’s mostly fine and never had too many issues. Except trying to run VMs.
Is that why running a Win11 VM on Bazzite sucked so bad? It absolutely crawled. I finally just reinstalled Windows on another drive to be used for nonWine friendlies.
It does sound like it could become a solid option for people wanting to ditch Windows and want a simple, easy to use distro that just works out of the box with GUIs for everything they’ll ever want to do so they never have to touch the oh ever so intimidating terminal.
Well, only the base OS in /usr is immutable; /etc is writable for making system-level config changes, and your entire home folder is of course yours to do what you want with, including installing software into it. So that’s what you do: use Discover to get software, mostly from Flathub at this point in time, but Snap is also technically supported and you can use snap in a terminal window (support in Discover may arrive later).
That’s fine for apps in Flathub and the Snap Store, but what about software not available there? What about CLI tools and development libraries?
Containers offer a modern approach: essentially you download a tiny tiny Linux-based OS into a container, and then you can install whatever that OS’s own package management system provides into the container. KDE Linux ships with support for Distrobox and Toolbx.
It sounds like more work for the user than a single system-wide package manager. And in my experience there are some applications that are not designed for sandboxed installations, where you have to fiddle around with the sandbox settings to get things to work. I’ve become frustrated by this in the past and ended up going back to system-level, unsandboxed packages. Likewise, managing containers for CLI applications can be great or it can be a pain for similar reasons. Some things are just easiest when fully integrated with the OS, though it brings security and stability risks. So I haven’t been won over by immutable distros yet but I’ll be interested to see whether KDE Linux can soften some of these hard edges for the user. It sounds like they do want it to be viable for non-experts coming from Windows.
This project sounds pretty cool, I’ve always liked KDE, run Neon for many years. I’ll surely keep an eye open when this comes out of alpha.
I really hope they make it so you can very easily customize and then make an installable copy of your system, like MX Linux does.
Currently making one for my mom and dad in MX since they’re basically the only ones who have something like that these days, and their Linux installs are too old for them to update anymore.
Shipping them a USB with an installer that’s easy to use with the software they’ll use already installed, and Librewolf already configured, would make this awesome.
I use Bazzite for game development. Very rarely have I had an issue installing anything, although you sometimes do need to use brew or distrobox, and you can still layer in RPMs if you want to extend the base image pretty easily. For most users flatpak should be fine. It’s been very solid for me, and more importantly I recommend it to people who may not want to spend a lot of time troubleshooting their os. Hard to break and if you manage it, easy to roll back. I’ve been generally impressed enough with the ublue images that Aurora and Bazzite are pretty much all I recommend to people transitioning off windows.