{ lib, ... }: with lib; let admins = { nerf = { hashedPassword = "$y$j9T$b3ZDy/YaHDNiqcFFZyEcS.$HlWj1JiqbEMTsD0bMKSwKcJGO7cfpC4P8W8VAlvUTK/"; sshKeys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEdA4LpEGUUmN8esFyrNZXFb2GiBID9/S6zzhcnofQuP nerf@nerflap2" "sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIEdfOWD1DLuB1Ho69uRC3VgQu+X3gExFzVHhu2CAl8JSAAAABHNzaDo= laptop_child-sk" ]; nixKeys = [ "nerflap2-1:pDZCg0oo9PxNQxwVSQSvycw7WXTl53PGvVeZWvxuqJc=" ]; }; }; mkAdmin = name: { hashedPassword, sshKeys, ... }: { "${name}" = { isNormalUser = true; createHome = true; extraGroups = [ "wheel" ]; group = "users"; home = "/home/${name}"; openssh.authorizedKeys = { keys = sshKeys; }; inherit hashedPassword; }; }; mkNixKeys = _: { nixKeys, ... }: nixKeys; in { users.users = mkMerge (mapAttrsToList mkAdmin admins); nix.settings.trusted-public-keys = lists.concatLists (mapAttrsToList mkNixKeys admins); }