I’m an Arch user (CachyOS now) and I’ve gotten used to doing things a certain way. Anyway, I have another computer with a fresh Windows 11 install. After literally 5 hours of troubleshooting, I still could not get the fuckass wi-fi drivers installed. People who say Windows is easy clearly never had to install it. I eventually said fuck it and decided to install NixOS. I’m used to Arch based distros so I wanted to try something new. I’m very confused about how it works and what it’s intended use case is. I spent an hour trying to figure out how to install micro permanently. I did RTFM but It didn’t really help. I guess I’m hoping someone can share some words of encouragement and/or convince and/or bully me into sticking with this weird ass distro.


I’ve been using NixOS for years now (the 1st commit is from 2020). The benefits I particularly enjoy:
If a software update goes south, just reboot into the last known good one, until you have time to figure out what broke. This only applies to OS config, it doesn’t apply to data, so if you need to migrate your Postgres to a new on-disk format, or such, you still need a snapshot or backup of some sort.
It’s very easy to keep config in Git - I’m aware of
etckeeper, but NixOS treats your Git repo as the primary source of truth, not a tacked-on addition.It’s possible to write parametric configurations, to loop over machines, etc. For example, here’s how I import the module that enables and unfirewalls Prometheus exporters, in one particular machine:
Other machines don’t have
knotorredis, so I just omit them from the list.Here’s a simplified snippet of the implementation:
This thing above produces approximately this NixOS config:
Edit: I forgot about overlays. You can patch software, or switch to forks, much more easily with NixOS. For example, here I’m applying some mods to my laptop:
and here’s its definition - nothing could be simpler.
The patch itself is generated by
git diffin the source of wlvncc. Alternatively, I could have switched to a fork, here’s how: https://wiki.nixos.org/wiki/Overlays#Overriding_a_version