Nix(OS) Sucks
I have been using NixOS since — according to the date of the earliest commit in my dotfiles repository — September 8th, 2023. I started by using a barebones configuration.nix and a decent enough rice. I eventually switched to using flakes by forking ZaneyOS, then, a few months later, scrapping it and writing my own flake.
Nix is a: reproducible and declarative Linux distribution (NixOS), package manager (the package repository is called Nixpkgs), and language (Nix). This means that with Nix/NixOS/Nixpkgs:
- Replicate your configuration on one machine to any other machine.
- In Nix, programs, settings, "dotfiles", and much more are all configured declaratively in a
.nix
file, as opposed to setting things up imperatively via commands in the CLI, leading to a much more consistent and easier to understand system configuration. - Access to the largest package repository on Earth — nixpkgs.1
- Portable; run Nix on any Linux distribution or even MacOS.
- Rollbacks are builtin and enabled by default. Did you break.. everything? Don't sweat it; restart your computer and boot into an older version of your configuration.
- And much more.
Fun, right? Now let me list the downsides!
- The documentation tends to suck. —On that note, here are some resources for beginners:
- Steep learning curve.2
- NixOS is very different from other Linux distributions. The problems you face will be niche, poorly documented, and you'll struggle. Things that work on Ubuntu won't work on Nix.
- Massive time sink.
- Refer to Hlissner's thoughts on NixOS.
It's up to you to decide whether you can live with these downsides, or whether the upsides outweight the downsides. But now you can't say you weren't warned! My beloved NixOS sucks, but everything else sucks even more.