Yeah, +1 from my side for Fedora Atomic, especially uBlue.
For this use case, I can absolutely recommend using Aurora (KDE) or Bluefin (Gnome), especially with the gts
branch.
uBlue offers different branches, namely:
latest
: in sync with the current Fedora repos, all the newest stuff official Fedora also ships, including kernelstable
this is the default by now. You have to wait two weeks more for feature and kernel updates, but they are better tested. If something would have broken, others would have noticed and already fixed it.gts
: this one is what I recommend for this use case. With that, you’ll get the last release.
At the moment, F41 hit Bazzite/ Aurora latest
already three weeks ago when it landed, on stable
, I got it a few days ago, and on gts
, you have to wait another 5 months until F42 is released, and then you’ll update to F41.
gts
is perfect for those who don’t need the very latest features, and want something more chill with fewer surprises.
And the other benefits of uBlue/ Atomic also apply of course, like better hardware enablement, QoL tweaks, automatic staged updates, and much more.
9.5/10, can absolutely recommend!
The problem with package based distros (everything non-immutable) is, that a distro is very complex.
Even if you manage to “swap out” the package repositories, you usually still have a lot of remaining stuff in the background and many things tweaked by the maintainers. It’s a huge mess.
In theory, you could absolutely do that, but to be honest, why bother? You already always should have a backup of all your personal data, so why not reinstall it cleanly?
Speaking of image based distros (“immutable”), the cool thing about most is that that you can easily swap out the underlying OS with just one command.
For example, you can always rebase from Fedora Silverblue to Kinoite to Bazzite to something with Hyprland and then back to vanilla Silverblue, without any traces.
So, for example, if the guy who makes your custom image on Github stops maintaining it, you can simply switch to something else in just seconds.
Maybe this is something relevant for you :)