I wouldn’t use any rolling release for productions servers. For personal computing, I think it is fine. I am honestly saving time compared to having to tweak and configure my OS. I have other more important things (for me) that I want to work on. I want more configuration that macOS or Windows, but not as much as needed for bare Arch Linux or NixOS.
It fit my needs well, because I just wanted to wipe a computer clean, and boot into a linux distro as a daily driver without fuss. Maybe that isn’t your case. I personally am not going to dual boot anything, I’m not going to make partitions, I just need one, etc. I just want to get to work on my other projects. Your situation may be different, maybe you want to have multple OSes on one machine, or you want to manage server configurations and happen to be able to do that without much fuss within NixOS constraints, or whatever it may be. In that case I understand you need the configurability, but for me it isn’t much of a benefit right now.
As for your other bullet points, that’s just opinion. I like or need those pieces of software.
Declarative config is not a bad idea. However with NixOS there’s in fact multiple ways to achieve the same thing for NixOS configuration, and that can be confusing and some ways lead to worse results than other ways.
I think that still requires potential ELF patching or FHS mocking. It’s not ideal. I think borrowing ideas from Conan, NPM, and ied (which is inspired by NixOS in its hashing technique) may lead to better results. Those three package managers don’t care about your OS environment, and any filesystem dependence is only local to each project. I wrote more here why it may be a better path to come up with something along those lines for a new OS in this comment. I think an approach that leaves user’s OS untouched from the beginning is going to be much easier to adopt by many, as well as make a good foundation for a new OS.
A vanilla experience isn’t bad per se, but there’s issues like GDM not behaving like it should be default (sometimes switching back and forth for no apparent reason) or application opening as other applications which is confusing. I tried to configure Gnome from scratch with Arch Linux, and I know these issues can be tricky to achieve. Some default configuration is totally needed, and Arch doesn’t give you that, and NixOS is missing something. Manjaro has the Gnome configuration mastered, and it has no issues at all. As an example, I know that Gnome needs particular PAM settings (at least the last time I tried a few years ago) to play well with multiple user accounts. Those aren’t things that you just get out of the box installing upstream libs, so there’s room for mistakes when making a full configuration for an out-of-the box experience.
Based on this experience, I know that Manjaro went through pains with perfectly configuring things such as the auth system (PAM, or whatever it may be now), authentication popups, .desktop
applications not crossing into each other, GDM Xorg integration, etc, and the system just works in every way that I expect.
Maybe I misconfigured something. There’s multiple ways to configure NixOS to get (almost) the same results, but inevitably it leads to slightly different results. With pacman
, there’s only one way to install something. With nix
, there’s multiple ways to install something with differing results, and it isn’t always obvious which way is the best.
I believe in the idea that Nix has on a general level, but I have a feeling there’s a better way to do it that doesn’t rely on hacking FHS/ELF/etc.
Maybe, but with Manjaro at least I get something without thinking about it. It may be nice if NixOS gets “flavors” like Gnome flavor, KDE flavor, in the form of configurations (minus the hardware parts which still need to be generated), and these flavors would come with everything that people expect from a full desktop so they don’t have to configure a single thing. People who like to configure everything don’t have to use the config flavors.
I forgot to mention, in Manjaro, there are zero messages during boot (which is what I want). All I see is the built-in Dell logo, and for a moment I can even move my mouse on top of the Dell logo (somehow Manjaro retains the OEM boot logo in memory), then finally GDM appears right after that (with my mouse still moving). Manjaro boot is quite polished out of the box!
I couldn’t disable all boot messages in NixOS, even with plymouth enabled.