diff options
author | Franck Cuny <franck@fcuny.net> | 2022-04-07 08:31:05 -0700 |
---|---|---|
committer | Franck Cuny <franck@fcuny.net> | 2022-04-07 08:31:05 -0700 |
commit | dcc0315bba21b4efde7ffc0a6e50af24fdd0fbb4 (patch) | |
tree | d8b5aa68afc302a116dafa26f74fcdf73587a8f2 /modules | |
parent | gitea: fix the module (diff) | |
download | world-dcc0315bba21b4efde7ffc0a6e50af24fdd0fbb4.tar.gz |
initial attempt to reconfigure home-manager
All the modules that are needed for home-manager should be under `home/`, and each host will have a `host.nix` where the modules are enabled as needed. Later on we can create some profiles to make it easier to consume the configuration. I apply this only to tahoe for now, as the amount of packages needed for my user are pretty limited.
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; }; + }; + }; +} |