From 2dccaa26240c1a1e0a608dadadb6d5391292495b Mon Sep 17 00:00:00 2001 From: Stefan Weigl-Bosker Date: Fri, 4 Apr 2025 18:35:54 -0400 Subject: git and lazygit --- modules/git/default.nix | 71 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 modules/git/default.nix (limited to 'modules/git') diff --git a/modules/git/default.nix b/modules/git/default.nix new file mode 100644 index 0000000..e8c9d9c --- /dev/null +++ b/modules/git/default.nix @@ -0,0 +1,71 @@ +{ config, lib, pkgs, ... }: +let + cfg = config.modules.git; +in +{ + options.modules.git = { + enable = lib.mkEnableOption "git"; + }; + + config = lib.mkIf cfg.enable { + # home.packages = with pkgs; [ + # ]; + programs.git = { + enable = true; + package = pkgs.gitAndTools.gitFull; + userName = "Stefan Weigl-Bosker"; + userEmail = "stefan@s00.xyz"; + aliases = { + co = "checkout"; + ri = "rebase -i"; + ag = "add -g"; + pushf = "push --force-with-lease"; + }; + delta = { + enable = true; + options = { + "syntax-theme" = "base16-256"; + navigate = true; + dark = true; + }; + }; +# extraConfig = {}; + # hooks = { + # pre-commit = ; + # }; + ignores = [ + "*.swp" + "*.swo" + "*.swf" + "*~" + "*.tmp" + "Session.vim" + ".envrc" + ".direnv/" + ".ignore/" + ]; + signing = { + signByDefault = true; + }; + extraConfig = { + init.defaultBranch = "main"; + merge.conflictStyle = "zdiff3"; + pull.rebase = true; + rebase = { + autoSquash = true; + updateRefs = true; + }; + fetch = { + prune = true; + pruneTags = true; + all = true; + }; + url = { + "ssh://git@s00.xyz:".insteadOf = "g:/"; + "ssh://git@github.com:sweiglbosker/".insteadOf = "gh:/"; + "ssh://git@github.com:".insteadOf = "gh:"; + }; + }; + }; + }; +} -- cgit v1.2.3