nyx/modules/base/users/mkuser.nix

47 lines
1,000 B
Nix

{
lib,
config,
...
}: let
inherit (lib.modules) mkDefault;
inherit (lib.attrsets) genAttrs;
inherit (lib.validators) ifTheyExist;
in {
users.users = genAttrs config.olympus.system.users (
name: {
home = "/home/" + name;
# shell = config.olympus.programs.${config.olympus.programs.defaults.shell}.package;
uid = mkDefault 1000;
isNormalUser = true;
initialPassword = mkDefault "changeme";
# only add groups that exist
extraGroups =
[
"wheel"
"nix"
]
++ ifTheyExist config [
"network"
"networkmanager"
"systemd-journal"
"audio"
"pipewire" # this give us access to the rt limits
"video"
"input"
"plugdev"
"lp"
"tss"
"power"
"wireshark"
"mysql"
"docker"
"podman"
"git"
"libvirtd"
"cloudflared"
];
}
);
}