Describe update and release-upgrade workflows separately so users can tell when to update the current branch versus move to a new Home Manager release branch. Expand routine update instructions for flake users by explaining that flake inputs are pinned in flake.lock, showing all-input and selected-input update commands, and separating the rebuild command for standalone, NixOS module, and nix-darwin module installations. Keep channel instructions available for standalone and system-module users, including the different channel owner used by NixOS module setups. Also correct nix-darwin terminology in the installation and flakes docs so those sections do not use NixOS-specific wording.
2.3 KiB
Nix Flakes
Home Manager is compatible with Nix Flakes. But please be aware that this support is still experimental and may change in backwards incompatible ways.
Just like in the standard installation you can use the Home Manager flake in three ways:
-
Using the standalone
home-managertool. For platforms other than NixOS and Darwin, this is the only available choice. It is also recommended for people on NixOS or Darwin that want to manage their home directory independently of the system as a whole. See Standalone setup for instructions on how to perform this installation. -
As a module within a NixOS system configuration. This allows the user profiles to be built together with the system when running
nixos-rebuild. See NixOS module for a description of this setup. -
As a module within a nix-darwin system configuration. This allows the user profiles to be built together with the system when running
darwin-rebuild. See nix-darwin module for a description of this setup.
Advanced users may want Home Manager's nixpkgs input to follow the
same Nixpkgs input as the rest of their flake. This avoids a second
Nixpkgs input and makes Home Manager use the same pinned Nixpkgs source
revision as the rest of the configuration:
home-manager.inputs.nixpkgs.follows = "nixpkgs";
This removes the compatibility assumption between Home Manager and the Nixpkgs revision in Home Manager's own lock file, so use it carefully, especially when tracking unstable branches.
This does not by itself make Home Manager use the same pkgs value as
your NixOS or nix-darwin system. In NixOS and nix-darwin module setups,
home-manager.useGlobalPkgs = true controls that behavior by making
Home Manager modules receive the system pkgs value. When
home-manager.useGlobalPkgs is enabled, configure Nixpkgs overlays and
configuration at the system level instead of through Home Manager
nixpkgs.* options.
nix-flakes/prerequisites.md
nix-flakes/standalone.md
nix-flakes/nixos.md
nix-flakes/nix-darwin.md
nix-flakes/flake-parts.md