nixvimConfig/modules/nixOS/bundles/users.nix
2024-07-03 00:38:43 +02:00

60 lines
1.2 KiB
Nix

{
lib,
config,
inputs,
outputs,
helperLib,
pkgs,
...
}: let
cfg = config.myNixOS;
in {
options.myNixOS.home-users = lib.mkOption {
type = lib.types.attrsOf (lib.types.submodule {
options = {
userConfig = lib.mkOption {
example = "home.nix";
};
userSettings = lib.mkOption {
default = {};
example = "{}";
};
};
});
default = {};
};
config = {
programs.zsh.enable = true;
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
extraSpecialArgs = {
inherit inputs;
inherit helperLib;
outputs = inputs.self.outputs;
};
users =
builtins.mapAttrs (name: user: {...}: {
imports = [
(import user.userConfig)
outputs.homeManagerModules.default
];
})
(config.myNixOS.home-users);
};
users.users = builtins.mapAttrs (
name: user:
{
isNormalUser = true;
shell = pkgs.zsh;
extraGroups = ["libvirtd" "networkmanager"];
}
// user.userSettings
) (config.myNixOS.home-users);
};
}