← All TILs

nixos

7 TILs filed under nixos.

First steps on NixOS: the whole system is one file, and every change is a boot entry - 2026-09-25

Coming to NixOS from RHEL or Ubuntu, the instinct is to install a package, edit something under /etc, and restart a service. NixOS supports a version of that, but it isn't the model. The model is one file describing the whole machine, a command that builds that description into…

NixOS on WSL2: a short admin runbook, and the files WSL manages instead of NixOS - 2026-09-25

NixOS-WSL runs a full NixOS inside WSL2, with systemd, nixos-rebuild and generations included. Everything in the first-steps entry still applies. What changes is that WSL owns a few files NixOS normally manages. This runbook checks install, configuration and recovery against…

Oh My Zsh on NixOS: the plugin list installs nothing, and NixOS aliases win - 2026-09-26

NixOS can configure Zsh and Oh My Zsh from configuration.nix, with no ~/.zshrc to back up. The module writes everything into a generated /etc/zshrc, and the order of that file explains most of the surprises. This entry comes from evaluating a real configuration against nixpkgs…

Testing a NixOS configuration on GitHub Actions: evaluate on every push, boot it where KVM is - 2026-09-26

A NixOS configuration can be tested in CI at two levels. The first evaluates it: nothing is built and nothing boots, so it runs on any runner. The second boots the machine in QEMU and checks it from inside, and that needs KVM. GitHub-hosted Linux runners have KVM, but only one…

Testing a NixOS configuration on self-managed GitLab CE: the eval job runs anywhere, the VM test needs a runner you prepare - 2026-09-26

This is the GitLab counterpart of the GitHub Actions entry, with the same two levels and the same repo, dar-nixos. The evaluation job needs nothing from the runner. The VM test needs /dev/kvm inside the job container, with permissions the Nix build users can use. On GitHub an…

Home Manager as a NixOS module: dotfiles in the same rebuild, and the file that's in the way - 2026-09-27

Home Manager declares a user's packages and dotfiles in Nix. As a NixOS module, it is built and activated by nixos-rebuild, with the rest of the machine. Checked against Home Manager release-26.05 and nixpkgs nixos-26.05, in a VM test that boots the configuration and then…

A user's PATH on NixOS: declare packages, and know which settings reach services - 2026-09-28

The usual advice on NixOS is right. Declare packages instead of adding /nix/store/... directories to PATH, and add your own script directory through Home Manager or a shell profile. The details matter, though: some of those settings only reach certain shells, and none of them…