Files
Austin Horstman e70904b3af docs: clarify update and upgrade workflows
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.
2026-05-04 11:13:36 -05:00

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:

  1. Using the standalone home-manager tool. 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.

  2. 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.

  3. 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