allow Home Manager to be used as a NixOS module

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 commit is contained in:
Robert Helgesson 2017-10-14 20:56:02 +02:00
parent 563a20fc82
commit 1bc59f7290
No known key found for this signature in database
GPG key ID: C3DB11069E65DC86
8 changed files with 161 additions and 27 deletions

View file

@ -32,7 +32,7 @@ in
};
};
config = mkIf cfg.enable {
config = mkIf (cfg.enable && !config.nixosSubmodule) {
home.packages = [
(import ../../home-manager {
inherit pkgs;