diff options
author | Minijackson <minijackson@riseup.net> | 2024-07-27 15:45:08 +0200 |
---|---|---|
committer | Minijackson <minijackson@riseup.net> | 2024-07-27 15:45:08 +0200 |
commit | 8ea1cc553f28bef4a48fa23a53752e92a131bdcb (patch) | |
tree | ca991e3dfc308075c814796d1ecab91db9d138ed /common/commandline | |
parent | a04d6377a4415c4f74875cc5d23528fbac72bb59 (diff) | |
download | nixos-config-reborn-8ea1cc553f28bef4a48fa23a53752e92a131bdcb.tar.gz nixos-config-reborn-8ea1cc553f28bef4a48fa23a53752e92a131bdcb.zip |
common/git: format, use home-manager.sharedModules
Diffstat (limited to 'common/commandline')
-rw-r--r-- | common/commandline/git.nix | 163 |
1 files changed, 78 insertions, 85 deletions
diff --git a/common/commandline/git.nix b/common/commandline/git.nix index 07b49ad..8c56dbf 100644 --- a/common/commandline/git.nix +++ b/common/commandline/git.nix | |||
@@ -1,11 +1,12 @@ | |||
1 | inputs: { | 1 | _inputs: |
2 | config, | 2 | { config, pkgs, ... }: |
3 | pkgs, | 3 | { |
4 | lib, | ||
5 | ... | ||
6 | }: { | ||
7 | environment = { | 4 | environment = { |
8 | systemPackages = with pkgs; [unstable.git-branchless unstable.gitoxide watchman]; | 5 | systemPackages = with pkgs; [ |
6 | unstable.git-branchless | ||
7 | unstable.gitoxide | ||
8 | watchman | ||
9 | ]; | ||
9 | shellAliases.git = "git-branchless wrap --"; | 10 | shellAliases.git = "git-branchless wrap --"; |
10 | }; | 11 | }; |
11 | 12 | ||
@@ -13,86 +14,78 @@ inputs: { | |||
13 | source ${../../dotfiles/git-branchless.zsh} | 14 | source ${../../dotfiles/git-branchless.zsh} |
14 | ''; | 15 | ''; |
15 | 16 | ||
16 | home-manager.users.minijackson = { | 17 | home-manager.sharedModules = [ |
17 | programs.git = { | 18 | { |
18 | enable = true; | 19 | programs.git = { |
19 | package = pkgs.gitAndTools.gitFull; | 20 | enable = true; |
20 | userEmail = "minijackson@riseup.net"; | 21 | package = pkgs.gitAndTools.gitFull; |
21 | userName = "Minijackson"; | 22 | userEmail = "minijackson@riseup.net"; |
22 | 23 | userName = "Minijackson"; | |
23 | signing = { | 24 | |
24 | signByDefault = true; | 25 | extraConfig = |
25 | key = "minijackson@riseup.net"; | 26 | let |
26 | }; | 27 | deltaCommand = "${pkgs.gitAndTools.delta}/bin/delta"; |
27 | 28 | in | |
28 | extraConfig = let | 29 | { |
29 | deltaCommand = "${pkgs.gitAndTools.delta}/bin/delta"; | 30 | init.defaultBranch = "master"; |
30 | in { | 31 | |
31 | init.defaultBranch = "master"; | 32 | core = { |
32 | 33 | whitespace = "trailing-space,space-before-tab"; | |
33 | core = { | 34 | pager = deltaCommand; |
34 | whitespace = "trailing-space,space-before-tab"; | 35 | interactive.diffFilter = "${deltaCommand} --color-only"; |
35 | pager = deltaCommand; | 36 | untrackedCache = true; |
36 | interactive.diffFilter = "${deltaCommand} --color-only"; | 37 | }; |
37 | untrackedCache = true; | 38 | |
38 | }; | 39 | diff = { |
39 | 40 | algorithm = "histogram"; | |
40 | diff = { | 41 | colormoved = "default"; |
41 | algorithm = "histogram"; | 42 | colorMovedWS = "allow-indentation-change"; |
42 | colormoved = "default"; | 43 | }; |
43 | colorMovedWS = "allow-indentation-change"; | 44 | |
44 | }; | 45 | pull.ff = "only"; |
45 | 46 | ||
46 | pull.ff = "only"; | 47 | rerere.enable = true; |
47 | 48 | ||
48 | rerere.enable = true; | 49 | merge = { |
49 | 50 | conflictStyle = "zdiff3"; | |
50 | merge = { | 51 | tool = "nvimdiff"; |
51 | conflictStyle = "zdiff3"; | 52 | }; |
52 | tool = "nvimdiff"; | 53 | "mergetool \"nvimdiff\"" = { |
53 | }; | 54 | cmd = "nvim -d \"$LOCAL\" \"$MERGED\" \"$REMOTE\""; |
54 | "mergetool \"nvimdiff\"" = {cmd = "nvim -d \"$LOCAL\" \"$MERGED\" \"$REMOTE\"";}; | 55 | }; |
55 | 56 | ||
56 | delta = with config.theme.colors; { | 57 | delta = with config.theme.colors; { |
57 | line-numbers = true; | 58 | line-numbers = true; |
58 | navigate = true; | 59 | navigate = true; |
59 | 60 | ||
60 | whitespace-error-style = "reverse green"; | 61 | whitespace-error-style = "reverse green"; |
61 | 62 | ||
62 | minus-style = "normal red"; | 63 | minus-style = "normal red"; |
63 | minus-non-emph-style = "normal red"; | 64 | minus-non-emph-style = "normal red"; |
64 | minus-emph-style = "normal brightred"; | 65 | minus-emph-style = "normal brightred"; |
65 | minus-empty-line-marker-style = "normal red"; | 66 | minus-empty-line-marker-style = "normal red"; |
66 | 67 | ||
67 | plus-style = "reverse green"; | 68 | plus-style = "reverse green"; |
68 | plus-non-emph-style = "reverse green"; | 69 | plus-non-emph-style = "reverse green"; |
69 | plus-emph-style = "reverse brightgreen"; | 70 | plus-emph-style = "reverse brightgreen"; |
70 | plus-empty-line-marker-style = "reverse green"; | 71 | plus-empty-line-marker-style = "reverse green"; |
71 | 72 | ||
72 | line-numbers-minus-style = "brightred"; | 73 | line-numbers-minus-style = "brightred"; |
73 | line-numbers-zero-style = "brightblack"; | 74 | line-numbers-zero-style = "brightblack"; |
74 | line-numbers-plus-style = "brightgreen"; | 75 | line-numbers-plus-style = "brightgreen"; |
75 | 76 | ||
76 | file-style = "bright${dominantName}"; | 77 | file-style = "bright${dominantName}"; |
77 | line-numbers-left-style = dominantName; | 78 | line-numbers-left-style = dominantName; |
78 | line-numbers-right-style = dominantName; | 79 | line-numbers-right-style = dominantName; |
79 | }; | 80 | }; |
81 | }; | ||
80 | }; | 82 | }; |
81 | }; | 83 | } |
82 | }; | 84 | ]; |
83 | 85 | ||
84 | # TODO: move common to NixOS' programs.git.config | 86 | # TODO: move common to NixOS' programs.git.config |
85 | home-manager.users.root = { | 87 | home-manager.users.minijackson.programs.git.signing = { |
86 | # TODO: use `home-manager.sharedModules`? | 88 | signByDefault = true; |
87 | programs.git = with lib; | 89 | key = "minijackson@riseup.net"; |
88 | mkMerge [ | ||
89 | (mkDefault config.home-manager.users.minijackson.programs.git) | ||
90 | { | ||
91 | signing = { | ||
92 | signByDefault = false; | ||
93 | key = null; | ||
94 | }; | ||
95 | } | ||
96 | ]; | ||
97 | }; | 90 | }; |
98 | } | 91 | } |