Nix, NixOS, Home Manager, and WSL2

Although I've been using Linux for work computers for a lot longer, a few years ago, I switched from macOS and an Apple MacBook Pro to using Linux full-time on my personal computers.

My current daily driver laptop is a Tuxedo InfinityBook that I've installed NixOS on.

NixOS, as the name suggests, is a Linux operating system based on the Nix package manager. It has access to the 80,000+ packages in the nixpkgs repository and can still install and manage them, but also does a lot more including managing hardware.

For user-level configuration, I use Home Manager. I can configure my home directory including user-specific packages and manage my dotfiles, creating files like .gitconfig and linking them to the required destination.

Home Manager can be a NixOS module or a standalone tool - it can be added to NixOS or installed on any Linux distribution, even in WSL2, so I have the same packages that I need installed on every machine as well as having my dotfiles in the correct place and ready to be used.