diff options
Diffstat (limited to 'users/gkleen')
| -rw-r--r-- | users/gkleen/default.nix | 135 |
1 files changed, 76 insertions, 59 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 | { | 2 | let |
| 3 | homeManagerRelease = lib.importJSON (home-manager + /release.json); | ||
| 4 | in { | ||
| 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 | } |
