Skip to content
dots
Esc
↑↓navigate↵open⌘Jpreview
On this page

Lazygit

Lazygit with cyberdream colors, delta diffs, a full keybinding map, and custom commands wired to gh and helper scripts.

Lazygit is a terminal UI for git. The config sets cyberdream colors, renders diffs with delta, turns on background fetching and a whole-graph log, and adds custom commands that call gh.

Source dot_config/lazygit/config.yml, dot_config/lazygit/ii-theme.yml
Target ~/.config/lazygit/config.yml, ~/.config/lazygit/ii-theme.yml
Packages lazygit (pacman / Homebrew)
Ignored .config/lazygit/.omc/** (agent tooling state)

Launching

Entry point Behavior
gg Alias for lazygit (all shells)
Ctrl+g fish and zsh keybinding
Ctrl+Shift+g Kitty: lazygit as an overlay on the current window. The tmux-host kitty config opens it in a 90% tmux display-popup instead.

tmux-resurrect lists lazygit among the processes it restores.

GUI

Colors come from the cyberdream palette:

Theme key Color
activeBorderColor #5ef1ff
inactiveBorderColor #7b8496
searchingActiveBorderColor #ff5ef1
optionsTextColor #7b8496
selectedLineBgColor #3c4048
cherryPickedCommitBgColor #3c4048
cherryPickedCommitFgColor #ff5ea0
unstagedChangesColor #ffbd5e
defaultFgColor #ffffff
authorColors."*" #ffffff (every author the same color)
Option Value
border rounded
scrollHeight / scrollPastBottom 2 / true
scrollOffMargin / scrollOffBehavior 2 / margin
mouseEvents true
skipDiscardChangeWarning true
skipStashWarning true
skipNoStagedFilesWarning false
skipRewordInEditorWarning false
sidePanelWidth 0.4
expandFocusedSidePanel / expandedSidePanelWeight true / 2
mainPanelSplitMode horizontal
enlargedSideViewLocation left
language auto
timeFormat / shortTimeFormat 02 Jan 06 / 3:04PM
commitLength.show true
showListFooter true
showFileTree true
showRandomTip false
showCommandLog / commandLogSize true / 4
showBottomLine false (keybinding hint line hidden)
showPanelJumps false
showIcons, nerdFontsVersion, showFileIcons true, "3", true
commitAuthorShortLength / commitAuthorLongLength 2 (initials) / 17
commitHashLength 8
showBranchCommitHash true
showDivergenceFromBaseBranch arrowAndNumber
splitDiff auto
screenMode normal
animateExplosion true
portraitMode auto
filterMode fuzzy
spinner.frames / spinner.rate ASCII bar (|, /, -, \) / 50 ms
statusPanelView allBranchesLog

Git

Option Value
diffRenderers delta --dark --paging=never with colorArg: always. delta also reads the [delta] section of ~/.gitconfig; see Git.
commit.signOff false
commit.autoWrapCommitMessage / autoWrapWidth true / 72
merging.manualCommit / args false / empty
merging.squashMergeMessage Squash merge {{selectedRef}} into {{currentBranch}}
mainBranches develop
skipHookPrefix WIP (a message starting with WIP skips pre-commit hooks)
autoFetch / autoRefresh / fetchAll true / true / true
branchLogCmd git log --graph --color=always --abbrev-commit --decorate --date=relative --pretty=medium {{branchName}} --
allBranchesLogCmds git log --graph --all --color=always --abbrev-commit --decorate --date=relative --pretty=medium
overrideGpg false
disableForcePushing false
commitPrefix / branchPrefix empty
parseEmoji true
log.order / showGraph / showWholeGraph topo-order / always / true
truncateCopiedCommitHashesTo 8

Refresh, updates, and OS

Option Value
update.method / days background / 14
refresher.refreshInterval 10 s
refresher.fetchInterval 60 s
confirmOnQuit false
quitOnTopLevelReturn true (Esc at top level quits)
disableStartupPopups true
notARepository skip (opens the most recent repo)
promptToReturnFromSubprocess false
os.edit, editAtLine, editAtLineAndWait, openDirInEditor, editPreset, open empty (lazygit defaults, which follow $EDITOR = nvim)
os.openLink bash -C running ~/.local/share/omarchy/bin/omarchy-launch-webapp {{link}} (absolute path in the file)
os.copyToClipboardCmd / readFromClipboardCmd wl-copy / wl-paste

Custom commands

Key Context Command Output
Ctrl+i global gitv {{.Repository.Owner}}/{{.Repository.Name}} terminal
Ctrl+w global gwm terminal
Ctrl+a global wrkflw terminal
Ctrl+p global github prs terminal
F files gh repo sync && gh clean-branches --force (“Sync repo and clean branches, update DuckDB cache”) log
A files gh commit (“Smart commit with AI”) terminal
C files gh commit (“Smart commit with AI”) terminal
a files git add the file if it has unstaged changes, else git reset it (“Toggle file staged”)
L files livediff terminal
Ctrl+d files gh dash terminal
Ctrl+o files gh browse
o localBranches gh pr create --fill -w (“start ai pull request”)
C localBranches gh repo sync && gh clean-branches --force log
O commits hub browse -- "commit/{{.SelectedLocalCommit.Hash}}"

gh commit, gh clean-branches, and gh dash are managed gh extensions (see GitHub CLI). gitv, gwm, wrkflw, github, livediff, and hub are not installed by this repo.

Keybindings

The file writes out the full keybinding map. Most values match lazygit’s defaults; they are listed so the file is the single reference.

Universal
Action Key
quit / quit-alt1 q / Ctrl+q
return Esc
quitWithoutChangingDirectory Q
togglePanel Tab
prevItem / nextItem Up / Down
prevItem-alt / nextItem-alt k / j
prevPage / nextPage , / .
scrollLeft / scrollRight H / L
gotoTop / gotoBottom < / >
toggleRangeSelect v
rangeSelectDown / rangeSelectUp Shift+Down / Shift+Up
prevBlock / nextBlock Left / Right
prevBlock-alt / nextBlock-alt h / l
nextBlock-alt2 / prevBlock-alt2 Tab / Shift+Tab
jumpToBlock 1–5
nextMatch / prevMatch n / N
startSearch /
optionMenu ?
select Space
goInto / confirm Enter
confirmInEditor Alt+Enter
remove d
new n
edit e
openFile o
scrollUpMain / scrollDownMain PgUp / PgDn
scrollUpMain-alt1 / scrollDownMain-alt1 K / J
scrollUpMain-alt2 / scrollDownMain-alt2 Ctrl+u / Ctrl+d
createRebaseOptionsMenu m
pushFiles / pullFiles P / p
refresh R
createPatchOptionsMenu Ctrl+p
nextTab / prevTab ] / [
nextScreenMode / prevScreenMode + / _
undo / redo z / Ctrl+z
filteringMenu Ctrl+s
diffingMenu / diffingMenu-alt W / Ctrl+e
copyToClipboard Ctrl+o
openRecentRepos Ctrl+r
submitEditorText Enter
extrasMenu @
toggleWhitespaceInDiffView Ctrl+w
increaseContextInDiffView / decreaseContextInDiffView } / {
increaseRenameSimilarityThreshold / decrease... ) / (
openDiffTool Ctrl+t (runs the nvim codediff difftool)
newWorktree w
Status
Action Key
checkForUpdate u
recentRepos Enter
allBranchesLogGraph a
Files
Action Key
commitChanges c
commitChangesWithoutHook w
amendLastCommit E
commitChangesWithEditor C
findBaseCommitForFixup Ctrl+f
confirmDiscard x
ignoreFile i
refreshFiles r
stashAllChanges / viewStashOptions s / S
toggleStagedAll a
viewResetOptions D
fetch f
toggleTreeView `
openMergeOptions M
openStatusFilter Ctrl+b
copyFileInfoToClipboard y
Branches
Action Key
createPullRequest 1
viewPullRequestOptions O
copyPullRequestURL Ctrl+y
checkoutBranchByName c
forceCheckoutBranch F
rebaseBranch r
renameBranch R
mergeIntoCurrentBranch M
viewGitFlowOptions i
fastForward / fetchRemote f
createTag / pushTag T / P
setUpstream u
sortOrder s
Commits
Action Key
squashDown s
renameCommit / renameCommitWithEditor r / R
viewResetOptions g
markCommitAsFixup / createFixupCommit f / F
squashAboveCommits S
moveDownCommit / moveUpCommit Ctrl+j / Ctrl+k
resetCommitAuthor a
pickCommit p
revertCommit t
cherryPickCopy / pasteCommits C / V
markCommitAsBaseForRebase B
tagCommit T
checkoutCommit Space
resetCherryPick Ctrl+c
copyCommitAttributeToClipboard y
openLogMenu Ctrl+l
openInBrowser o
viewBisectOptions b
startInteractiveRebase i
Other panels
Panel Action Key
amendAttribute resetAuthor / setAuthor / addCoAuthor a / A / c
stash popStash / renameStash g / r
commitFiles checkoutCommitFile c
main toggleSelectHunk / pickBothHunks / editSelectHunk a / b / E
submodules init / update / bulkMenu i / u / b
commitMessage commitMenu Ctrl+o

ii-theme.yml

ii-theme.yml is generated by the ii wallpaper theming system and holds only a gui.theme block: white active border (bold), grey #8F9192 inactive border, #1F1F1F selection and cherry-pick backgrounds, #FFF17B marked base commit, #FF9BAD unstaged changes, #DFE3E3 default text.

Nothing in the repo loads it, so config.yml’s cyberdream colors are what lazygit uses. To apply it, pass both files: LG_CONFIG_FILE="$HOME/.config/lazygit/config.yml,$HOME/.config/lazygit/ii-theme.yml" lazygit.

Was this page helpful?