mirror of https://git.jolheiser.com/dotnix.git
76 lines
1.9 KiB
Nix
76 lines
1.9 KiB
Nix
{
|
|
pkgs,
|
|
config,
|
|
...
|
|
}: let
|
|
insteadOf = prefix: domain: {
|
|
"https://${domain}/".insteadOf = "${prefix}:";
|
|
"git@${domain}:".insteadOf = "ssh:${prefix}:";
|
|
};
|
|
key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAUxLwkJOlalAHTdkbh+m49XTZGKDqWz1o/o8OLmtQdX";
|
|
sshSigning = {
|
|
user.signingkey = key;
|
|
commit.gpgSign = true;
|
|
tag.gpgSign = true;
|
|
gpg = {
|
|
format = "ssh";
|
|
ssh.allowedSignersFile = "${pkgs.writeText "allowedSigners" "git@jolheiser.com ${key}"}";
|
|
};
|
|
};
|
|
in {
|
|
programs.git = {
|
|
enable = true;
|
|
userName = "jolheiser";
|
|
userEmail = "git@jolheiser.com";
|
|
aliases = {
|
|
wt = "worktree";
|
|
ci = "commit -s -S -m";
|
|
br = "branch";
|
|
aa = "add .";
|
|
adog = "log --all --decorate --oneline --graph";
|
|
poh = "push origin HEAD";
|
|
cb = "checkout -b";
|
|
fu = "fetch upstream";
|
|
fo = "fetch origin";
|
|
dh = "diff HEAD";
|
|
unstage = "restore --staged";
|
|
last = "log --show-signature --format=fuller --max-count=1 HEAD";
|
|
tui = "!lazygit";
|
|
};
|
|
lfs.enable = true;
|
|
ignores = [".idea/" "result" "node_modules" "ve"];
|
|
extraConfig =
|
|
{
|
|
init.defaultBranch = "main";
|
|
merge.conflictstyle = "zdiff3";
|
|
diff.colorMoved = "default";
|
|
core.editor = "hx";
|
|
push = {
|
|
sutoSetupRemote = true;
|
|
default = "current";
|
|
gpgSign = "if-asked";
|
|
};
|
|
rerere.enabled = true;
|
|
pull.rebase = true;
|
|
diff.algorithm = "histogram";
|
|
merge.tool = "hx";
|
|
url =
|
|
insteadOf "jo" "git.jolheiser.com"
|
|
// insteadOf "gh" "github.com"
|
|
// insteadOf "jj" "git.jojodev.com"
|
|
// insteadOf "gt" "gitea.com"
|
|
// insteadOf "gl" "gitlab.com"
|
|
// insteadOf "cb" "codeberg.org";
|
|
}
|
|
// sshSigning;
|
|
difftastic = {
|
|
enable = true;
|
|
};
|
|
includes = [
|
|
{
|
|
path = config.age.secrets.git-send-email.path;
|
|
}
|
|
];
|
|
};
|
|
}
|