nixvimConfig/modules/nixOS/bundles/users.nix

61 lines
1.2 KiB
Nix
Raw Normal View History

2024-03-27 23:45:23 +01:00
{
lib,
config,
2024-07-03 00:38:20 +02:00
inputs,
2024-03-27 23:45:23 +01:00
outputs,
helperLib,
pkgs,
...
}: let
cfg = config.myNixOS;
in {
options.myNixOS.home-users = lib.mkOption {
2024-07-03 00:38:20 +02:00
type = lib.types.attrsOf (lib.types.submodule {
2024-03-27 23:45:23 +01:00
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;
};
2024-07-03 00:38:20 +02:00
users =
2024-03-27 23:45:23 +01:00
builtins.mapAttrs (name: user: {...}: {
imports = [
(import user.userConfig)
outputs.homeManagerModules.default
];
2024-07-03 00:38:20 +02:00
})
2024-03-27 23:45:23 +01:00
(config.myNixOS.home-users);
};
users.users = builtins.mapAttrs (
name: user:
{
isNormalUser = true;
shell = pkgs.zsh;
extraGroups = ["libvirtd" "networkmanager"];
}
// user.userSettings
) (config.myNixOS.home-users);
};
}