{ lib, config, ... }: { options.zpha.programs.git.enable = lib.mkEnableOption "zaphyras git config"; config = lib.mkIf config.zpha.programs.git.enable { users.users.zaphyra.maid = { programs = { git = { enable = true; ignores = [ ".DS_Store" "*.swp" ]; settings = { user = { name = "Katja Ramona Sophie Kwast (zaphyra)"; email = "git@zaphyra.eu"; }; aliases = { plog = "log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all"; log-gpg = "log --show-signature"; fixup = "commit --fixup"; fuck = "reset HEAD~1"; pfusch = "push --force-with-lease --force-if-includes"; yikes = "commit --amend --no-edit"; }; init.defaultBranch = "main"; diff.algorithm = "histogram"; commit.verbose = true; rerere.enabled = true; merge.conflictstyle = "zdiff3"; rebase = { autosquash = true; autostash = true; }; push = { default = "current"; autoSetupRemote = true; }; pull.rebase = true; transfer.fsckobjects = true; fetch.fsckobjects = true; receive.fsckObjects = true; }; }; lazygit = { enable = true; settings = { disableStartupPopups = true; gui.nerdFontsVersion = "3"; git.overrideGpg = true; os.editPreset = "micro"; }; }; fish.aliases = { reinitgit = "rm -rf .git && git init && git add -A && git commit -m 'init'"; }; }; }; }; }