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?
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.