diff --git a/lib/default.nix b/lib/default.nix index 901410b..c04300b 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -1,5 +1,5 @@ { pkgs, unstable, nixpkgs, nixos-unstable, home-manager, system, ... }: rec { - user = import ./user.nix { inherit pkgs unstable system; }; + user = import ./user.nix { inherit pkgs unstable system home-manager; }; host = import ./host.nix { inherit pkgs nixpkgs unstable nixos-unstable home-manager user system; }; diff --git a/lib/user.nix b/lib/user.nix index 4a3e40e..bf8dbba 100644 --- a/lib/user.nix +++ b/lib/user.nix @@ -1,4 +1,4 @@ -{ pkgs, unstable, ... }: +{ pkgs, unstable, home-manager, ... }: { mkUser = { name, roles ? [ ] }: @@ -19,8 +19,26 @@ shell = pkgs.zsh; extraGroups = [ "wheel" "plugdev" ]; }; - - home-manager.users.${name}.imports = [ (mkRole "common") ] - ++ roles_mod; + + home-manager.users.${name}.imports = [ (mkRole "common") ] ++ roles_mod; + }; + + mkHMUser = { name, roles }: + let + mkRole = role: import (../roles/home + "/${role}.nix"); + roles_mod = (map (r: mkRole r) roles); + in home-manager.lib.homeManagerConfiguration { + inherit pkgs; + modules = [ + { + home = { + username = name; + homeDirectory = + if pkgs.stdenv.isLinux then "/home/${name}" else "/Users/${name}"; + stateVersion = "22.05"; + }; + } + (mkRole "common") + ] ++ roles_mod; }; }