summaryrefslogtreecommitdiffstats
path: root/common/commandline
diff options
context:
space:
mode:
authorMinijackson <minijackson@riseup.net>2024-07-27 15:45:08 +0200
committerMinijackson <minijackson@riseup.net>2024-07-27 15:45:08 +0200
commit8ea1cc553f28bef4a48fa23a53752e92a131bdcb (patch)
treeca991e3dfc308075c814796d1ecab91db9d138ed /common/commandline
parenta04d6377a4415c4f74875cc5d23528fbac72bb59 (diff)
downloadnixos-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.nix163
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 @@
1inputs: { 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}