Simon Bruder
797fbb0d35
This removes some unused tools, changes the categorisation and moves some packages into modules that better fit them.
110 lines
2.9 KiB
Nix
110 lines
2.9 KiB
Nix
{ config, lib, pkgs, ... }:
|
||
{
|
||
programs.git = {
|
||
enable = true;
|
||
package = pkgs.gitFull;
|
||
userName = "Simon Bruder";
|
||
userEmail = "simon@sbruder.de";
|
||
signing = {
|
||
key = config.programs.gpg.settings.default-key;
|
||
signByDefault = true;
|
||
};
|
||
|
||
extraConfig = {
|
||
core.quotepath = "off";
|
||
pull.ff = "only";
|
||
diff = {
|
||
age = {
|
||
# This uses the de facto default key location with no ability to
|
||
# specify another key.
|
||
# If decryption fails (e.g. due to a lack of the right private key,
|
||
# rage’s error message will be displayed instead of the file’s
|
||
# contents.
|
||
textconv = toString (pkgs.writeShellScript "git-age-textconv" ''
|
||
${pkgs.rage}/bin/rage -d -i ${config.xdg.configHome}/age/keys.txt "$@" 2>&1 || true
|
||
'');
|
||
};
|
||
sops.textconv = "${pkgs.sops}/bin/sops -d";
|
||
};
|
||
sendemail = {
|
||
confirm = "auto";
|
||
smtpserver = "vueko.sbruder.de";
|
||
smtpuser = "simon@sbruder.de";
|
||
smtpencryption = "tls";
|
||
smtpserverport = 587;
|
||
};
|
||
credential = {
|
||
helper = "!${pkgs.pass-git-helper}/bin/pass-git-helper $@";
|
||
};
|
||
};
|
||
|
||
ignores = [
|
||
"*.swp"
|
||
".direnv"
|
||
"Session.vim"
|
||
];
|
||
|
||
lfs.enable = true;
|
||
delta = {
|
||
enable = true;
|
||
options = {
|
||
line-numbers = "true";
|
||
side-by-side = "true";
|
||
features = "decorations";
|
||
syntax-theme = "base16";
|
||
decorations = {
|
||
commit-decoration-style = "bold yellow box ul";
|
||
file-style = "bold yellow ul";
|
||
file-decoration-style = "none";
|
||
};
|
||
};
|
||
};
|
||
|
||
aliases = {
|
||
ls = "log --stat";
|
||
};
|
||
};
|
||
|
||
programs.zsh.shellAliases =
|
||
let
|
||
defaultBranch = "\${\${\$(git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null)##refs/remotes/origin/}:-master}";
|
||
in
|
||
{
|
||
ga = "git add";
|
||
gap = "git add --patch";
|
||
gc = "git commit";
|
||
gco = "git checkout";
|
||
gcp = "git cherry-pick";
|
||
gcv = "git commit --verbose";
|
||
gd = "git diff";
|
||
gdc = "git diff --cached";
|
||
gfom = "git fetch origin ${defaultBranch}";
|
||
gl = "git log";
|
||
glp = "git log --patch";
|
||
gls = "git log --stat";
|
||
gp = "git push";
|
||
grb = "git rebase";
|
||
grbi = "git rebase -i";
|
||
grbias = "git rebase -i --autosquash";
|
||
grbim = "git rebase -i ${defaultBranch}";
|
||
grbm = "git rebase ${defaultBranch}";
|
||
grbom = "git rebase origin/${defaultBranch}";
|
||
grs = "git restore";
|
||
grss = "git restore --staged";
|
||
gs = "git switch";
|
||
gsc = "git switch -c";
|
||
gsm = "git switch ${defaultBranch}";
|
||
gst = "git status";
|
||
};
|
||
|
||
xdg.configFile = {
|
||
"pass-git-helper/git-pass-mapping.ini".text = lib.generators.toINI { } {
|
||
"vueko.sbruder.de:587".target = "sbruder.de/mail";
|
||
};
|
||
};
|
||
|
||
home.packages = with pkgs; [
|
||
gitAndTools.pre-commit # pre-commit hook helper
|
||
];
|
||
}
|