summaryrefslogtreecommitdiff
path: root/users/gkleen/default.nix
blob: 9ae2c1d0b29c136ff4150375fa190adf861b4a2d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
{ 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" "webdav"];
    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;
    };
  };
}