NixOS - A brief review

The best linux distro I have ever used

NixOS - A brief review
Photo by Lukas / Unsplash

I recently picked up a Thinkpad X1 Carbon Gen 6 and I decided to try out NixOS. And this is a short one on my experience using NixOS.

NixOS is amazing and likely the best linux distro I've ever used. And here are the pros and cons:

The pros:

  • Declarative builds - define what you want and rebuild, its that simple
  • Reproduceable - with flakes builds are not just repeatable (think Docker) but also reproduceable
  • Nix the programming language - a readable functional programming language
  • Nixpkgs (Nix packages) - a large repo with more packages than the Arch AUR
  • Nix generations - roll back to a previous system version. Never will a system update break things
  • Nix shell - very useful for quickly checking or testing a package or app
  • Nix flakes - a powerful way to compose a system, multiple systems or a dev environment
  • A growing nix community and appreciation for Nix

The cons:

  • Non-FHS compatible - nix stores things in different places which often means you can't download any binary or app and expect it to work
  • Increased storage space - the roll back feature means previous package versions are kept on the system
  • Cryptic error messages - rebuilding your system is not always so straightforward when errors can not be found
  • Complexities of declarative abstractions - some modules can only be fully understood by looking at how it is built in the nixpkgs or home-manager repo
  • Inadequate documentation - there is a new wiki but generally the documentation is lacking or geared towards an experienced linux user. The Arch wiki is still the GOAT

NixOS with the Hyprland desktop has been a joy to use and I have gained a lot of knowledge along the way. I also made my first contribution to the home-manager repo. See the resources below that helped me get started:

Zero To Nix - simple as

Misterio77/nix-starter-configs - a repo template to get started which is what my nix-dotfiles repo is largely modelled on

Determinate Systems posts - all posts from here all chef's kiss

Vimjoyer - YouTube - great, easy to digest video tutorials on using Nix

LibrePheonix - YouTube - more advanced tutorials on using Nix

NixOS: Everything Everywhere All At Once - chef's kiss video (as usual) on NixOS

Nerding out about Nix and NixOS with Jon Seager, Canonical - detailed video discussing nix in Production from a Canonical dev