{ lib, ... }: let inherit (lib) optionals; adminGroups = [ "adm" "named" "networkmanager" "nginx" "tuxcord" "wheel" ]; mkUser = name: uid: options: { users.users.${name} = { isNormalUser = true; extraGroups = optionals options.admin adminGroups; inherit uid; }; systemd.slices."user-${uid}".sliceConfig = { CPUQuota = "50%"; CPUWeight = "10"; IOAccounting = true; IOWeight = "10"; MemoryMax = "2G"; MemorySwapMax = "1G"; TasksMax = "100"; }; }; in map (user: mkUser user.name user.uid user.options) [ { name = "error"; uid = 1000; options.admin = true; } { name = "javalsai"; uid = 1001; options.admin = true; } { name = "deadvey"; uid = 1002; options.admin = true; } { name = "vectorum"; uid = 1003; } ]