

I think there are arguments for NixOS for a casual user despite the learning curve reputation. But there are also downsides to consider.
The pros:
- There is a good, user-friendly installer that makes it easy to get a working system
- From what I can see setting up KDE is pretty easy - there are configs online that you can paste into
configuration.nix
without modification - NixOS is good for gaming with proprietary drivers and Steam - again it’s a matter of pasting a few lines of configuration
- Like with other distros it’s easy to recover if something breaks
- Unlike with other immutable distros you get a lot of options for tinkering with your system, and experimenting. You can dip your toes into the advanced stuff, going from casual user to Linux expert at your own pace, with the safety line of being able to roll back changes at any time.
- If you stick to the basics you can have a very stable, very update-to-date system without much difficulty.
The cons:
- To get the full safety of rolling back a previous point in time you need to ditch channels, and instead use pinned nixpkgs revisions. The best way to do that is probably using flakes - but whatever strategy you use you need to depart from the setup the installer gives you, and learn enough to remake your configuration.
- You’ll find contradictory instructions depending whether they’re written for use of channels or flakes.
- Going beyond the basics of installing packages, and using premade NixOS modules gets you into the infamous learning curve. For example I’m guessing that managing kwin scripts declaratively in Nix config might be an adventure. But managing them by hand the way you do in Fedora might be the same. (I haven’t tried this, so I’m not sure.)
- There is some stuff you have to know, like if you want to run binaries that weren’t built for Nix you want to set up nix-ld first.
- If you’re building software you have to learn to do things the Nix way because of the lack of FHS. That’s great for Nix fans like me, but frustrating for some.
- There is no graphical software center, nor automatic updates. You have to use the workflow of installing stuff by editing your config file, and get used to using search.nixos.org to find stuff. This is a pro from the perspective of having a stable system that can be rolled back to earlier states, but might feel less user friendly than a GUI workflow.
Even if you set up flatpak (which is easy to set up tbf) you’re probably going to be managing flatpaks using the CLI.
It would be easier for me to recommend NixOS if the installer set up a flake configuration with more niceties pre-installed, like nix-ld. The next best thing would be a de facto standard flake starter configuration for people to copy. But like I said, I think there is a case.
I’ve done that too, and it’s not the same IMO. Ansible doesn’t put entries in the boot loader for older system states you can boot into in case you break something. It’s possible that Ansible configurations aren’t idempotent. The exact versions of packages that get installed can’t easily be managed with Ansible if you’re also regularly updating packages. There’s lots of stuff that is much easier to configure with NixOS and Home Manager. I found my Ansible configs were always out of date, which doesn’t happen with NixOS where editing the config file is how you make any system changes.