summaryrefslogtreecommitdiff
path: root/users
diff options
context:
space:
mode:
Diffstat (limited to 'users')
-rw-r--r--users/gkleen/default.nix108
-rw-r--r--users/gkleen/gitignore2
-rw-r--r--users/root.nix111
3 files changed, 160 insertions, 61 deletions
diff --git a/users/gkleen/default.nix b/users/gkleen/default.nix
index 4ddf4be3..b3b49949 100644
--- a/users/gkleen/default.nix
+++ b/users/gkleen/default.nix
@@ -1,7 +1,9 @@
1{ flake, userName, pkgs, customUtils, lib, ... }: 1{ flake, home-manager, userName, pkgs, customUtils, lib, ... }:
2{ 2let
3 homeManagerRelease = lib.importJSON (home-manager + /release.json);
4in {
3 imports = with flake.nixosModules.userProfiles.${userName}; [ 5 imports = with flake.nixosModules.userProfiles.${userName}; [
4 zsh tmux utils direnv 6 utils direnv
5 ]; 7 ];
6 8
7 users.users.${userName} = { 9 users.users.${userName} = {
@@ -15,39 +17,85 @@
15 hashedPassword = "$6$rounds=500000$dOMgCU7DAk$yQFYGOURTEt12387LIYBnFKSWmtwXMUk1LJWnV0m7OFt.y2TnxQn2abdGA5dhwG9EmMB5wZGXf4J5F71c746C/"; 17 hashedPassword = "$6$rounds=500000$dOMgCU7DAk$yQFYGOURTEt12387LIYBnFKSWmtwXMUk1LJWnV0m7OFt.y2TnxQn2abdGA5dhwG9EmMB5wZGXf4J5F71c746C/";
16 }; 18 };
17 19
18 home-manager.users.${userName} = { 20 home-manager.users.${userName} = { config, ... }: lib.foldr lib.recursiveUpdate {} ([
19 home.keyboard = { 21 {
20 layout = "us"; 22 home.keyboard = {
21 variant = "dvp"; 23 layout = "us";
22 options = [ "ctl:nocaps" "compose:caps" ]; 24 variant = "dvp";
23 }; 25 options = [ "ctl:nocaps" "compose:caps" ];
26 };
27
28 programs = {
29 git.enable = true;
24 30
31 ssh.enable = true;
32
33 gpg.enable = true;
34 };
35 }
36 ] ++ (lib.optional (lib.versionAtLeast homeManagerRelease.release "25.11") {
25 programs = { 37 programs = {
26 git = { 38 git.settings = {
27 enable = true; 39 user = {
28 userEmail = "gkleen@yggdrasil.li"; 40 email = "gkleen@yggdrasil.li";
29 userName = "Gregor Kleen"; 41 name = "Gregor Kleen";
30 delta.enable = true; 42 };
31 extraConfig = { 43 core.excludesfile = toString ./gitignore;
32 pull.rebase = false; 44 pull.rebase = true;
33 submodule.recurse = true; 45 submodule.recurse = true;
34 init.defaultBranch = "main"; 46 init.defaultBranch = "main";
47 column.ui = "auto";
48 branch.sort = "-committerdate";
49 tag.sort = "version:refname";
50 diff = {
51 algorithm = "histogram";
52 colorMoved = "plain";
53 mnemonicPrefix = true;
54 renames = true;
55 };
56 push = {
57 default = "simple";
58 autoSetupRemote = true;
59 followTags = true;
60 };
61 fetch = {
62 prune = true;
63 pruneTags = true;
64 all = true;
35 }; 65 };
66 rerere = {
67 enabled = true;
68 autoupdate = true;
69 };
70 rebase = {
71 autoSquash = true;
72 autoStash = true;
73 updateRefs = true;
74 };
75 merge.conflictstyle = "zdiff3";
36 }; 76 };
37 77 delta = {
38 ssh = {
39 enable = true; 78 enable = true;
40 controlMaster = "auto"; 79 enableGitIntegration = true;
41 controlPersist = "30m";
42 serverAliveInterval = 6;
43 serverAliveCountMax = 10;
44 hashKnownHosts = true;
45 extraConfig = ''
46 IdentitiesOnly true
47 '';
48 }; 80 };
81 ssh = {
82 enableDefaultConfig = false;
83 matchBlocks."*" = {
84 forwardAgent = false;
85 addKeysToAgent = "no";
86 compression = false;
87 userKnownHostsFile = "~/.ssh/known_hosts";
49 88
50 gpg.enable = true; 89 # controlMaster = "auto";
90 # controlPersist = "30m";
91 # controlPath = "~/.ssh/master-%r@%n:%p";
92
93 serverAliveInterval = 6;
94 serverAliveCountMax = 10;
95 hashKnownHosts = true;
96 identitiesOnly = true;
97 };
98 };
51 }; 99 };
52 }; 100 }));
53} 101}
diff --git a/users/gkleen/gitignore b/users/gkleen/gitignore
new file mode 100644
index 00000000..f7082b20
--- /dev/null
+++ b/users/gkleen/gitignore
@@ -0,0 +1,2 @@
1**/#*#
2**/.#*
diff --git a/users/root.nix b/users/root.nix
index b61f9cfd..e8054b25 100644
--- a/users/root.nix
+++ b/users/root.nix
@@ -1,9 +1,10 @@
1{ flake, lib, config, hostName, userName, pkgs, ... }: 1{ flake, home-manager, lib, config, hostName, userName, pkgs, ... }:
2let 2let
3 haveGKleen = flake.nixosModules.accounts ? "gkleen@${hostName}"; 3 haveGKleen = flake.nixosModules.accounts ? "gkleen@${hostName}";
4 homeManagerRelease = lib.importJSON (home-manager + /release.json);
4in { 5in {
5 imports = with flake.nixosModules.userProfiles.${userName}; [ 6 imports = with flake.nixosModules.userProfiles.${userName}; [
6 zsh tmux direnv utils 7 direnv utils
7 ]; 8 ];
8 9
9 users.users.${userName} = lib.mkIf haveGKleen { 10 users.users.${userName} = lib.mkIf haveGKleen {
@@ -11,42 +12,90 @@ in {
11 openssh.authorizedKeys.keyFiles = config.users.users."gkleen".openssh.authorizedKeys.keyFiles; 12 openssh.authorizedKeys.keyFiles = config.users.users."gkleen".openssh.authorizedKeys.keyFiles;
12 }; 13 };
13 14
14 home-manager.users.${userName} = { 15 home-manager.users.${userName} = { config, ... }: lib.foldr lib.recursiveUpdate {} ([
16 {
17 programs = {
18 git.enable = true;
19
20 ssh.enable = true;
21
22 gpg.enable = true;
23 };
24
25 services = {
26 gpg-agent = {
27 enable = true;
28 enableSshSupport = true;
29 extraConfig = ''
30 pinentry-program ${pkgs.pinentry-curses}/bin/pinentry
31 grab
32 '';
33 };
34 };
35 }
36 ] ++ (lib.optional (lib.versionAtLeast homeManagerRelease.release "25.11") {
15 programs = { 37 programs = {
16 git = { 38 git.settings = {
17 enable = true; 39 user = {
18 userEmail = "gkleen@yggdrasil.li"; 40 email = "gkleen@yggdrasil.li";
19 userName = "Gregor Kleen"; 41 name = "Gregor Kleen";
20 delta.enable = true; 42 };
21 extraConfig = { 43 core.excludesfile = toString ./gitignore;
22 pull.rebase = false; 44 pull.rebase = true;
45 submodule.recurse = true;
46 init.defaultBranch = "main";
47 column.ui = "auto";
48 branch.sort = "-committerdate";
49 tag.sort = "version:refname";
50 diff = {
51 algorithm = "histogram";
52 colorMoved = "plain";
53 mnemonicPrefix = true;
54 renames = true;
55 };
56 push = {
57 default = "simple";
58 autoSetupRemote = true;
59 followTags = true;
60 };
61 fetch = {
62 prune = true;
63 pruneTags = true;
64 all = true;
23 }; 65 };
66 rerere = {
67 enabled = true;
68 autoupdate = true;
69 };
70 rebase = {
71 autoSquash = true;
72 autoStash = true;
73 updateRefs = true;
74 };
75 merge.conflictstyle = "zdiff3";
24 }; 76 };
25 77 delta = {
26 ssh = {
27 enable = true; 78 enable = true;
28 controlMaster = "auto"; 79 enableGitIntegration = true;
29 controlPersist = "30m";
30 serverAliveInterval = 6;
31 serverAliveCountMax = 10;
32 hashKnownHosts = true;
33 extraConfig = ''
34 IdentitiesOnly true
35 '';
36 }; 80 };
81 ssh = {
82 enableDefaultConfig = false;
83 matchBlocks."*" = {
84 forwardAgent = false;
85 addKeysToAgent = "no";
86 compression = false;
87 userKnownHostsFile = "~/.ssh/known_hosts";
37 88
38 gpg.enable = true; 89 # controlMaster = "auto";
39 }; 90 # controlPersist = "30m";
91 # controlPath = "~/.ssh/master-%r@%n:%p";
40 92
41 services = { 93 serverAliveInterval = 6;
42 gpg-agent = { 94 serverAliveCountMax = 10;
43 enable = true; 95 hashKnownHosts = true;
44 enableSshSupport = true; 96 identitiesOnly = true;
45 extraConfig = '' 97 };
46 pinentry-program ${pkgs.pinentry-curses}/bin/pinentry
47 grab
48 '';
49 }; 98 };
50 }; 99 };
51 }; 100 }));
52} 101}