{ lib, config, haiLib, ... }: let inherit (lib.modules) mkDefault; inherit (lib.attrsets) genAttrs; inherit (haiLib) ifTheyExist; in { users.users = genAttrs config.olympus.system.users ( name: let hm = config.home-manager.users.${name}; in { home = "/home/" + name; #shell = hm.olympus.programs.${hm.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" "mysql" "docker" "git" "libvirtd" "cloudflared" ]; } ); }