[core]
    whitespace = trailing-space
    autocrlf = input
{% if ssh_client == 'dropbear' %}
    sshCommand = dbclient -y
{% endif %}
[user]
    name = {{ user_fullname }}
    email = {{ user_email }}
{% if ssh_client == 'openssh' and gitcommit_sign_method == 'ssh' %}
    signingKey = {{ user_ssh_key_path | default('~/.ssh/id_ed25519') }}
{% elif gitcommit_sign_method == 'openpgp' %}
    signingKey = {{ user_gpg_signature }}
{% endif %}
[gpg]
    format = {{ (gitcommit_sign_method in ['ssh', 'openpgp']) | ternary(gitcommit_sign_method, 'x509') }}
{% if not gitcommit_sign_method in ['ssh', 'openpgp'] %}
[gpg "x509"]
    program = {{ gitcommit_sign_method }}
{% endif %}
[http]
    sslVerify = true
[commit]
    gpgSign = true
    verbose = true
[tag]
    gpgSign = true
[rebase]
    autoSquash = true
[pull]
    rebase = true
[fetch]
    prune = true
[init]
    defaultBranch = main
    templateDir = {{ xdg_dir.config_home }}/git/templates
[push]
    followTags = true
[diff]
    wsErrorHighlight = all
    # mnemonicPrefix = true
    # colorMoved = dimmed-zebra
[format]
    useAutoBase = true
[color]
    ui = true
[color "diff"]
    meta = cyan
    frag = magenta bold
    commit = yellow bold
    old = red
    new = green
    whitespace = red reverse
[web]
    browser = xdg-open
[help]
    autoCorrect = 1
[submodule]
    recurse = true
[alias]
    l = log --all --graph --pretty=format:'%C(yellow)%h%Creset %C(bold)<%an>%Creset -%C(bold)%C(green)%d%Creset %C(blue)%s%Creset (%cr)'
    br = branch --sort=-committerdate --format='%(HEAD) %(color:yellow)%(refname:short)%(color:reset) %(color:bold)<%(authorname)>%(color:reset) - %(color:blue)%(contents:subject)%(color:reset) (%(committerdate:relative))'
    s = status -sbu
    sbu = submodule update --remote --rebase
    redo = reset HEAD~1
    unstage = reset HEAD
    wdiff = diff --word-diff
    compare = !git log $1...$2 --format='%C(bold)%C(green)%m%Creset %C(yellow)%h%Creset %C(bold)<%an>%Creset - %C(blue)%s%Creset' --left-right

# External, non-core functions
[sendemail]
    annotate = true
[privacy]
    ignoreTimezone = true
    pattern = hms
[ghq]
    root = ~/Code
