From 8ea1cc553f28bef4a48fa23a53752e92a131bdcb Mon Sep 17 00:00:00 2001 From: Minijackson Date: Sat, 27 Jul 2024 15:45:08 +0200 Subject: common/git: format, use home-manager.sharedModules --- common/commandline/git.nix | 163 ++++++++++++++++++++++----------------------- 1 file changed, 78 insertions(+), 85 deletions(-) (limited to 'common/commandline/git.nix') 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 @@ -inputs: { - config, - pkgs, - lib, - ... -}: { +_inputs: +{ config, pkgs, ... }: +{ environment = { - systemPackages = with pkgs; [unstable.git-branchless unstable.gitoxide watchman]; + systemPackages = with pkgs; [ + unstable.git-branchless + unstable.gitoxide + watchman + ]; shellAliases.git = "git-branchless wrap --"; }; @@ -13,86 +14,78 @@ inputs: { source ${../../dotfiles/git-branchless.zsh} ''; - home-manager.users.minijackson = { - programs.git = { - enable = true; - package = pkgs.gitAndTools.gitFull; - userEmail = "minijackson@riseup.net"; - userName = "Minijackson"; - - signing = { - signByDefault = true; - key = "minijackson@riseup.net"; - }; - - extraConfig = let - deltaCommand = "${pkgs.gitAndTools.delta}/bin/delta"; - in { - init.defaultBranch = "master"; - - core = { - whitespace = "trailing-space,space-before-tab"; - pager = deltaCommand; - interactive.diffFilter = "${deltaCommand} --color-only"; - untrackedCache = true; - }; - - diff = { - algorithm = "histogram"; - colormoved = "default"; - colorMovedWS = "allow-indentation-change"; - }; - - pull.ff = "only"; - - rerere.enable = true; - - merge = { - conflictStyle = "zdiff3"; - tool = "nvimdiff"; - }; - "mergetool \"nvimdiff\"" = {cmd = "nvim -d \"$LOCAL\" \"$MERGED\" \"$REMOTE\"";}; - - delta = with config.theme.colors; { - line-numbers = true; - navigate = true; - - whitespace-error-style = "reverse green"; - - minus-style = "normal red"; - minus-non-emph-style = "normal red"; - minus-emph-style = "normal brightred"; - minus-empty-line-marker-style = "normal red"; - - plus-style = "reverse green"; - plus-non-emph-style = "reverse green"; - plus-emph-style = "reverse brightgreen"; - plus-empty-line-marker-style = "reverse green"; - - line-numbers-minus-style = "brightred"; - line-numbers-zero-style = "brightblack"; - line-numbers-plus-style = "brightgreen"; - - file-style = "bright${dominantName}"; - line-numbers-left-style = dominantName; - line-numbers-right-style = dominantName; - }; + home-manager.sharedModules = [ + { + programs.git = { + enable = true; + package = pkgs.gitAndTools.gitFull; + userEmail = "minijackson@riseup.net"; + userName = "Minijackson"; + + extraConfig = + let + deltaCommand = "${pkgs.gitAndTools.delta}/bin/delta"; + in + { + init.defaultBranch = "master"; + + core = { + whitespace = "trailing-space,space-before-tab"; + pager = deltaCommand; + interactive.diffFilter = "${deltaCommand} --color-only"; + untrackedCache = true; + }; + + diff = { + algorithm = "histogram"; + colormoved = "default"; + colorMovedWS = "allow-indentation-change"; + }; + + pull.ff = "only"; + + rerere.enable = true; + + merge = { + conflictStyle = "zdiff3"; + tool = "nvimdiff"; + }; + "mergetool \"nvimdiff\"" = { + cmd = "nvim -d \"$LOCAL\" \"$MERGED\" \"$REMOTE\""; + }; + + delta = with config.theme.colors; { + line-numbers = true; + navigate = true; + + whitespace-error-style = "reverse green"; + + minus-style = "normal red"; + minus-non-emph-style = "normal red"; + minus-emph-style = "normal brightred"; + minus-empty-line-marker-style = "normal red"; + + plus-style = "reverse green"; + plus-non-emph-style = "reverse green"; + plus-emph-style = "reverse brightgreen"; + plus-empty-line-marker-style = "reverse green"; + + line-numbers-minus-style = "brightred"; + line-numbers-zero-style = "brightblack"; + line-numbers-plus-style = "brightgreen"; + + file-style = "bright${dominantName}"; + line-numbers-left-style = dominantName; + line-numbers-right-style = dominantName; + }; + }; }; - }; - }; + } + ]; # TODO: move common to NixOS' programs.git.config - home-manager.users.root = { - # TODO: use `home-manager.sharedModules`? - programs.git = with lib; - mkMerge [ - (mkDefault config.home-manager.users.minijackson.programs.git) - { - signing = { - signByDefault = false; - key = null; - }; - } - ]; + home-manager.users.minijackson.programs.git.signing = { + signByDefault = true; + key = "minijackson@riseup.net"; }; } -- cgit v1.2.3