I have been seeing a lot of NixOS content recently, and a part of me appreciates the ideology of Nix.
- No need to remember how you configured your machine (running some random command inside some random directory).
- Separate the config from the physical machine. Redeploy elsewhere instantly.
I loved the idea even before I knew Nix when I switched from Gnome to i3 way back in 2017. Configure your i3 config once and never worry about “new” (read “breaking”) features from the distro. I used the same config for nearly a decade with minor changes, till I switched to niri this year. So the way I interact with my desktop has not changed for a long time.
Back to the topic; while Nix configures your OS in a declarative manner, it’s very different from what I’m used to. I have managed Ubuntu systems in depth, and now I know there is a huge carry-over of knowledge across other distros (arch/fedora/centos). And this “hobbyist-level” knowledge has helped me multiple times at my work. But Nix is very different in the way we configure a system compared to the norm.
My fear is that not only do I have to throw away chunks of my existing Linux know-how, but the new Nix-way will interfere with what I currently know and require at my job. Is there some truth behind my thinking or am I just being a bit paranoid? Fresh and veteran Nix users, please help.


Do you mean to say that I can run random systemctl commands to make changes to the system, but in order to make them persistent, I need to add them to the config? If yes, this model is fine by me. As long as the changes are documented in files maintained by me, it’s good.
In mutable distros, the issue I face is that some changes are present in
.config,/etc,~.localwhich slowly becomes painful to keep track of.If you simply just want to track config file changes, use a flat git repo, or something like Ansible.
That’s going to be a helluva lot simpler for you to learn and execute on.