dotfiles/.config/lazygit/config.yml
2025-08-13 19:40:06 +02:00

313 lines
10 KiB
YAML

# yaml-language-server: $schema=https://raw.githubusercontent.com/jesseduffield/lazygit/master/schema/config.json
gui:
scrollHeight: 10 # how many lines you scroll by
scrollPastBottom: false # enable scrolling past the bottom
sidePanelWidth: 0.22 # number from 0 to 1
expandFocusedSidePanel: true
theme:
activeBorderColor:
- "#a6da95"
- bold
inactiveBorderColor:
- "#a5adcb"
optionsTextColor:
- "#8aadf4"
selectedLineBgColor:
- "#363a4f"
cherryPickedCommitBgColor:
- "#494d64"
cherryPickedCommitFgColor:
- "#b7bdf8"
unstagedChangesColor:
- "#ed8796"
defaultFgColor:
- "#cad3f5"
searchingActiveBorderColor:
- "#eed49f"
commitLength:
show: true
branchColors:
"release": "#eed49f"
"hotfix": "#ed8796"
"feature": "#a6da95"
showBottomLine: false # for hiding the bottom information line (unless it has important information to tell you)
nerdFontsVersion: "3" # nerd fonts version to use ("2" or "3"); empty means don't show nerd font icons
showNumstatInFilesView: true
commandLogSize: 5
showDivergenceFromBaseBranch: "arrowAndNumber"
filterMode: "fuzzy"
showPanelJumps: false
skipRewordInEditorWarning: true # for skipping the confirmation before launching the reword editor
border: "rounded" # one of 'single' | 'double' | 'rounded' | 'hidden'
statusPanelView: allBranchesLog
git:
paging:
colorArg: always
pager: delta --paging=never --dark --hyperlinks-file-link-format="lazygit-edit://{path}:{line}"
branchLogCmd: "git log --graph --color=always --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(auto)%d%C(reset)' {{branchName}} --"
parseEmoji: true
allBranchesLogCmds:
- git log --graph --all --color=always --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(auto)%d%C(reset)%n'' %C(white)%s%C(reset) %C(dim white)- %an%C(reset)'
os:
editPreset: "nvim-remote"
# edit: '[ -z "$NVIM" ] && (nvim -- {{filename}}) || (nvim --server "$NVIM" --remote-send "q" && nvim --server "$NVIM" --remote {{filename}})'
disableStartupPopups: true
notARepository: "skip" # one of: 'prompt' | 'create' | 'skip' | 'quit'
promptToReturnFromSubprocess: false
keybinding:
universal:
quit: "q"
quit-alt1: "<c-c>" # alternative/alias of quit
return: "<esc>" # return to previous menu, will quit if there's nowhere to return
quitWithoutChangingDirectory: "Q"
togglePanel: "<tab>" # goto the next panel
prevItem: "<up>" # go one line up
nextItem: "<down>" # go one line down
prevItem-alt: "k" # go one line up
nextItem-alt: "j" # go one line down
prevPage: "K" # go to next page in list
nextPage: "J" # go to previous page in list
gotoTop: "<" # go to top of list
gotoBottom: ">" # go to bottom of list
scrollLeft: "H" # scroll left within list view
scrollRight: "L" # scroll right within list view
prevBlock: "<left>" # goto the previous block / panel
nextBlock: "<right>" # goto the next block / panel
prevBlock-alt: "" # goto the previous block / panel
nextBlock-alt: "" # goto the next block / panel
jumpToBlock: ["1", "2", "3", "4", "5"] # goto the Nth block / panel
nextMatch: "n"
prevMatch: "N"
optionMenu: <disabled> # show help menu
optionMenu-alt1: "?" # show help menu
select: "<space>"
goInto: "<enter>"
openRecentRepos: "<c-r>"
confirm: "<enter>"
remove: "d"
new: "n"
edit: "e"
openFile: "o"
scrollUpMain: "<pgup>" # main panel scroll up
scrollDownMain: "<pgdown>" # main panel scroll down
scrollUpMain-alt1: "<c-u>" # main panel scroll up
scrollDownMain-alt1: "<c-d>" # main panel scroll down
scrollUpMain-alt2: "<disabled>" # main panel scroll up
scrollDownMain-alt2: "<disabled>" # main panel scroll down
executeShellCommand: ":"
createRebaseOptionsMenu: "m"
pushFiles: "P"
pullFiles: "p"
refresh: "R"
createPatchOptionsMenu: "<c-p>"
nextTab: "l"
prevTab: "h"
nextScreenMode: "+"
prevScreenMode: "_"
undo: "z"
redo: "<c-z>"
filteringMenu: "<c-s>"
diffingMenu: "W"
diffingMenu-alt: "<c-e>" # deprecated
copyToClipboard: "<c-o>"
submitEditorText: "<enter>"
extrasMenu: "@"
toggleWhitespaceInDiffView: "<c-w>"
increaseContextInDiffView: "}"
decreaseContextInDiffView: "{"
status:
checkForUpdate: "u"
recentRepos: "<enter>"
files:
commitChanges: "<c-c>"
commitChangesWithoutHook: "w" # commit changes without pre-commit hook
amendLastCommit: "A"
commitChangesWithEditor: "c"
ignoreFile: "i"
refreshFiles: "r"
stashAllChanges: "s"
viewStashOptions: "S"
toggleStagedAll: "a" # stage/unstage all
viewResetOptions: "D"
fetch: "f"
toggleTreeView: "`"
openMergeTool: "M"
openStatusFilter: "<c-b>"
branches:
createPullRequest: "o"
viewPullRequestOptions: "O"
checkoutBranchByName: "c"
forceCheckoutBranch: "F"
rebaseBranch: "r"
renameBranch: "R"
mergeIntoCurrentBranch: "M"
viewGitFlowOptions: "i"
fastForward: "f" # fast-forward this branch from its upstream
createTag: "T"
pushTag: "P"
setUpstream: "u" # set as upstream of checked-out branch
fetchRemote: "f"
commits:
squashDown: "s"
renameCommit: "R"
renameCommitWithEditor: "r"
viewResetOptions: "g"
markCommitAsFixup: "f"
createFixupCommit: "F" # create fixup commit for this commit
squashAboveCommits: "S"
moveDownCommit: "<c-j>" # move commit down one
moveUpCommit: "<c-k>" # move commit up one
amendToCommit: "A"
pickCommit: "p" # pick commit (when mid-rebase)
revertCommit: "t"
pasteCommits: "v"
tagCommit: "T"
checkoutCommit: "<space>"
resetCherryPick: "<c-R>"
openLogMenu: "<c-l>"
viewBisectOptions: "b"
stash:
popStash: "g"
renameStash: "r"
commitFiles:
checkoutCommitFile: "c"
main:
toggleSelectHunk: "a"
pickBothHunks: "b"
submodules:
init: "i"
update: "u"
bulkMenu: "b"
customCommands:
- key: "<c-n>"
description: "New branch with prefix"
prompts:
- type: "menu"
title: "Creating new branch. What kind of branch is it?"
options:
- name: "feature"
value: "feat"
- name: "hotfix"
value: "hotfix"
- name: "fix/bugfix"
value: "fix"
- name: "chore"
value: "chore"
- name: "experiment"
value: "experiment"
- type: "input"
title: "What is the new branch name?"
initialValue: ""
command: "git checkout -b {{index .PromptResponses 0}}/{{index .PromptResponses 1}}"
context: "localBranches"
loadingText: "Creating branch"
- key: "<c-r>"
description: "Create pull request on GitHub"
context: files, localBranches
prompts:
- type: "input"
title: "Pull Request Title"
key: "title"
initialValue: ""
- type: "input"
title: "Base Branch (leave empty for default branch)"
key: "base"
initialValue: ""
- type: "menu"
title: "Create as draft PR?"
key: "draft"
options:
- name: "No"
value: ""
- name: "Yes"
value: "--draft"
- type: "menu"
title: "Add Reviewers"
key: "reviewers"
options:
- name: "CNS"
value: "--reviewer peterbornerup,farhadh,benjaminbruun"
- name: "None"
value: ""
command: >
gh pr create --assignee @me --title "{{.Form.title}}" --fill {{ if ne .Form.base "" }}--base "{{.Form.base}}"{{ end }} {{.Form.draft}} {{ if eq .Form.reviewers "other" }}--reviewer "{{.Form.customReviewers}}"{{ else }}{{.Form.reviewers}}{{ end }}
loadingText: "Creating pull request on GitHub"
- key: "o"
command: "gh repo view --web"
context: "localBranches"
description: "View Repo on GitHub"
loadingText: "Opening GitHub - Repository ..."
- key: "O"
command: "gh pr view --web"
context: "localBranches"
description: "View PR on GitHub"
loadingText: "Opening GitHub - Pull request ..."
- key: "C"
context: "global"
description: "Create new conventional commit"
prompts:
- type: "menu"
key: "Type"
title: "Type of change"
options:
- 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: "build"
description: "Changes that affect the build system or external dependencies"
value: "build"
- 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"
key: "Scope"
initialValue: ""
- type: "menu"
key: "Breaking"
title: "Breaking change"
options:
- name: "no"
value: ""
- name: "yes"
value: "!"
- 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}}{{ if .Form.Scope }}({{ .Form.Scope }}){{ end }}{{.Form.Breaking}}: {{.Form.Message}}'"
loadingText: "Creating conventional commit..."
- key: "R"
command: "git reset --soft HEAD~1"
context: "files"
description: "Undo last commit"