{ inputs, config, lib,... }: let cfg = config.szpont.sys.core.home-manager; in { imports = [ inputs.home-manager.nixosModules.home-manager ]; options.szpont.sys.core.home-manager = { enable = lib.mkEnableOption "home Manager configuration"; users = lib.mkOption { default = {}; description = "attribute set of users and their home-manager configurations"; type = lib.types.attrsOf (lib.types.submodule { options = { path = lib.mkOption { type = lib.types.path; description = "path to the user's home.nix file"; }; }; }); }; }; config = lib.mkIf cfg.enable { home-manager = { extraSpecialArgs = { inherit inputs; }; useGlobalPkgs = true; useUserPackages = true; backupFileExtension = "bak"; users = lib.mapAttrs (name: user: import user.path) cfg.users; }; }; }