Nix Learning Index¶
Learning Nix on NixOS. Coming from a strong Linux background.
Study Material¶
- igray/dotfiles (
vendor/dotfiles-main/) — Ian's clean single-machine NixOS + Home Manager config for a Framework 13 laptop. Good for understanding the basic structure. - wimpysworld/nix-config (
vendor/nix-config-main/) — Wimpy's production-grade multi-machine config (NixOS + macOS). Deep end, but very well documented. Featured on Linux Matters podcast ep. 7.
Lesson Log¶
| # | Topic | File |
|---|---|---|
| 01 | What is Nix — concepts and vocabulary | 01-what-is-nix.md |
| 02 | Flakes — the entry point of any config | 02-flakes.md |
| 03 | NixOS vs Home Manager — what lives where | 03-nixos-vs-home-manager.md |
| 04 | Ian's config tour — a simple real-world flake | 04-ian-config-tour.md |
| 05 | Wimpy's config tour — advanced patterns | 05-wimpy-config-tour.md |
| 06 | Installing packages and updating the system | 06-installs-and-updates.md |
| 07 | Tiling window managers, bspwm, and sxhkd | 07-tiling-wm-bspwm-sxhkd.md |
| 08 | nix-darwin — declarative macOS configuration | 08-nix-darwin.md |
| 09 | COSMIC and Hyprland — modern Wayland desktops | 09-cosmic-and-hyprland.md |
| 10 | Modern terminal toolkit | 10-terminal-toolkit.md |
| 11 | Dev & code — git, direnv, editors | 11-dev-and-code.md |
| 12 | Writing, notes & bookmarks | 12-writing-notes-bookmarks.md |
| 13 | Communication & calls | 13-communication-calls.md |
| 14 | Files, photos & passwords | 14-files-photos-passwords.md |
| 15 | Reading & listening | 15-reading-and-listening.md |
| 16 | Audio production & streaming | 16-audio-production-streaming.md |
| 17 | Homelab — using the services | 17-homelab-services.md |
| 18 | nixproject day-to-day workflow | 18-nixproject-workflow.md |
Running Notes¶
Things to remember that don't fit a lesson yet.
nix flake updaterefreshesflake.lock— likeapt updatebut pinned--show-traceis your friend when debugging build failuresnixpkgsstable vsnixpkgs-unstable— two channels, can mix them- The Nix store lives at
/nix/store— immutable, content-addressed, never hand-edit it