Fun With Distros
I picked up a new gaming laptop for my wife this year, so her old gaming laptop has been sitting round waiting on me to throw a Linux install on it. I decided to use it for a test bed of some different distributions that I haven’t played with yet. My main gaming desktop uses Endeavor OS, which is an Arch-based distro, I have vanilla Arch installed on an old Surface laptop, and I have a VM running Ubuntu Server. I’ve used Ubuntu for at least a decade, and I’ve been using the Arch-based distros for about a year and a half now. I decided to try something different on the laptop.
Bazzite
I started out with Bazzite. It’s Fedora based and also an immutable system, which I haven’t done anything with. I kind of liked the idea of it. A core system that doesn’t change, but that you can add layers to. You can even add layers that use traditional Arch or Debian based systems using Distrobox. I didn’t get far enough to experiment with distrobox, though.
To start out, I grabbed the wrong image. I initially downloaded the nvidia-open image. Once I got it installed and tried to play some games on Steam, I realized that it did not seem to be properly loading the nvidia drivers. The laptop has a mobile GTX 1060 in it, which isn’t top of the line, but should have been getting way better framerates than I was seeing. After some consulting with Gemini, I realized that I should have grabbed the image with the proprietary nvidia drivers instead of the open ones. It was simple enough to fix by rebasing the image with an ostree command, though. The command was something like so (note I don’t remember the exact image name):
rpm-ostree rebase {imageName}
The other problem I ran into right out the gate was that whenever I opened up a terminal window, there was weird flashing. Sometimes the text would even disappear, or change into weird unreadable symbols. It even completely locked up a couple times and I had to kill it. I use the terminal all the time in Linux, so this was something that needed to be resolved. I initially found that turning off the transparency of the terminal window helped, but it didn’t completely eliminate the problem.
I tried logging in with the X11 version of Plasma only to find that it wasn’t installed by default. Using layering with ostree, I was easily able to add it, though.
rpm-ostree install plasma-workspace-x11
Once I got that installed and logged in with X11 the problems with the terminal went away. I went to launch a game on Steam, and once again the framerate told me it was probably not using the nvidia drivers. After some more discussion with Gemini, I tried using a hack where you set some environment variables on the launch command of the game in Steam. This basically instructs it to use the NVidia chip rather than the integrated graphics on the Intel chip. It is usually done with the prime-run script, but I didn’t seem to have that installed so I just created one myself.
#!/bin/bash
# NVIDIA PRIME Render Offload Environment Variables
export __NV_PRIME_RENDER_OFFLOAD=1
export __GLX_VENDOR_LIBRARY_NAME=nvidia
# Optional: Add Vulkan Layer for maximum compatibility
export __VK_LAYER_NV_optimus=NVIDIA_only
# Execute the command passed to this script, replacing the current shell process
exec "$@"
That worked great. I asked Gemini if I could just set those environment variables somewhere like .bash_profile so that I didn’t have to set them for every Steam game, and Gemini strongly advised against that as typically the system will use the Intel GPU for things that aren’t graphically intense in order to preserve battery life.
It was at this point I decided it was time to try the next distribution. Maybe I’ll come back and give it another try someday. I like the idea of the immutability and playing with distrobox, but I have other distros I wanted to try, so I felt this was a decent stopping point.
Zorin OS
I first heard of Zorin OS when reading an article on Tom’s hardware talking about how users have been migrating from Windows 10 to Linux distributions like Bazzite and Zorin OS. I thought it would be interesting to try it out as long as I was exploring distributions. It is Ubuntu based, so it didn’t really check the “different base” I was looking for, but there seemed to be enough hype that I figured I could try it for a bit.
When I went to download the .iso I was a bit surprised to find that you have to pay for the Pro version. I don’t have an issue paying for a distro, but since I was pretty sure this isn’t the distro I want to stick with, I didn’t want to do that. I downloaded the Core version instead. What does the Pro version get you? From what I could tell, it was mainly some pre-built options to mimic Windows or MacOS for the initial setup. It also says it includes software to replace over $5k of productivity software. I couldn’t find specifics on what software it included, but my assumption is that it is mostly going to be freely available options and having them bundled is mainly just a convenience so you don’t have to install them yourself.
The Core image seemed to install a modified Gnome environment. It had some neat stuff like some Windows 11 style tiling options when you drag a window near the top of the window. I’m not sure exactly what plugins they used for that, but seeing as I almost never use that feature in Windows, I don’t think it’s something I’ll try to mimic in a vanilla Gnome environment. I tried to unpin/pin some stuff in the Gnome dash, and was not able to find the option. I have not used Gnome a lot, but I had setup Gnome on my desktop to try a bit too and that was available with a simple right-click action.
Out of the box, I had to once again install proprietary nvidia drivers for my GTX 1060. Installing those felt a bit clunky from the UI. There were a list of proprietary nvidia drivers available in the “additional drivers” section of the software and updates app, but selecting one and applying it seemed to produce errors. And even when I didn’t get errors, the selection was still showing the open Nouveau drivers. I eventually got it to stick through a reboot.
With the video drivers installed, I went to install a game in Steam only to find that I had no network. I looked for the wifi settings to see if I had to connect to my network again only to find the icon in the system tray was missing completely. I found wifi options in the settings only to be told that there was no wifi device found. I tried to reboot again, but had the same issue.
At this point, I was ready to give up and move on to the next candidate.
Fedora 43
Since I really wanted to try a Fedora based system, I decided to just go with the latest Fedora workspace. I initially was going to go with the KDE Plasma image because I’m more familiar with that, but since I’m looking for something different, I decided to give Gnome a shot. The install for that went well.
I tried using dnf to install the nvidia drivers.
sudo dnf install akmod-nvidia xorg-x11-drv-nvidia-cuda
I was advised by Gemini to wait for a bit for akmods to compile the driver. After 20 minutes or so it still wasn’t showing when I used:
modinfo -F version nvidia
I tried to reboot and was told that there was a problem with the nvidia drivers and it was falling back to the Nouveau drivers. After a bit of searching and discussion with Gemini, I realized the linux headers weren’t installed, so trying to compile and install the kernel module was failing. Then when I tried installing the headers it installed the wrong version. Once I eventually got the right version of those installed, a few quick commands got the kernel module up and running. After a reboot, all was good and I was using the propietary Nvidia drivers.
I got Steam installed and installed a game and everyhing ran pretty well. I decided to also play around with Gnome on my main desktop system to give it a shot. I’ve been running Xfce there for quite a while, and before that was running KDE Plasma. I figured I might as well go all in on testing Gnome a bit. I’ve been finding a lot of little things I miss from Xfce, though. I’ve slowly been getting Gnome into a usable state for me, but I’m not sure how long I can hold out. I started thinking that for something truly different, maybe I should look at a tiling window manager. A couple YouTube videos later and I think I want to try Hyprland.
I may write another post later on my experiences with different desktop environments, but this newfound desire to try Hyprland plays right into the next distro switch, which is why I mention it here. I went to try and install Hyprland on my Fedora install only to find out it wasn’t in the official dnf repos. After a bit of searching, I found that officially, the preferred distributions for Hyprland are Arch and NixOs. I’m already pretty familiar with Arch, so NixOS became my next target. NixOS seems way different from the rest so I figured it would be fun to try.
Sorry Fedora, it’s nothing you did wrong. I may install you on my old Surface laptop to give you more of a shot. I’m not sure I like the whole reliance on Flatpaks, but I still want to spend a bit more time trying you out. You seem like a good middle ground between Ubuntu and Arch.
P.S. I did install Fedora 43 on my Surface laptop to play with it more. Currently running into an issue with constantly losing the wifi adapter, though. I’ll probably try and work through it there and may report back later.
NixOS
The NixOS install started out pretty well. I like the idea of being able to make updates to the configuration file to add/remove system level packages. It’s going to take a bit of getting used to, but I think I’m going to like working with it. I started out with some of the basic packages like vim, tmux, git. I then pulled in some config settings to add Hyprland as an option to boot into in GDM. That all went great.
The one big hurdle I ran into was with setting up the proprietary Nvidia drivers. I was getting tips on this from Gemini and was given some outdated information that I had to frequently double check. Somewhere along the way, my latest image became unbootable. I’d get to the GRUB screen, but then it would just sit at a blank window with a flashing cursor before ever loading up GDM. Luckily, NixOS makes it super easy to boot into one of the many previous images that were built. I think I’ve got that everthing resolved now and have tested out a couple games with great results.
I did run into issues trying to get swaync installed to use with Hyprland. Gemini didn’t seem to be leading me in the right direction to install just that without the full Swan package. It seemed like I should have been able to just add swaync to the NixOs system packages, but that kept giving me errors about being undefined. I didn’t see anything obvious on my searching, though, so I decided to give up on that for now and instead installed mako for a notification system. That seemed to work great so I am going to stick with that.
I think I’m finally going to settle on this distro for this laptop for a bit. NixOS is feeling like a distro I can really get behind. There have been little bumps, but I find myself wanting to push through those to get things working. I still have some configuring for Hyprland, but I have things functional and that’s going to be a bit of a journey of its own. I’m looking forward to seeing what all I can do with it. My initial thought is that it is going to be a lot of fun and really feels like you can “make it your own.”
P.S. Possible future topic is the use of AI for troubleshooting. There are some great things about it, but it can also lead you down the wrong path. Sometimes it’s best to just RTFM.