{ lib, config, pkgs, ... }: { # git plugins programs.git = { lfs.enable = true; patdiff.enable = lib.mkMerge [ # known to fail on aarch64-linux (lib.mkIf (pkgs.system == "aarch64-linux") ( # TODO: investigate this lib.warn "patdiff has been forcibly disabled because it has previously failed to build" lib.mkForce false )) (lib.mkDefault true) ]; }; # 懶惰鬼賴皮 programs.lazygit = let patdiffCfg = config.programs.git.patdiff; in lib.mkIf patdiffCfg.enable { settings = { git.paging.externalDiffCommand = "${lib.getExe' patdiffCfg.package "patdiff-git-wrapper"}"; }; }; # git itself programs.git = { extraConfig = { init.defaultBranch = "trunk"; # I like trees push.autoSetupRemote = true; pull.ff = "only"; rerere.enabled = true; }; ignores = [ # sanity ".env" # vim "*~" "*.swp" # darwin "**/.DS_Store" # nix ".direnv/" "**/result" "**/result-*" # building an attr of derivation will make multiple links # pre-commit ".pre-commit-config.yaml" ]; }; # identity programs.git = { userEmail = "leana.jiang+git@icloud.com"; userName = "Léana 江"; signing = { key = "0x4E887A4CA9714ADA"; signByDefault = lib.mkDefault false; }; }; }