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.