services:
  gitlab.tralios.de: "gitlab:gitlab.tralios.de"
  git.snaile.de: "gitea:git.snaile.de"
git:
  branchLogCmd: "git log --graph --color=always --abbrev-commit --date=relative --pretty=format:'%C(red)%h %C(green)%ad%C(auto)%d %C(blue)%ae %Creset%s' {{branchName}} --"
  paging:
    colorArg: always
    pager: delta --dark --paging=never --config $XDG_CONFIG_HOME/git/config
gui:
  nerdFontsVersion: "3"
  showRandomTip: false
  showBottomLine: false
  skipDiscardChangeWarning: true
  border: single
  sidePanelWidth: 0.25
  theme:
    activeBorderColor:
      - "#ff9e64"
      - "bold"
    inactiveBorderColor:
      - "#27a1b9"
    searchingActiveBorderColor:
      - "#ff9e64"
      - "bold"
    optionsTextColor:
      - "#7aa2f7"
    selectedLineBgColor:
      - "#283457"
    cherryPickedCommitFgColor:
      - "#7aa2f7"
    cherryPickedCommitBgColor:
      - "#bb9af7"
    markedBaseCommitFgColor:
      - "#7aa2f7"
    markedBaseCommitBgColor:
      - "#e0af68"
    unstagedChangesColor:
      - "#db4b4b"
    defaultFgColor:
      - "#c0caf5"
update:
  days: 1
refresher:
  refreshInterval: 5
  fetchInterval: 30
disableStartupPopups: true
keybinding:
  universal:
    openDiffTool: <disabled>
customCommands:
  - key: b
    command: "git branch --merged main | grep -v '^[ *]*main$' | xargs -r git branch -d; git branch --merged master | grep -v '^[ *]*master$' | xargs -r git branch -d"
    context: "localBranches"
    loadingText: "Pruning..."
    description: "prune local branches that have been merged to main/master"
  - key: "<c-t>"
    context: "global"
    command: " tag=$(date +%Y).$(date +%m | sed 's/^0//').$(($(git tag --sort=-v:refname | grep ^$MAJOR.$MINOR | head -n 1 | cut -d . -f 3) + 1)); git tag $tag; git push {{ .SelectedRemote.Name }} $tag; "
    description: "Create and push a tag based off the date"
    loadingText: "Tagging/Pushing..."
  - key: "<c-v>"
    context: "global"
    description: "Create new conventional commit"
    prompts:
      - type: "menu"
        key: "Type"
        title: "Type of change"
        options:
          - name: "build"
            description: "Changes that affect the build system or external dependencies"
            value: "build"
          - name: "feat"
            description: "A new feature"
            value: "feat"
          - name: "fix"
            description: "A bug fix"
            value: "fix"
          - name: "chore"
            description: "Other changes that don't modify src or test files"
            value: "chore"
          - name: "ci"
            description: "Changes to CI configuration files and scripts"
            value: "ci"
          - name: "docs"
            description: "Documentation only changes"
            value: "docs"
          - name: "perf"
            description: "A code change that improves performance"
            value: "perf"
          - name: "refactor"
            description: "A code change that neither fixes a bug nor adds a feature"
            value: "refactor"
          - name: "revert"
            description: "Reverts a previous commit"
            value: "revert"
          - name: "style"
            description: "Changes that do not affect the meaning of the code"
            value: "style"
          - name: "test"
            description: "Adding missing tests or correcting existing tests"
            value: "test"
      - type: "input"
        title: "Scope - Add '(<scope>)'"
        key: "Scope"
        initialValue: ""
      - type: "input"
        title: "Breaking change - Add '!'"
        key: "Breaking"
        initialValue: ""
      - type: "input"
        title: "message"
        key: "Message"
        initialValue: ""
      - type: "confirm"
        key: "Confirm"
        title: "Commit"
        body: "Are you sure you want to commit?"
    command: "git commit --message '{{.Form.Type}}{{.Form.Scope}}{{.Form.Breaking}}: {{.Form.Message}}'"
    loadingText: "Creating conventional commit..."
notARepository: skip
promptToReturnFromSubprocess: true