summaryrefslogtreecommitdiff
path: root/users/gkleen
diff options
context:
space:
mode:
Diffstat (limited to 'users/gkleen')
-rw-r--r--users/gkleen/default.nix108
-rw-r--r--users/gkleen/gitignore2
2 files changed, 80 insertions, 30 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**/.#*