3.2 KiB
NixOS
- There is controversy about flakes, rather use channels (e.g. with niv)
Build and Switch
Directly change to new config, make it default:
sudo nixos-rebuild -I nixos-config=yodaTux/configuration.nix switch
Install Home Manager with niv
niv:
Easy dependency management for Nix projects.
Nix is a very powerful tool for building code and setting up environments. niv complements it by making it easy to describe and update remote dependencies (URLs, GitHub repos, etc). It is a simple, practical alternative to Nix flakes.
Niv is an easy dependency management for Nix projects with package pinning.
Home Manager:
[Home Manager] allows declarative configuration of user specific (non-global) packages and dotfiles.
To avoid breaking users' configurations, Home Manager is released in branches corresponding to NixOS releases ( e.g.
release-23.05
).Home Manager provides both the channel-based setup and the flake-based one.
Check your channel:
sudo nix-channel --list
#=> nixos https://nixos.org/channels/nixos-23.05
Use the corresponding branch:
niv add nix-community/home-manager -n home-manager -b release-23.05
disko and nixos-anywhere
- Introductory presentation: https://pad.lassul.us/cccamp-workshop
- disko: https://github.com/nix-community/disko
- nixos-anywhere: https://github.com/numtide/nixos-anywhere/
# TODO (!)
Automount Encrypted Drive
- Generate and add keyfile to LUKS device
- luksOpen and mount drive, e.g. to
/mnt/data1
- Re-generate hardware configuration:
sudo nixos-generate-config --dir yodaTux
GNOME extensions
- https://github.com/nix-community/home-manager/issues/284#issuecomment-531384656
- https://github.com/nix-community/home-manager/issues/284#issuecomment-1321199263
- Search for packaged extensions: https://search.nixos.org/packages?channel=23.05&from=0&size=50&sort=relevance&type=packages&query=gnomeExtensions
- One has to re-login after changes: https://github.com/nix-community/home-manager/issues/284#issuecomment-1328269433
# TODO
General Notes
Nix Pills
It provides a tutorial introduction into the Nix package manager and Nixpkgs package collection, in the form of short chapters called 'pills'.
Thesis
There are two (?) theses about Nix. One is https://edolstra.github.io/pubs/phd-thesis.pdf
Search for packages
Search for options
- https://search.nixos.org/options?channel=23.05
- Or
man configuration.nix
- Or
- https://mipmip.github.io/home-manager-option-search
- Or
man home-configuration.nix
- Or
References
Some references to websites that helped me create this repository:
- https://github.com/Misterio77/nix-starter-configs
- https://github.com/mikeroyal/NixOS-Guide#getting-started
TODOs
- FDE remote SSH unlock: https://nixos.wiki/wiki/Remote_LUKS_Unlocking
- Impermanence, opt-in to persistence: https://github.com/Misterio77/nix-starter-configs/tree/main#try-opt-in-persistance