104 lines
2.6 KiB
Nix
104 lines
2.6 KiB
Nix
{ pkgs, ... }:
|
|
{
|
|
|
|
home.packages = with pkgs; [
|
|
git-absorb
|
|
git-trim
|
|
];
|
|
programs.git = {
|
|
enable = true;
|
|
package = pkgs.gitAndTools.gitFull;
|
|
aliases = {
|
|
s = "status --short --branch";
|
|
a = "add --patch";
|
|
c = "commit --message";
|
|
l = "log --color --graph --pretty=format:'%Cred%h%Creset - %C(bold)%s%Creset%C(yellow)%d%Creset %C(green)%an%Creset %C(cyan)%cr%Creset (S: %G?)' --abbrev-commit";
|
|
d = "diff";
|
|
|
|
fup = "commit --fixup";
|
|
fuprebase = "rebase --interactive --autosquash";
|
|
|
|
ignore = "update-index --skip-worktree";
|
|
unignore = "update-index --no-skip-worktree";
|
|
ignored = ''!git ls-files -v | grep "^S"'';
|
|
};
|
|
#delta = {
|
|
# enable = true;
|
|
# catppuccin.enable = true;
|
|
# options = {
|
|
# side-by-side = "true";
|
|
|
|
# line-numbers = "true";
|
|
# line-numbers-minus-style = "#444444";
|
|
# line-numbers-zero-style = "#444444";
|
|
# line-numbers-plus-style = "#444444";
|
|
# line-numbers-left-format = "{nm:>4}┊";
|
|
# line-numbers-right-format = "{np:>4}│";
|
|
# line-numbers-left-style = "blue";
|
|
# line-numbers-right-style = "blue";
|
|
# };
|
|
#};
|
|
extraConfig = {
|
|
init.defaultBranch = "main";
|
|
core = {
|
|
packedGitWindowSize = "16m";
|
|
packedGitLimit = "64m";
|
|
};
|
|
pack = {
|
|
windowMemory = "64m";
|
|
packSizeLimit = "64m";
|
|
thread = "1";
|
|
deltaCacheSize = "1m";
|
|
};
|
|
color = {
|
|
branch = "auto";
|
|
diff = "auto";
|
|
status = "auto";
|
|
};
|
|
push = {
|
|
default = "current";
|
|
autoSetupRemote = true;
|
|
};
|
|
pull.rebase = "true";
|
|
branch.autosetuprebase = "always";
|
|
log.follow = true;
|
|
rerere.enabled = true;
|
|
fetch.recurseSubmodules = "on-demand";
|
|
credential.helper = [
|
|
"libsecret"
|
|
"cache --timeout 21600"
|
|
];
|
|
};
|
|
ignores = [
|
|
"*~"
|
|
"*.swp"
|
|
".direnv/"
|
|
];
|
|
lfs.enable = true;
|
|
includes =
|
|
let
|
|
mkConfig = (
|
|
dir: {
|
|
condition = "gitdir:${dir}";
|
|
contents = {
|
|
user = {
|
|
signingkey = "0x8A52A140BEBF7D2C";
|
|
email = "fabian@fh2.ch";
|
|
name = "Fabian Hauser";
|
|
};
|
|
};
|
|
}
|
|
);
|
|
in
|
|
map mkConfig [
|
|
"~/private/"
|
|
"~/projects/"
|
|
"/etc/nixos/"
|
|
"~/.password-store/"
|
|
"~/.stateful/"
|
|
"~/shares/cloud.qo.is/"
|
|
"~/shares/drive.switch.ch/"
|
|
];
|
|
};
|
|
programs.git-credential-oauth.enable = true;
|
|
}
|