{ 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" ]; } ); }