summaryrefslogtreecommitdiff
path: root/lib/user.nix
diff options
context:
space:
mode:
authorseth <[email protected]>2023-04-17 12:00:55 -0400
committerseth <[email protected]>2023-04-17 12:01:21 -0400
commit92ca826539092f33c8e19a19c7a9ea0def2aece0 (patch)
treec6ff98c3f645f189b559bc1a69904fec217a946c /lib/user.nix
parent98921a299be9f22bde9204e1fd05d0ea0fb0c6ed (diff)
move most configurations to modules
Diffstat (limited to 'lib/user.nix')
-rw-r--r--lib/user.nix40
1 files changed, 40 insertions, 0 deletions
diff --git a/lib/user.nix b/lib/user.nix
new file mode 100644
index 0000000..6377faa
--- /dev/null
+++ b/lib/user.nix
@@ -0,0 +1,40 @@
+{
+ inputs,
+ mapFilterDirs,
+}: rec {
+ mkHMUser = {
+ username,
+ pkgs,
+ stateVersion ? "22.11",
+ modules ? [],
+ }:
+ inputs.home-manager.lib.homeManagerConfiguration {
+ inherit pkgs;
+ modules =
+ [
+ ../users/${username}/home.nix
+ {
+ home = {
+ inherit username stateVersion;
+ homeDirectory = "/home/${username}";
+ };
+
+ programs.home-manager.enable = true;
+ }
+ ]
+ ++ modules;
+ };
+
+ mapHMUsers = inputs: system: let
+ users = import ../users inputs system;
+ in
+ mapFilterDirs ../users (n: v: v == "directory" && n != "secrets") (username: _:
+ mkHMUser {
+ inherit username;
+ inherit (users.${username}) pkgs stateVersion;
+ modules =
+ if builtins.hasAttr "modules" users.${username}
+ then users.${username}.modules
+ else [];
+ });
+}