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.


I disagree, I’ve never learned more about Linux that since I switched to NixOS. Granted you have a new language to learn and an extra layer to manage, but that layer is still working on regular elements of the Linux ecosystem. Adding a service with
services.something. enable = true;will generally just create a systemd service (and possibly some other things depending on the service).It’s true you need to have very good basics in Linux before but it works very well on desktop, especially with home-manager.
Well, no. Not to shoot down your comment or anything, but you’ve only learned a lot about Nix still in your example.
For instance, if someone presented you with an Arch system of some sort and asked why a certain systems unit wasn’t working, or why the speakers on their laptop don’t work but the headphones jack does, or why their Nvidia kmod modules aren’t loading.
Your experience with Nix is t going to help with some of the more basic functions of a traditional Linux system because of the abstractions in top of abstractions that you’re used to interacting with on Nix.
I’m not even digging on Nix, like I said, it was designed for a very specific purpose. I’ve run hundreds, if not thousands, of various build system permutations on Nix over the years, and even I wouldn’t even think about using it for really basic stuff like running a Desktop 🤣
Yes, I didn’t explain that very well. I meant that I learnt a lot because sometimes you want to go a bit further than what the nix config let you do so you end up reading what the module actually do to figure out what to override. So I’ve learnt a lot about Linux reading and then writing derivations and modules.