config: add delta config and enhance lazygit with Dracula theme

- Extract delta configuration to dedicated managed config file
- Update lazygit with full Dracula theme and quality-of-life improvements
- Remove banner comments from config files for cleaner format
- Update git-related tool scripts (install-fonts, share utility)
This commit is contained in:
2026-01-03 19:26:36 -06:00
parent ce9afed824
commit 91e58db0d9
6 changed files with 626 additions and 402 deletions
+57
View File
@@ -0,0 +1,57 @@
# Delta Configuration - Dracula Theme
[delta]
# Core Settings
navigate = true # n/N to jump between files
side-by-side = false # Unified diff (better for small changes)
line-numbers = true # Show line numbers
syntax-theme = Dracula # Match Dracula theme
paging = never # Let lazygit handle paging
# Display Quality
true-color = always
hyperlinks = true
hyperlinks-file-link-format = "file://{path}"
# Line Number Styling (clearer format)
line-numbers-left-format = "{nm:>4} ⋮" # Old file line
line-numbers-right-format = "{np:>4} │" # New file line
line-numbers-left-style = "#6272a4" # Dracula comment
line-numbers-right-style = "#6272a4"
line-numbers-minus-style = "#ff5555" # Red for removed
line-numbers-plus-style = "#50fa7b" # Green for added
line-numbers-zero-style = "#6272a4" # Comment for unchanged
# Hunk Headers (the @@ lines)
hunk-header-style = file line-number syntax
hunk-header-decoration-style = "#bd93f9" box # Purple box
hunk-header-line-number-style = "#f1fa8c" # Yellow line numbers
# File Headers
file-style = "#ff79c6" bold # Pink filename
file-decoration-style = "#ff79c6" ul # Underline
# Diff Styling (subtle backgrounds)
minus-style = syntax "#3f2d3d" # Subtle red bg for deletions
minus-emph-style = syntax "#5f3746" # Stronger red for changed parts
minus-non-emph-style = syntax auto
plus-style = syntax "#273a2e" # Subtle green bg for additions
plus-emph-style = syntax "#2f4f39" # Stronger green for changed parts
plus-non-emph-style = syntax auto
# Whitespace Handling
whitespace-error-style = "#ff5555" reverse # Highlight trailing whitespace
# Merge Conflict Styling
merge-conflict-begin-symbol = "⌃"
merge-conflict-end-symbol = "⌄"
merge-conflict-ours-diff-header-style = "#f1fa8c" bold
merge-conflict-theirs-diff-header-style = "#f1fa8c" bold italic
[interactive]
diffFilter = delta --color-only --features=interactive
[delta "interactive"]
keep-plus-minus-markers = false
[diff]
colorMoved = default
+137 -23
View File
@@ -1,23 +1,137 @@
gui:
theme:
activeBorderColor:
- "#E97387"
- bold
inactiveBorderColor:
- "#a5adce"
optionsTextColor:
- "#8caaee"
selectedLineBgColor:
- "#ECCFD3"
cherryPickedCommitBgColor:
- "#51576d"
cherryPickedCommitFgColor:
- "#CFF2E2"
unstagedChangesColor:
- "#E97387"
defaultFgColor:
- "#6B6B6B"
searchingActiveBorderColor:
- "#e5c890"
authorColors:
"*": "#babbf1"
gui:
# Dracula Theme - Official Colors
theme:
activeBorderColor:
- "#ff79c6" # Pink
- bold
inactiveBorderColor:
- "#6272a4" # Comment
searchingActiveBorderColor:
- "#8be9fd" # Cyan
- bold
optionsTextColor:
- "#bd93f9" # Purple
selectedLineBgColor:
- "#44475a" # Current Line
inactiveViewSelectedLineBgColor:
- bold
cherryPickedCommitFgColor:
- "#8be9fd" # Cyan
cherryPickedCommitBgColor:
- "#44475a" # Current Line
markedBaseCommitFgColor:
- "#f1fa8c" # Yellow
markedBaseCommitBgColor:
- "#44475a" # Current Line
unstagedChangesColor:
- "#ff5555" # Red
defaultFgColor:
- "#f8f8f2" # Foreground
authorColors:
"*": "#bd93f9" # Unified purple for all authors
# Nerd Fonts
nerdFontsVersion: "3"
showFileIcons: true
# Visual Preferences
border: "rounded"
animateExplosion: true
# Info Density (Balanced)
showListFooter: true
showFileTree: true
showCommandLog: true
showBottomLine: true
showPanelJumps: true
commitHashLength: 8
showBranchCommitHash: false
showDivergenceFromBaseBranch: "arrowAndNumber"
# Disable Annoying Popups
skipDiscardChangeWarning: true
skipStashWarning: true
skipRewordInEditorWarning: true
showRandomTip: false
# Window Sizing
scrollHeight: 8
sidePanelWidth: 0.3333
expandFocusedSidePanel: false
# Commit Display
commitAuthorShortLength: 2
commitAuthorLongLength: 17
git:
# Paging (use delta)
pagers:
- colorArg: always
pager: delta
# Auto-behaviors
autoFetch: true
autoRefresh: true
fetchAll: true
autoStageResolvedConflicts: true
# Commit Settings
commit:
signOff: false
autoWrapCommitMessage: true
autoWrapWidth: 72
# Log Display
log:
order: "topo-order"
showGraph: "always"
showWholeGraph: false
# Parsing
parseEmoji: true
# Copy Behavior
truncateCopiedCommitHashesTo: 12
os:
edit: "micro {{filename}}"
editAtLine: "micro {{filename}}:{{line}}"
editAtLineAndWait: "micro {{filename}}:{{line}}"
editInTerminal: true
update:
method: "never"
confirmOnQuit: false
quitOnTopLevelReturn: false
disableStartupPopups: true
promptToReturnFromSubprocess: false
refresher:
refreshInterval: 2 # Fast refresh for file changes
fetchInterval: 60 # Fetch from remote every 60s
customCommands:
- key: "a"
context: "commits"
description: "Show CI status for commit"
command: 'bash -c "gh run list --commit {{.SelectedCommit.Sha}} --json conclusion,status,name,updatedAt --jq ''if length == 0 then \"No CI runs found\" else .[] | \"\\(.name): \\(if .conclusion == \"success\" then \"✓\" elif .conclusion == \"failure\" then \"✗\" elif .status == \"in_progress\" then \"⏳\" else \"?\" end) \\(.conclusion // .status)\" end''"'
loadingText: "Checking CI status..."
- key: "A"
context: "commits"
description: "View CI logs for commit"
command: 'bash -c "RUN_ID=$(gh run list --commit {{.SelectedCommit.Sha}} --json databaseId -q ''.[0].databaseId''); if [ -n \"$RUN_ID\" ]; then gh run view $RUN_ID --log; else echo \"No CI runs found for this commit\"; fi"'
loadingText: "Loading CI logs..."
- key: "a"
context: "localBranches"
description: "Show CI status for branch"
command: 'bash -c "gh run list --branch {{.SelectedLocalBranch.Name}} -L 1 --json conclusion,status,name,updatedAt --jq ''if length == 0 then \"No CI runs for this branch\" else .[0] | \"Latest: \\(.name) - \\(if .conclusion == \"success\" then \"✓ Passed\" elif .conclusion == \"failure\" then \"✗ Failed\" elif .status == \"in_progress\" then \"⏳ Running\" else .status end) (\\(.updatedAt))\" end''"'
loadingText: "Checking CI status..."
- key: "A"
context: "localBranches"
description: "View latest CI run for branch"
command: 'bash -c "RUN_ID=$(gh run list --branch {{.SelectedLocalBranch.Name}} -L 1 --json databaseId -q ''.[0].databaseId''); if [ -n \"$RUN_ID\" ]; then gh run view $RUN_ID --log; else echo \"No CI runs found for this branch\"; fi"'
loadingText: "Loading CI logs..."
- key: "w"
context: "files"
description: "Commit staged changes without pre-commit hooks"
prompts:
- type: "input"
title: "Commit message"
key: "message"
command: 'git commit --no-verify -m "{{.Form.message}}"'
- key: "o"
context: "commits"
description: "Open commit in GitHub"
command: "gh browse {{.SelectedCommit.Sha}}"
- key: "o"
context: "files"
description: "Open file in GitHub"
command: "gh browse {{.SelectedFile.Name}}"
- key: "<c-r>"
context: "localBranches"
description: "Create PR for branch"
command: "gh pr create --fill --web"