nixos-config
My NixOS configuration files for my laptop and the server running this site.
Cheatsheet
Prefer the new nix
CLI when possible instead of the old nix-*
commands. It's way better.
Task | Command |
---|---|
Run program | nix run nixpkgs#hello (needs -- if passing args) |
Run program from another Nixpkgs repo | nix run github:Toby222/nixpkgs#space-station-14-launcher |
Clean Nix store | sudo nix-collect-garbage and nix store optimise |
Get size of Nix store | sqlite3 'file:/nix/var/nix/db/db.sqlite?readonly=true&immutable=true' 'SELECT SUM(narSize) FROM ValidPaths' |
Get largest packages | sqlite3 'file:/nix/var/nix/db/db.sqlite?readonly=true&immutable=true' 'SELECT * FROM ValidPaths ORDER BY narSize DESC LIMIT 50' |
Check if anything depends on path | nix-store --query --referrers /nix/store/blah |
List system generations | nixos-rebuild list-generations |
Switch to generation | sudo nix-env --switch-generation 12345 -p /nix/var/nix/profiles/system and sudo /nix/var/nix/profiles/system/bin/switch-to-configuration switch |
Run Nix file | nix eval -f main.nix |
Build VM from config | nixos-rebuild build-vm |
Deploy using signing key | LOCAL_KEY=key deploy -s . |
Run AppImage | appimage-run blah.AppImage |
Get changes between system generations | nix profile diff-closures --profile /nix/var/nix/profiles/system |
Install specific version of package | https://lazamar.co.uk/nix-versions/ |
Inspect system config in REPL | nix repl .#nixosConfigurations.$hostname |