If you want to read the story of how and why I switched over to Linux, check this previous post. Today I’m mostly going to share some general thoughts on the operating system, and then get into details on some of the stuff I installed or configured on it. This includes efforts to achieve parity with what I had on Windows, as well as some new stuff I hadn’t done before.
Overview
I’ll kick off by saying that I think the distro I picked, Bazzite, is great.
Its ‘immutable’ nature includes good guardrails to prevent enthusiastic amateurs breaking their OS, but you will still find yourself able to follow various guides that involve e.g. use of the Terminal and grasping new technical concepts, which is a great way to dip toes into the Linux waters.
The OS is clean and performant, and the basic GUI layout – taskbar, ‘start’ menu, desktop etc – will be familiar to Windows users, especially those who long for earlier eras where Windows could be cleaner and simpler. A wide range of software can be installed with a few clicks from the Bazaar, a frontend you can search or just browse categories in.
Updating the OS and most software is a doddle. You basically select an option from your start menu and it executes a script in the terminal. You’ll occasionally select an option to tell it to proceed or whatever. You can read what it is doing, if you want. A nice and simple way to start to demystify the terminal, if you ask me. The only time this went wrong was when I had failed in some efforts to install something, and didn’t know how to clean up the mess. I was able to fix that, but I can see others being confused, and blocked from updating their OS – so I’ll include mention of those experiences here, in case that is useful.
Software not installed via the Bazaar may take more effort to update, but as we’ll soon see, most of what I ended up running was via the Bazaar.
Gaming
I won’t go too deep on this. It could be a post all to itself, really!
As noted in my last post, some stuff works better – Stellaris, for example, loads much faster! Other stuff doesn’t work so well. I’ve found some games where the frame rate was appalling (e.g. We Were Here Together) or everything just felt somewhat laggy in a way that undermined the experience (Void War, Starship Troopers: Terran Command, Terra Invicta). Sometimes I was able to fix this (I forget how I got WWHT to a playable state, but I did manage it), and in some cases I just gave up.
It’s worth noting that the CPUs in my computer – specs in the last post – are the system’s weakness. Newer machines are plausibly less likely to struggle on these points. I can’t comment beyond my own setup. As far as I understand it, I am basically CPU-bound, with low clock speed available for any given thread. I am perhaps also slightly hamstrung by weaker driver support for Nvidia GPUs, although again, I have to note that at some point frames drawn by your GPU still need to be passed through your CPU.
An application called Tuned Switcher on the Bazaar can be used to set different performance modes on Bazzite; the OS apparently defaults to a balanced or power-saving option, which cannot be modified in system settings. I don’t know much about the impact of these settings, and some of the Bazzite developers seem to be of the opinion that it either doesn’t matter or is safer to use their default setting. It didn’t make a massive difference with my main use case, Helldivers 2, although I feel it helped a little.
I spent a lot of time trying to optime Helldivers 2, which at the time of the OS switch I was playing regularly. In certain missions I was experiencing under 10 FPS. I also experimented with forcing different DirectX and Direct3D versions, with adjusting different in-game settings, and so on. Trying different Nvidia driver versions was not an option, as these are system-bundled in Bazzite (this is actually good and an effort-saver since I’m dubious that using older Nvidia drivers would help anyone, except in rare cases). I didn’t bother trying different Proton versions with Helldivers 2, though I did with other games. In the end I concluded that I was basically just CPU-bound. I’ve subsequently learned that there may also be a shader cache size issue here, but that’s not something I’ve played around with yet.
TL;DR, running newer games that can be demanding on Linux can be a problem if your hardware is weaker on the CPU or GPU side. Apparently AMD driver support is much better/smoother than Nvidia. Because some games lack native Linux support and run via Proton, it’s possible that on systems with hardware limitations, you may see worse performance than on Windows. In other cases you may see superior performance. So it’s a mixed bag. I mention this because I’ve seen people on Reddit, forums etc saying that they switched to Bazzite and their performance was all improved. That has not been my experience.
Retro gaming
On retro gaming, the Heroic launcher, which is included with the OS, seems great. It’s also an open source project not directly associated with Bazzite. I rate it two massive thumbs up.
Some old Windows games such as Battle Isle 4: Incubation and Fallout just worked immediately. Awesome!
I had issues with one old game I wanted to play, Deadlock (1996). I followed this up on the Heroic Discord and found the folks there extremely helpful. In the end, my solution was to grab an old DLL from a hopefully-not-dodgy website and stick it in the game folder, and then rename a different DLL to circumvent a different launch problem, after which the game worked great.
So again, Linux retro gaming can demand some effort on your part to get things to work, but you can say the same thing about PC gaming on Windows, especially with older games. And it slightly blows my mind that I can monkey around with some 30 year old Windows DLL files in a Linux filesystem and then run a game designed for Windows 95.
Now, let’s move on to software…
SublimeText
I love SublimeText. I think it’s the best text editor out there. It is powerful and full of features, and it’s extensible with plugins. But it wasn’t in the Bazaar, so I had to look at installing it in a Fedora Distrobox Container. After spinning up the container (all done through a UI) I installed the application itself via a Terminal running in that container, after which I ‘exported’ the application to Bazzite via Distroshelf.
From online discussion it sounded like a container may need tearing down and recreating every couple of years. However SublimeText itself should have continuity as the config and user data are in the main OS home directory.
Okay, so this is already quite complex for those who just want their OS to work for them. That said following the various guides linked here was very easy and I got it running without issue. (At the end of the day, the secret of a lot of ‘advanced’ computer usage is searching stuff, reading the results thoughtfully, and trying stuff cautiously; then gathering and applying knowledge and experience as you repeat this process over time.)
However, the application was a little slow to launch – probably because it was running from within an OS image – and there’s a minor cosmetic issue with app icons – something to do with Wayland and developer support – that I didn’t like.
In the end, because I don’t need to use SublimeText’s advanced features at home, I ended up stopping and destroying the container and just using the Kate text editor instead, which seems very solid and was already included in Bazzite.
Qbittorrent
This open source torrent client was available in the Bazaar and thus trivial to install. The only complexities were around setting it up to use my larger NVME hard drive, rather than the small SSD the OS is installed on. (This setup is a side effect of the accidental full transition to Linux described in my last post, and the fact that my motherboard only supports one NVME drive that’s connected via a PCIE card.)
I was a little surprised that the drive to download to was then not found via usr/mnt/ where I expected additional mounted drives to appear but rather under /run/media/bazzite/. I still find it a little weird that in the directory structure the drive is identified by a long hash string, rather than a short name I gave it, but this is probably unimportant.
I initially had a few issues after setting up the torrent client and getting started. On one occasion previously functioning torrents gave I/O permission denied errors. This was fixed by deleting the tracker and then re-adding the same torrent file. On other occasions, the torrents were fine in the client but weren’t correctly reporting back to my account elsewhere, breaking some necessary tracking. This seems to happen after rebooting the OS, and again necessitates deleting and re-adding the torrent.
I don’t know why this happens. I suspect something to do with the startup sequence around drive mounting, network connection, the torrent client, and the tracking. So maybe I could ‘fix’ this by creating scripts to start things in the desired order, or by just manually launching the torrent client each time I restart the PC. But basically I don’t know. Fortunately I don’t use many torrents so occasionally manually fixing a few is not a big deal for me.
Calibre
Installing this was very easy, but I was worried about importing my old library. It had over a thousand ebooks, and had been managed on Windows. Would I lose and have to rebuild the entire library?
The answer was no. I followed a guide found on Reddit and really the process was as simple as popping the old library folder in a location, and telling Calibre to use that directory.
Adobe ASCM DRM
I generally avoid DRM books, but sometimes it’s a necessary evil. A lot of ebook DRM is handled by Adobe, arguably the most enshittened company in software. The software for actually getting access to the books you bought is clunky and shit on Windows, and naturally installing that on Linux would have been both annoying and unwelcome. So I expected a solution for this need might be a little painful.
Actually, though, it was also simple. Again, thanks to excellent guides from prior travellers. I followed this great guide.
The only point of divergence from what Michael Harley describes is I did need to manually export the DeASCM key and import it into the DeDRM plugin (described in the setup steps for DeASCM) as that didn’t appear to have happened automatically, but otherwise, this was very simple.
I’ve not tested with an actual purchase yet, but it worked with a test ASCM download from Adobe, so looking good.
Dropbox
This could be installed via the Bazaar, although a lot of people have posted about running into issues… anticipating this, I leaned on this thread. Basically, add your home path in the flatseal config before launching, then sign in.
Unlinking old devices was a minor hassle as that web page wouldn’t load in my browser, but I addressed that via the Android app. The syncing itself now appears to be working just fine.
Kodi / Plex / Jellyfin
I’ve been thinking about setting up a proper home media server for a while. For the past eight years I’d been using LG’s slow, clunky SmartShare app to make videos on my Windows computer available on our TV. I knew better alternatives were available, but if you have something that works then it’s easy to just live with that. Of course, that app was not available on Linux, so I finally had the push to explore something else.
Kodi, Plex and Jellyfin were all available via the Bazaar, so I installed all of them to try out different options.
Initially I set up Kodi to run a UPNP volume on the local network to access video files via our television’s ‘sharing’ app, which worked similarly to the LG SmartShare app. There is a Kodi app you can install on the TV, but you’d need a rooted/developer mode TV to sideload it, and after a brief look as what was involved decided I didn’t fancy that as a project at the time. Instead, the UPNP approach was the easiest way to achieve parity with what we had, and was dead simple. Everything was immediately detected on the local network and just worked.
Since then I’ve set up quadlet containers for both Plex and Jellyfin, following the simple guide here on Youtube and here on Medium.
Both those platforms have apps available via the LG content store, and setup and signin was a breeze. The guide was detailed and clear and now I can access my files using either. At present I prefer Jellyfin as its app is more performant on our TV, and it is open source.
Something the guide doesn’t explicitly mention is how to add new paths to the list of volumes, e.g. if you initially set things up for just video and then later want to add music, as I did. In this case, simply update the list of volumes in the container file, then stop the service, reload the daemon and start it again (all steps as described in the initial setup).
1Password
A password manager is essential these days, and unfortunately they can be a bit complex given how they integrate with the OS to securely communicate with other applications.
There were two options here. One was to use rpm-ostree via the terminal to install it, which would offer a more advanced and feature-rich version of the software. I briefly dabbled with this, but ran into issues I didn’t understand. As far as I can tell, there was a problem writing GPG keys into /etc/, so this was very much something I didn’t want to ignorantly flail at.
I then installed the flatpak version using these instructions. The more basic version should be perfectly adequate for me. I need to manually copy and paste credentials from the manager, but I am old and remember when this was the standard anyway – hell I’m old enough to remember needing so few passwords you just remembered them all – so I can live with it.
The failed rpm-ostree approach left some minefields which tripped me up later…
iDrive
This is my cloud backup solution. I’m pretty paranoid about data loss, so among other solutions I choose to use a service like this. Setting this up was the biggest faff so far. I followed these instructions but ran into issues during install as crontab is not used in Bazzite (systemd is instead) and this could not be automatically resolved, so I needed to fix the dependencies myself.
I then found some info and used rpm-ostree to install crontab. This itself ran into issues due to the aborted attempt to set up 1password with layering – see above – which I circumvented by changing a couple of states in a yum config file to disabled. Then I was eventually was successful in installing crontab, and then able to run the iDrive installer. Once that was done it was smooth sailing.
It felt weird to be using a CLI (command line interface) rather than a GUI to interact with iDrive, but it seems to work okay. I later found that after all that effort, the backup scheduling didn’t work, and crontab thinks it isn’t installed anyway. Eh. Well. Something to fix in future, or I can look at running a script to execute iDrive backups myself.
Fortunately for most normal people, they probably don’t use a service like this anyway. I guess the makers of iDrive assume that someone who uses Linux, and who also uses a cloud backup provider other than the basic consumer options like Dropbox or Google Drive, is a quite technically-minded person. Get with the times, iDrive! It’s the year of the penguin, probably!
Fixing more issues from that botched 1Password install
After the above two installs, when I next ran a system update I ran into a problem. Bazzite was trying to run updates on installed applications, but when doing so it was checking a list of repositories. Among those repositories was a 1Password repo from the failed rpm-ostree install, and after checking that repository the update process would fail out due to the same missing GPG key problem. Cool cool cool.
This worried me as naturally I want to be able to update the OS. I wasn’t sure how to fix this. In the end, I deleted the 1Password repo file from the system directory it was sat in, and this unblocked the updater. It doesn’t appear to have caused any subsequent issues. As noted above, though, all this stuff with GPG keys was over my head. I mostly mention this to highlight that you can still fuck up with Bazzite, and not know what to do. But even in such cases, sometimes a dumb simple solution can work. Not too scary.
Conclusion
That’s a good place to end, isn’t it? Bazzite: not too scary. Linux in 2026: not too scary.
I have since beginning this journey bought myself a new PC. I’ll be keeping the old one too, perhaps using it as a server. The new PC came with Windows, but I plan to correctly this time set it up to dual boot with Linux.
I know I like Bazzite, but I’m thinking I might next give Pop! OS a try. It’s maintained by a PC building company in the USA which I’m a little uncertain about, but I hear it’s a solid OS and works well – and it’s not immutable, which is the logical next step for me to try.
