I have been using Gentoo exclusively for about two years and really enjoyed it. The customization and package manager is just top-notch. I have been curious about NixOS for some time, just randomly seeing it pop in some discussion, but never really looked into it. One day YouTube recommends this video about flakes for development instead of using Dockerfiles.
It intrigued me because I am not really fan of Dockerfiles. In my experience, it is too easy for something to break and pretty hard to maintain them properly. Plus, it is really annoying to use them for development.
So I started looking into Nix and then NixOS and created a new partition and installed it and so far it is a pretty interesting experience. The system is pretty customizable, and it is nice having the entire system described in configuration files. I could see myself using the same config for my laptop and desktop and just sync them. It is really nice and easy to have your entire system configuration in git repo, much easier than what I used with things like etckeeper.
So far there are only few issues I encountered. Not every package is implemented properly, so some configuration is the same old story of using files in /etc or maybe just specifying a configuration file in your config. I’ve also read about some issues with Nix not using FHS (Filesystem Hierarchy Standard) for example Steam had some issues but so far I didn’t encounter them. Also, the documentation is not what I am used to coming from Gentoo, but it is still usable.
The last issue I have is not really an issue. It is pretty time-consuming to make your entire configuration, especially if you want to use flakes. I’ve been slowly adding more and more but so far only into default configuration.nix and would love to rewrite it completely into flakes, but it takes time.
So far I didn’t decide that I would be not going back to Gentoo, but it is fascinating experience. I am especially curious how will this impact my development workflow because it should be much easier to control dependencies per project. Especially with something like Python (always really hated using venvs).
Anyone else trying NixOS or using it already?
Flakes are really cool, and I really like the idea. It solves a lot of issues with Nix for me. But I installed NixOS about a week ago, and now I am stuck in sort of limbo where I don’t want to edit configuration that much because I want to switch to flakes. But switching to flakes takes quite a bit of time. Hopefully soon I will finally get around to doing it.
The documentation is quite rough. Official documentation is pretty bare bones and NixOS wiki is nowhere close to Gentoo or Arch Wiki.
Just out of curiosity, what part of your university script assumes FHS? In my experience, there is nothing really special about eduroam Wi-Fi.
My plan with flakes is to figure out how to manage everything using Nix first, and then move my configuration into a flake. I presume this will take a long time.
To be precise, the university wifi script downloads a large number of Python files into a temporary folder and then runs them, where the Python scripts assume that openssl and other binaries are in FHS locations. I am aware that there are ways to simulate an FHS environment in NixOS, so I will try again sometime.