nixos-config/modules/home/all/git.nix
2025-01-19 13:25:12 -05:00

61 lines
1.5 KiB
Nix

{ pkgs, flake, ... }:
let
package =
#if pkgs.stdenv.isDarwin then
# Upstream has broken mac package
# pkgs.gitAndTools.gitFull.override { svnSupport = false; }
#else
pkgs.gitAndTools.git;
in
{
home.packages = with pkgs; [
git-filter-repo
];
programs.git = {
inherit package;
# difftastic.enable = true;
enable = true;
userName = flake.config.me.fullname;
userEmail = flake.config.me.email;
aliases = {
co = "checkout";
ci = "commit";
cia = "commit --amend";
s = "status";
st = "status";
b = "branch";
# p = "pull --rebase";
pu = "push";
};
iniContent = {
# Branch with most recent change comes first
branch.sort = "-committerdate";
# Remember and auto-resolve merge conflicts
# https://git-scm.com/book/en/v2/Git-Tools-Rerere
rerere.enabled = true;
};
ignores = [ "*~" "*.swp" ];
lfs.enable = true;
extraConfig = {
init.defaultBranch = "master"; # Undo breakage due to https://srid.ca/luxury-belief
core.editor = "nvim";
#protocol.keybase.allow = "always";
credential.helper = "store --file ~/.git-credentials";
pull.rebase = "false";
};
};
programs.lazygit = {
enable = true;
settings = {
# This looks better with the kitty theme.
gui.theme = {
lightTheme = false;
activeBorderColor = [ "white" "bold" ];
inactiveBorderColor = [ "white" ];
selectedLineBgColor = [ "reverse" "white" ];
};
};
};
}