diff options
Diffstat (limited to 'modules')
-rw-r--r-- | modules/default.nix | 24 | ||||
-rw-r--r-- | modules/home/default.nix | 27 |
2 files changed, 50 insertions, 1 deletions
diff --git a/modules/default.nix b/modules/default.nix index 67d8e83..e593055 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -1 +1,23 @@ -{ ... }: { imports = [ ./hardware ./system ./services ]; } +{ lib, ... }: + +{ + imports = [ ./hardware ./system ./services ./home ]; + + options.my = with lib; { + user = { + name = mkOption { + type = types.str; + default = "fcuny"; + example = "franck"; + description = "my username"; + }; + + home = { + enable = mkEnableOption { + description = "home-manager configuration"; + default = true; + }; + }; + }; + }; +} diff --git a/modules/home/default.nix b/modules/home/default.nix new file mode 100644 index 0000000..0261128 --- /dev/null +++ b/modules/home/default.nix @@ -0,0 +1,27 @@ +{ config, inputs, lib, ... }: +let + actualPath = [ "home-manager" "users" config.my.user.name "my" "home" ]; + aliasPath = [ "my" "home" ]; + + cfg = config.my.user.home; +in { + imports = [ + inputs.home-manager.nixosModule # enable home-manager options + (lib.mkAliasOptionModule aliasPath + actualPath) # simplify setting home options + ]; + + config = { + home-manager = { + # Not a fan of out-of-directory imports, but this is a good exception + users.${config.my.user.name} = import ../../home; + + # Nix Flakes compatibility + useGlobalPkgs = true; + useUserPackages = true; + + # Forward inputs to home-manager configuration + extraSpecialArgs = { inherit inputs; }; + }; + }; +} |