{ 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"]; group = "users"; uid = 1000; createHome = true; home = "/home/${userName}"; shell = "${pkgs.zsh}/bin/zsh"; isNormalUser = true; openssh.authorizedKeys.keyFiles = lib.attrValues (customUtils.recImport rec { dir = ./authorized-keys; _import = name: _base: dir + "/${name}"; }); 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; }; }; ssh = { enable = true; controlMaster = "auto"; controlPersist = "30m"; serverAliveInterval = 6; hashKnownHosts = true; extraConfig = '' IdentitiesOnly true ServerAliveCountMax 10 ''; }; gpg.enable = true; }; }; }