Switching to NixOS from Fedora Atomic

I finally decided to switch from Bluefin to NixOS!

Bluefin has served me well, but I've run into some major issues. I don't have anything against Fedora, and I'll continue recommending it to new Linux users. However, I can no longer recommend Universal Blue.

What I loved about Bluefin

Bluefin is a Fedora Atomic-based Linux distribution with a more "batteries-included" experience. Unlike Fedora Silverblue, it includes device & GPU drivers, Tailscale, and some GNOME extensions by default.

1. Stability: Bluefin was very stable for the entire time I used it. I never really ran into any major breakage or issues with updates. The performance was incredibly consistent, and I never noticed latency spikes or audio glitches.

2. Pro Audio: Bluefin was the first distro I've used where I never ran into an issue with my DAW or other audio software. Everything just worked out of the box! That was a really nice change coming from Fedora, where you generally have to do at least some manual configuration for professional audio setups.

3. Convenience: RPMFusion, device drivers, Tailscale, and other common applications being included by default was honestly very refreshing.

The issues

That being said, there are quite a few issues I have with Bluefin and the Universal Blue project as a whole.

1. "Cloud-native": I really don't like the "cloud-native" philosophy that so many of the Universal Blue developers push. I think the "cloud" is a terrible idea for OS development. It has it's uses, but something as security-sensitive as an operating system should not be using the cloud.

"The cloud" is essentially just servers that you don't control. I don't trust the OS images I'm using to be built on any cloud servers, let alone servers controlled by Microsoft! Universal Blue uses GitHub for builds, and that makes me very uncomfortable.

2. Universal Blue Community The Universal Blue community, especially Bazzite, can be unfriendly and unhelpful (especially on Discord). I've tried to talk to them about it multiple times in the past, and I thought things were getting better. However after looking into it again, it doesn't seem like it has.

That makes it very hard for me to recommend Bazzite, Bluefin, or any of their other distros to other people, and makes it hard for me to trust their team.

3. GNOME Development: I want to work on GNOME's DRM leasing implementation, and that's just difficult to do on Atomic distros right now.

4. Virtual Reality: Using VR on Bluefin requires some extra manual configuration, including layering packages on top of the base image. Package layering makes the OS slightly more unstable and kind of defeats the purpose of having a unified image.

Another huge issue is that Bluefin's kernel doesn't include the necessary patches for the Bigscreen Beyond and Vive Pro 2 to run at max resolution. There's currently no good way to use an alternative kernel on Fedora Atomic distros without building a custom image. Which again, is practically required to use GitHub.

5. GNOME Customization I prefer a more Vanilla Gnome experience, and I'm not a fan of the custom configuration and extensions they added. It's fairly easy to disable, but I'd rather not have it included in the first place. I like the way Fedora handles this wayy more.

Why I'm choosing NixOS

Immutability and container-focused workflows are amazing, but everyone's system (especially developers') is going to be at least slightly different. Trying to make a single image that fits everyone's use case is really not feasible.

This is where NixOS fits perfectly! NixOS allows you to specify your own image configuration in a declarative format. It's easily customizable for any use case, while staying reproducible and reliable.

I've been using NixOS in a VM for a while now, and it's been just as stable as Fedora. I don't think I'll have any issues switching to it in that regard. The only issue I have with it so far is the lack of remotely-signed secure boot.

The future of AtomicXR

A few months ago, I started the AtomicXR Project , which makes it easy to install & configure XR software on Fedora Atomic-based distros. As far as I know, this is still the only easy way to get a full VR setup working on Fedora Atomic-based distros.

As of now, I plan to continue maintaining the AtomicXR CLI and Homebrew Tap. However, development might be slower, and I won't be adding many new features. I started a Zig rewrite of the CLI that would've greatly improved the UX and stability, but I don't plan to continue at this time.

The AtomicXR Homebrew Tap will be updated weekly, and bottles will continue to be built. Envision should update automatically with axr envision upgrade.

If you have a major issue with AtomicXR or notice breakage, please open an issue and I'll try to resolve it. I love contributing back to the VR on Linux community, and maintaining AtomicXR is still important to me.

If you are interested in maintaining AtomicXR (whether it is the CLI or Homebrew Tap), please reach out ! I would be happy to provide the WIP source for the Zig rewrite if you're interested in completing it.

Future Projects

I don't think that NixOS inherently has to be developer-focused. I want to build tools that make it easier for the average person to use NixOS without knowing the Nix language or editing config files manually.

This should hopefully provide a better alternative to Universal Blue for XR, and allow more people to take advantage of Nix's amazing architecture. Keep an eye on this blog and my Tangled profile if you're interested!