I’m preparing for a new PC build, and I decided to try a new atomic OS after having been with NixOS for about a year.
First I tried Kinoite, then Bazzite, but even though KDE has a lot of features, I found it incredibly buggy, and it even had generally poor performance, especially in Firefox. I don’t really have time to diagnose these issues, so I figured I would put in just a little more effort and migrate my Sway config to Fedora Sway Atomic.
I’m glad I did. The vanilla install of Fedora Sway is awesome. No bloat and very usable. I haven’t noticed any bugs. Performance is excellent. And it was very straightforward to apply my sway config on top without losing the nice menu bar, since Fedora puts their sway config in /usr/share/sway
.
I’m also quite happy with the middle ground of using an OSTree-based Linux plus Nix and Home Manager for my user config. I always thought that configuring the system-level stuff in Nix was the hardest part with the least payoff, but it was most productive to have a declarative config for my dev tools and desktop environment.
I originally tried NixOS because I wanted bleeding edge software without frequent breakage, and I bought into the idea of a declarative OS configuration with versioned updates and rollback. It worked out well, but I would be lying if I said it wasn’t a big time investment to learn NixOS. I feel like there’s a sweet spot with container images for a base OS layer then Nix and Home Manager for stuff that’s closer to your actual workflows.
I might even explore building my own OS image on top of Universal Blue’s Nvidia image.
Hope this path forward stays fruitful! I urge anyone who’s interested in immutable distros to give this a try.
Hell yeah! I’m on Bazzite, myself. I’m ok with KDE but might swap it out later. Did you rebase to get from Bazzite to Sway?
I think the ostree stuff is really neat. Nix sounds like a great complement to it, I guess you can configure it to install to /var pretty easily? I think I’d prefer that to brew.
I’ve been interested in ostree so much that I’m moving a few other things over to IoT. Building your own makes too much sense, updating layers is so slow. I’m trying to use
rpm-ostree compose
to make my own version of IoT but I am struggling to modify the containers it builds or turn them into ISOs. All of their tooling is needlessly complex.I just clean installed Sway. The last time I tried a rebase from Kinoite to Bazzite it left me with a weird set of flatpaks and removed Firefox somehow. Probably wasn’t a big deal but it was easy enough to start fresh.
And yeah Nix store can live in
/var
. That’s where it ended up when I used thenix-installer
provided by Determinate Systems.Hmm what you say about the ostree tooling is unfortunate. I was hoping to make my own image at some point. What specifically is overly complex?
There’s a warning against this in the Bazzite FAQ, so that’s not too surprising. It’s referring to DEs, but different “distributions” also applies I presume. I hope that becomes solved in the long run, as it is one of the current downsides with Silverblue etc
The problem I’m running into is attempting to create an image fresh from the yaml “treefile” and building on that. I think I know what they’re using but the documentation on how to reproduce the build isn’t great.
I’d also like to isolate the build into containers, which makes the whole thing harder because the build process uses containers and loop devices.
You might get up and running faster if you start from an existing atomic distro and layer packages on top. The ublue-os repos have an automated script that you could use as a reference.
Gotcha, lack of docs is tough.
Ideally I would use an existing atomic distro with both Sway and Nvidia drivers, since I’m currently failing to install those drivers without getting black screen on boot (the issue).
Oh dang that seems like a nightmare. It does seem like it is going through some growing pains particularly with kernel mods.
Hey, I just some someone else post some resources that you’d probably be interested in:
https://blue-build.org/
https://github.com/ublue-os/image-template
Thanks! I had seen the ublue template, but not that blue build tool. Will check it out.
Consider taking a look at uBlue’s base image with Sway and built-in Nvidia drivers or wayblue’s image with Sway and built-in Nvidia drivers.
Oh I didn’t realize they had one with Sway. That helps!
Consider reporting back on how it goes 😉.
So right off the bat I tried rebasing from Fedora Sway Atomic to the Wayblue
sway-nvidia
image, but I got the error:Package 'rpmfusion-nonfree-release-40-1.noarch' is already in the base
I think because I had previously tried installing nvidia drivers from RPM Fusion. So I reset back to the base image with:
rpm-ostree reset --overlays
After that everything went smoothly and I’m apparently booted with a functional Nvidia driver. Thanks for the help! I’m off to try running some graphics.
Glad to be of help!
And thank you for reporting back!
Enjoy 😊!
After a little more time with it, I’ve noticed that nvidia + sway is causing a lot of flickering on updating rectangles of any window, presumably from a compositing issue. I expected the “explicit sync” fix in the 555 Nvidia driver to fix this, but I’m currently running 555.85. I hope it’s not some other issue.
FWIW, I just noticed this thread
Unfortunately, I don’t own any device with Nvidia. Hence, I don’t think I’ll be able to help out. However, wayblue’s maintainers are pretty active. Therefore, consider opening an issue on its GitHub page and perhaps they’ll be able to help out.
I apologize for not being of much help here. Wish ya good luck, though!
Happy cake day btw!
Wait. Where are you finding the sway image? I’m browsing the images but I don’t see it.
EDIT: Maybe it’s only Way blue that has sway?
It’s found here. It’s called sericea-nvidia. For this image, please refer to the installation guide found here if you’re interested.
Oh thanks! I didn’t notice “Sericea” was the name of this image when I installed it. Wish that had been more obvious.
It has been my pleasure!
It used to be called Sericea. However, the obscure names started to become very unwieldy. Therefore, they chose to preserve the naming for earlier established and recognized names (i.e. Silverblue and Kinoite) while Sericea became Sway Atomic instead.