This makes it possible to refer to the path of Home Manager when you
just have a Nix expression, not the actual source. Some things run
import on a source and just give access to the result of the import,
not the source.
PR #1259
This is a NixOS module that is intended to be imported into a NixOS
system configuration. It allows the system users to be set up directly
from the system configuration.
The actual profile switch is performed by a oneshot systemd unit per
configured user that acts much like the regular `home-manager switch`
command.
With this implementation, the NixOS module does not work properly with
the `nixos-rebuild build-vm` command. This can be solved by using the
`users.users.<name?>.packages` option to install packages but this
does not work flawlessly with certain Nixpkgs packages. In particular,
for programs using the Qt libraries.
This changes the installation command from
nix-shell $HM_PATH -A install --run 'home-manager switch'
to
nix-shell $HM_PATH -A install
The added shell hook will print some useful information and run
`home-manager switch`.
Before this path would point to the modules path. Using the project
root instead makes it possible to set `<home-manager>` to point to a
downloadable archive of Home Manager. This should make it
significantly easier to install and keep Home Manager up to date.
To match this change we also deprecate the Home Manager option
programs.home-manager.modulesPath
and instead ask users to use
programs.home-manager.path