{ flake, userName, pkgs, customUtils, lib, ... }: { imports = with flake.nixosModules.userProfiles.${userName}; [ zsh tmux utils direnv ]; users.users.${userName} = { description = "Gregor Kleen"; extraGroups = [ "wheel" "networkmanager" "lp" "dialout" "audio" "video" "xmpp" "mail" "ssh" "vboxusers" "libvirtd" "wireshark" "games"]; createHome = true; home = "/home/${userName}"; shell = "${pkgs.zsh}/bin/zsh"; isNormalUser = true; openssh.authorizedKeys.keyFiles = let dir = ./authorized-keys; in lib.mapAttrsToList (n: _: dir + "/${n}") (builtins.readDir dir); hashedPassword = "$6$rounds=500000$dOMgCU7DAk$yQFYGOURTEt12387LIYBnFKSWmtwXMUk1LJWnV0m7OFt.y2TnxQn2abdGA5dhwG9EmMB5wZGXf4J5F71c746C/"; }; home-manager.users.${userName} = { programs = { git = { enable = true; userEmail = "gkleen@yggdrasil.li"; userName = "Gregor Kleen"; delta.enable = true; extraConfig = { pull.rebase = false; submodule.recurse = true; }; }; ssh = { enable = true; controlMaster = "auto"; controlPersist = "30m"; serverAliveInterval = 6; serverAliveCountMax = 10; hashKnownHosts = true; extraConfig = '' IdentitiesOnly true ''; }; gpg.enable = true; }; }; }