aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/default.nix24
-rw-r--r--modules/home/default.nix27
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; };
+ };
+ };
+}