diff options
| author | Stefan Weigl-Bosker <stefan@s00.xyz> | 2025-04-04 18:35:54 -0400 |
|---|---|---|
| committer | Stefan Weigl-Bosker <stefan@s00.xyz> | 2025-04-04 18:35:54 -0400 |
| commit | 2dccaa26240c1a1e0a608dadadb6d5391292495b (patch) | |
| tree | 1b1e5537e85a3bb721e56223923da278f3307770 /modules/git | |
| parent | f1150b73ebaae94c83d15e9def14acf0bbe704d5 (diff) | |
| download | home-2dccaa26240c1a1e0a608dadadb6d5391292495b.tar.gz | |
git and lazygit
Diffstat (limited to 'modules/git')
| -rw-r--r-- | modules/git/default.nix | 71 |
1 files changed, 71 insertions, 0 deletions
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:"; + }; + }; + }; + }; +} |