Advanced Topics
Once you're familiar with NixOS, you can explore Nix's three manuals and other documentation to discover more ways to use it:
- Nix Reference Manual: A guide to the Nix package manager, which covers the design of the package manager and instructions for using it from the command line.
- nixpkgs Manual: A manual that introduces parameters of Nixpkgs, how to use, modify, and package Nix packages.
- NixOS Manual: A user manual for NixOS, which includes configuration instructions for system-level components such as Wayland/X11 and GPU.
- nix-pills: Nix Pills provides an in-depth explanation of how to use Nix to build software packages. It is written in a clear and understandable way and is worth reading, as it is also sufficiently in-depth.
Once you're familiar with Flakes, you may want to explore some advanced techniques. Here are some popular community projects to try out:
- flake-parts: This project simplifies the writing and maintenance of configuration through the Module module system.
- flake-utils-plus: A third-party package that simplifies Flake configuration and is known to be more powerful.
- digga: A comprehensive Flake template that combines the functionality of various useful Nix toolkits. However, it has a complex structure and requires some experience to navigate.
- etc.
There are many other useful community projects to explore. Here are a few examples:
- nixpak
- nix-output-monitor
- agenix: A tool for secrets management
- colmena: Tools for NixOS deployment
- nixos-generator: A tool to generate iso/qcow2/... from NixOS configuration
- lanzaboote: A tool to enable secure boot for NixOS
- impermanence: A tool used to make NixOS stateless and improve the reproducibility of NixOS systems.
- ...