summaryrefslogtreecommitdiff
path: root/users
diff options
context:
space:
mode:
authorGregor Kleen <gkleen@yggdrasil.li>2025-11-13 22:45:18 +0100
committerGregor Kleen <gkleen@yggdrasil.li>2025-11-13 22:45:18 +0100
commitf8a9228baa4f68c7639ef703e15f97bf146c53ee (patch)
tree6efca90bf896a6747f64b97ed2b9055f2d910508 /users
parentf92d022f5c03f719492fa4901d21190c3a576187 (diff)
downloadnixos-f8a9228baa4f68c7639ef703e15f97bf146c53ee.tar
nixos-f8a9228baa4f68c7639ef703e15f97bf146c53ee.tar.gz
nixos-f8a9228baa4f68c7639ef703e15f97bf146c53ee.tar.bz2
nixos-f8a9228baa4f68c7639ef703e15f97bf146c53ee.tar.xz
nixos-f8a9228baa4f68c7639ef703e15f97bf146c53ee.zip
...
Diffstat (limited to 'users')
-rw-r--r--users/gkleen/default.nix135
-rw-r--r--users/root.nix110
2 files changed, 155 insertions, 90 deletions
diff --git a/users/gkleen/default.nix b/users/gkleen/default.nix
index 5ce93de7..84446582 100644
--- a/users/gkleen/default.nix
+++ b/users/gkleen/default.nix
@@ -1,5 +1,7 @@
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 utils direnv 6 utils direnv
5 ]; 7 ];
@@ -15,69 +17,84 @@
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 core.excludesfile = toString ./gitignore; 44 pull.rebase = true;
33 pull.rebase = true; 45 submodule.recurse = true;
34 submodule.recurse = true; 46 init.defaultBranch = "main";
35 init.defaultBranch = "main"; 47 column.ui = "auto";
36 column.ui = "auto"; 48 branch.sort = "-committerdate";
37 branch.sort = "-committerdate"; 49 tag.sort = "version:refname";
38 tag.sort = "version:refname"; 50 diff = {
39 diff = { 51 algorithm = "histogram";
40 algorithm = "histogram"; 52 colorMoved = "plain";
41 colorMoved = "plain"; 53 mnemonicPrefix = true;
42 mnemonicPrefix = true; 54 renames = true;
43 renames = true; 55 };
44 }; 56 push = {
45 push = { 57 default = "simple";
46 default = "simple"; 58 autoSetupRemote = true;
47 autoSetupRemote = true; 59 followTags = true;
48 followTags = true; 60 };
49 }; 61 fetch = {
50 fetch = { 62 prune = true;
51 prune = true; 63 pruneTags = true;
52 pruneTags = true; 64 all = true;
53 all = true;
54 };
55 rerere = {
56 enabled = true;
57 autoupdate = true;
58 };
59 rebase = {
60 autoSquash = true;
61 autoStash = true;
62 updateRefs = true;
63 };
64 merge.conflictstyle = "zdiff3";
65 }; 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";
66 }; 76 };
67 77 delta = {
68 ssh = {
69 enable = true; 78 enable = true;
70 controlMaster = "auto"; 79 enableGitIntegration = true;
71 controlPersist = "30m";
72 serverAliveInterval = 6;
73 serverAliveCountMax = 10;
74 hashKnownHosts = true;
75 extraConfig = ''
76 IdentitiesOnly true
77 '';
78 }; 80 };
81 ssh = {
82 enableDefaultConfig = false;
83 matchBlocks."*" = {
84 forwardAgent = false;
85 addKeysToAgent = "no";
86 compression = false;
87 userKnownHostsFile = "~/.ssh/known_hosts";
88 controlPath = "~/.ssh/master-%r@%n:%p";
79 89
80 gpg.enable = true; 90 controlMaster = "auto";
91 controlPersist = "30m";
92 serverAliveInterval = 6;
93 serverAliveCountMax = 10;
94 hashKnownHosts = true;
95 identitiesOnly = true;
96 };
97 };
81 }; 98 };
82 }; 99 }));
83} 100}
diff --git a/users/root.nix b/users/root.nix
index ed1acd50..7fa99452 100644
--- a/users/root.nix
+++ b/users/root.nix
@@ -1,6 +1,7 @@
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 direnv utils 7 direnv utils
@@ -11,42 +12,89 @@ 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";
88 controlPath = "~/.ssh/master-%r@%n:%p";
37 89
38 gpg.enable = true; 90 controlMaster = "auto";
39 }; 91 controlPersist = "30m";
40 92 serverAliveInterval = 6;
41 services = { 93 serverAliveCountMax = 10;
42 gpg-agent = { 94 hashKnownHosts = true;
43 enable = true; 95 identitiesOnly = true;
44 enableSshSupport = true; 96 };
45 extraConfig = ''
46 pinentry-program ${pkgs.pinentry-curses}/bin/pinentry
47 grab
48 '';
49 }; 97 };
50 }; 98 };
51 }; 99 }));
52} 100}