automate/020_git-delta.sh

865 lines
36 KiB
Bash

#!/usr/bin/env bash
# https://github.com/dandavison/delta#get-started
# https://dandavison.github.io/delta/
#
# delta - A syntax-highlighting pager for git, diff, and grep output
# sudo apt-get install -y git-delta
sudo apt-get install -y ansifilter
# Upstream releases deb files
#
DEST=${1:-/etc/skel}
GITUSER=dandavison
PROJECT=delta
LATEST_RELEASE_URL="https://api.github.com/repos/${GITUSER}/${PROJECT}/releases/latest"
ARCH=$(dpkg --print-architecture)
# Fetch the latest release tag
TAG=$(torsocks curl -L -H "Accept: application/vnd.github+json" -H "X-GitHub-Api-Version: 2022-11-28" "${LATEST_RELEASE_URL}" | jq -r '.tag_name')
# Download the.deb file and its SHA256 checksum
# test for ARCH to select the correct file to download
case $ARCH in
amd64)
EXTENSION="amd64.deb"
;;
arm64)
EXTENSION="arm64.deb"
;;
armhf)
EXTENSION="armhf.deb"
;;
*)
echo "Unable to determine system architecture."
exit 1
;;
esac
wget -c -O /tmp/${PROJECT}_${TAG}_${EXTENSION} https://github.com/${GITUSER}/${PROJECT}/releases/download/${TAG}/git-${PROJECT}_${TAG}_${EXTENSION}
wget -c -O /tmp/${PROJECT}_${TAG}_${EXTENSION}.sha256 https://github.com/${GITUSER}/${PROJECT}/releases/download/${TAG}/git-${PROJECT}_${TAG}_${EXTENSION}.sha256
# Verify the checksum using sha256sum --check
sha256sum --check /tmp/${PROJECT}_${TAG}.${EXTENSION}.sha256
# no sha available.
sudo dpkg -i /tmp/${PROJECT}_${TAG}_${EXTENSION}
sudo apt-get -f install
## If the checksum verification is successful, install the.deb file using dpkg
#if [ $? -eq 0 ]; then
# sudo dpkg -i /tmp/${PROJECT}_${TAG}_${EXTENSION}
# sudo apt-get -f install
#else
# echo "Checksums do not match. Skipping installation."
#fi
echo " minimal example dot gitconfig"
conf_print_gitconfig() {
cat <<-EOF
[core]
pager = delta
[interactive]
diffFilter = delta --color-only
[include]
path = ${DEST}/.config/delta/themes.gitconfig
[delta]
navigate = true # use n and N to move between diff sections
features = mellow-barbets side-by-side line-numbers decorations
side-by-side = true
# delta detects terminal colors automatically; set one of these to disable auto-detection
# dark = true
# light = true
[merge]
conflictstyle = diff3
[diff]
colorMoved = default
EOF
}
# used in screenshots
echo "Another example dot gitconfig as used in the git repo screenshots: "
conf_print_gitconfig() {
cat <<-EOF
[delta]
features = side-by-side line-numbers decorations
syntax-theme = Dracula
plus-style = syntax "#003800"
minus-style = syntax "#3f0001"
[delta "decorations"]
commit-decoration-style = bold yellow box ul
file-style = bold yellow ul
file-decoration-style = none
hunk-header-decoration-style = cyan box ul
[delta "line-numbers"]
line-numbers-left-style = cyan
line-numbers-right-style = cyan
line-numbers-minus-style = 124
line-numbers-plus-style = 28
EOF
}
# We have many other settings in our .gitconfiug so don't want to squash it.
echo "Here is an example of the changes to make to your .gitconfig to enable git-delta as your pager."
conf_print_gitconfig
# if [[ -f ${DEST}/.gitconfig.bak ]]; then
# mv ${DEST}/.gitconfig.bak ${DEST}/.gitconfig.bak_old
# mv ${DEST}/.gitconfig ${DEST}/.gitconfig.bak
# conf_print_gitconfig | tee ${DEST}/.gitconfig
# elif [[ -f ${DEST}/.gitconfig ]]; then
# mv ${DEST}/.gitconfig ${DEST}/.gitconfig.bak
# conf_print_gitconfig | tee ${DEST}/.gitconfig
# else
# conf_print_gitconfig | tee ${DEST}/.gitconfig
# fi
# completions
# delta --generate-completition zsh > /usr/share/zsh/vendor-completions/_delta
print_conf_delta-completitions() {
cat <<'EOF'
#compdef delta
autoload -U is-at-least
_delta() {
typeset -A opt_args
typeset -a _arguments_options
local ret=1
if is-at-least 5.2; then
_arguments_options=(-s -S -C)
else
_arguments_options=(-s -C)
fi
local context curcontext="$curcontext" state line
_arguments "${_arguments_options[@]}" \
'--blame-code-style=[Style string for the code section of a git blame line]:STYLE: ' \
'--blame-format=[Format string for git blame commit metadata]:FMT: ' \
'--blame-palette=[Background colors used for git blame lines (space-separated string)]:COLORS: ' \
'--blame-separator-format=[Separator between the blame format and the code section of a git blame line]:FMT: ' \
'--blame-separator-style=[Style string for the blame-separator-format]:STYLE: ' \
'--blame-timestamp-format=[Format of \`git blame\` timestamp in raw git output received by delta]:FMT: ' \
'--blame-timestamp-output-format=[Format string for git blame timestamp output]:FMT: ' \
'--config=[Load the config file at PATH instead of ~/.gitconfig]:PATH:_files' \
'--commit-decoration-style=[Style string for the commit hash decoration]:STYLE: ' \
'--commit-regex=[Regular expression used to identify the commit line when parsing git output]:REGEX: ' \
'--commit-style=[Style string for the commit hash line]:STYLE: ' \
'--default-language=[Default language used for syntax highlighting]:LANG: ' \
'--detect-dark-light=[Detect whether or not the terminal is dark or light by querying for its colors]:DETECT_DARK_LIGHT:((auto\:"Only query the terminal for its colors if the output is not redirected"
always\:"Always query the terminal for its colors"
never\:"Never query the terminal for its colors"))' \
'-@+[Extra arguments to pass to \`git diff\` when using delta to diff two files]:STRING: ' \
'--diff-args=[Extra arguments to pass to \`git diff\` when using delta to diff two files]:STRING: ' \
'--diff-stat-align-width=[Width allocated for file paths in a diff stat section]:N: ' \
'--features=[Names of delta features to activate (space-separated)]:FEATURES: ' \
'--file-added-label=[Text to display before an added file path]:STRING: ' \
'--file-copied-label=[Text to display before a copied file path]:STRING: ' \
'--file-decoration-style=[Style string for the file decoration]:STYLE: ' \
'--file-modified-label=[Text to display before a modified file path]:STRING: ' \
'--file-removed-label=[Text to display before a removed file path]:STRING: ' \
'--file-renamed-label=[Text to display before a renamed file path]:STRING: ' \
'--file-style=[Style string for the file section]:STYLE: ' \
'--file-transformation=[Sed-style command transforming file paths for display]:SED_CMD: ' \
'--generate-completion=[Print completion file for the given shell]:GENERATE_COMPLETION:(bash elvish fish powershell zsh)' \
'--grep-context-line-style=[Style string for non-matching lines of grep output]:STYLE: ' \
'--grep-file-style=[Style string for file paths in grep output]:STYLE: ' \
'--grep-header-decoration-style=[Style string for the header decoration in grep output]:STYLE: ' \
'--grep-header-file-style=[Style string for the file path part of the header in grep output]:STYLE: ' \
'--grep-line-number-style=[Style string for line numbers in grep output]:STYLE: ' \
'--grep-output-type=[Grep output format. Possible values\: "ripgrep" - file name printed once, followed by matching lines within that file, each preceded by a line number. "classic" - file name\:line number, followed by matching line. Default is "ripgrep" if \`rg --json\` format is detected, otherwise "classic"]:OUTPUT_TYPE:(ripgrep classic)' \
'--grep-match-line-style=[Style string for matching lines of grep output]:STYLE: ' \
'--grep-match-word-style=[Style string for the matching substrings within a matching line of grep output]:STYLE: ' \
'--grep-separator-symbol=[Separator symbol printed after the file path and line number in grep output]:STRING: ' \
'--hunk-header-decoration-style=[Style string for the hunk-header decoration]:STYLE: ' \
'--hunk-header-file-style=[Style string for the file path part of the hunk-header]:STYLE: ' \
'--hunk-header-line-number-style=[Style string for the line number part of the hunk-header]:STYLE: ' \
'--hunk-header-style=[Style string for the hunk-header]:STYLE: ' \
'--hunk-label=[Text to display before a hunk header]:STRING: ' \
'--hyperlinks-commit-link-format=[Format string for commit hyperlinks (requires --hyperlinks)]:FMT: ' \
'--hyperlinks-file-link-format=[Format string for file hyperlinks (requires --hyperlinks)]:FMT: ' \
'--inline-hint-style=[Style string for short inline hint text]:STYLE: ' \
'--inspect-raw-lines=[Kill-switch for --color-moved support]:true|false:(true false)' \
'--line-buffer-size=[Size of internal line buffer]:N: ' \
'--line-fill-method=[Line-fill method in side-by-side mode]:STRING:(ansi spaces)' \
'--line-numbers-left-format=[Format string for the left column of line numbers]:FMT: ' \
'--line-numbers-left-style=[Style string for the left column of line numbers]:STYLE: ' \
'--line-numbers-minus-style=[Style string for line numbers in the old (minus) version of the file]:STYLE: ' \
'--line-numbers-plus-style=[Style string for line numbers in the new (plus) version of the file]:STYLE: ' \
'--line-numbers-right-format=[Format string for the right column of line numbers]:FMT: ' \
'--line-numbers-right-style=[Style string for the right column of line numbers]:STYLE: ' \
'--line-numbers-zero-style=[Style string for line numbers in unchanged (zero) lines]:STYLE: ' \
'--map-styles=[Map styles encountered in raw input to desired output styles]:STYLES_MAP: ' \
'--max-line-distance=[Maximum line pair distance parameter in within-line diff algorithm]:DIST: ' \
'--max-syntax-highlighting-length=[Stop syntax highlighting lines after this many characters]:N: ' \
'--max-line-length=[Truncate lines longer than this]:N: ' \
'--merge-conflict-begin-symbol=[String marking the beginning of a merge conflict region]:STRING: ' \
'--merge-conflict-end-symbol=[String marking the end of a merge conflict region]:STRING: ' \
'--merge-conflict-ours-diff-header-decoration-style=[Style string for the decoration of the header above the '\''ours'\'' merge conflict diff]:STYLE: ' \
'--merge-conflict-ours-diff-header-style=[Style string for the header above the '\''ours'\'' branch merge conflict diff]:STYLE: ' \
'--merge-conflict-theirs-diff-header-decoration-style=[Style string for the decoration of the header above the '\''theirs'\'' merge conflict diff]:STYLE: ' \
'--merge-conflict-theirs-diff-header-style=[Style string for the header above the '\''theirs'\'' branch merge conflict diff]:STYLE: ' \
'--minus-empty-line-marker-style=[Style string for removed empty line marker]:STYLE: ' \
'--minus-emph-style=[Style string for emphasized sections of removed lines]:STYLE: ' \
'--minus-non-emph-style=[Style string for non-emphasized sections of removed lines that have an emphasized section]:STYLE: ' \
'--minus-style=[Style string for removed lines]:STYLE: ' \
'--navigate-regex=[Regular expression defining navigation stop points]:REGEX: ' \
'--pager=[Which pager to use]:CMD: ' \
'--paging=[Whether to use a pager when displaying output]:auto|always|never:(auto always never)' \
'--plus-emph-style=[Style string for emphasized sections of added lines]:STYLE: ' \
'--plus-empty-line-marker-style=[Style string for added empty line marker]:STYLE: ' \
'--plus-non-emph-style=[Style string for non-emphasized sections of added lines that have an emphasized section]:STYLE: ' \
'--plus-style=[Style string for added lines]:STYLE: ' \
'--right-arrow=[Text to display with a changed file path]:STRING: ' \
'--syntax-theme=[The syntax-highlighting theme to use]:SYNTAX_THEME: ' \
'--tabs=[The number of spaces to replace tab characters with]:N: ' \
'--true-color=[Whether to emit 24-bit ("true color") RGB color codes]:auto|always|never:(auto always never)' \
'--whitespace-error-style=[Style string for whitespace errors]:STYLE: ' \
'-w+[The width of underline/overline decorations]:N: ' \
'--width=[The width of underline/overline decorations]:N: ' \
'--word-diff-regex=[Regular expression defining a '\''word'\'' in within-line diff algorithm]:REGEX: ' \
'--wrap-left-symbol=[End-of-line wrapped content symbol (left-aligned)]:STRING: ' \
'--wrap-max-lines=[How often a line should be wrapped if it does not fit]:N: ' \
'--wrap-right-percent=[Threshold for right-aligning wrapped content]:PERCENT: ' \
'--wrap-right-prefix-symbol=[Pre-wrapped content symbol (right-aligned)]:STRING: ' \
'--wrap-right-symbol=[End-of-line wrapped content symbol (right-aligned)]:STRING: ' \
'--zero-style=[Style string for unchanged lines]:STYLE: ' \
'--24-bit-color=[Deprecated\: use --true-color]:auto|always|never:(auto always never)' \
'--color-only[Do not alter the input structurally in any way]' \
'--dark[Use default colors appropriate for a dark terminal background]' \
'--diff-highlight[Emulate diff-highlight]' \
'--diff-so-fancy[Emulate diff-so-fancy]' \
'--hyperlinks[Render commit hashes, file names, and line numbers as hyperlinks]' \
'--keep-plus-minus-markers[Prefix added/removed lines with a +/- character, as git does]' \
'--light[Use default colors appropriate for a light terminal background]' \
'-n[Display line numbers next to the diff]' \
'--line-numbers[Display line numbers next to the diff]' \
'--list-languages[List supported languages and associated file extensions]' \
'--list-syntax-themes[List available syntax-highlighting color themes]' \
'--navigate[Activate diff navigation]' \
'--no-gitconfig[Do not read any settings from git config]' \
'--parse-ansi[Display ANSI color escape sequences in human-readable form]' \
'--raw[Do not alter the input in any way]' \
'--relative-paths[Output all file paths relative to the current directory]' \
'--show-colors[Show available named colors]' \
'--show-config[Display the active values for all Delta options]' \
'--show-syntax-themes[Show example diff for available syntax-highlighting themes]' \
'--show-themes[Show example diff for available delta themes]' \
'-s[Display diffs in side-by-side layout]' \
'--side-by-side[Display diffs in side-by-side layout]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
'-V[Print version]' \
'--version[Print version]' \
'::minus_file -- First file to be compared when delta is being used to diff two files:_files' \
'::plus_file -- Second file to be compared when delta is being used to diff two files:_files' \
&& ret=0
}
(( $+functions[_delta_commands] )) ||
_delta_commands() {
local commands; commands=()
_describe -t commands 'delta commands' commands "$@"
}
if [ "$funcstack[1]" = "_delta" ]; then
_delta "$@"
else
compdef _delta delta
fi
EOF
}
conf_print_delta-completions | sudo tee /usr/share/zsh/vendor-completions/_delta
mkdir -p ${DEST}/.config/delta
wget -c -O ${DEST}/.config/delta/themes.gitconfig https://github.com/dandavison/delta/raw/main/themes.gitconfig
conf_print_delta_themes() {
cat <<-EOF
# To use these themes, first include this file in your own gitconfig file:
#
# [include]
# path = PATH/TO/delta/themes.gitconfig
#
# Then, in your own gitconfig file, activate the chosen theme, e.g.
#
# [delta]
# features = kingfisher
#
# Please add your own themes to this file, and open a PR.
#
# Instructions:
#
# 1. The name of the theme must be the name of some sort of wild organism:
# mammal, bird, plant, mollusk -- whatever. It can be in any language.
#
# 2. Use `delta --show-config` to list all the style settings that are active in
# your current delta environment, but only include settings in your theme
# that are essential to its appearance.
#
# 3. Include either `dark = true` or `light = true` according to whether it is
# designed for a light or dark terminal background. (This marks a feature as
# a "theme", causing it to be picked up by `delta --show-themes`).
#
# 4. Feel free to include a comment line indicating who is the author of the
# theme. E.g. a link to your github user page.
[delta "colibri"]
# author: https://github.com/pablospe
# Based on woolly-mammoth: https://github.com/Kr1ss-XD.
commit-decoration-style = 130 box
dark = true
file-decoration-style = "#606018" overline
file-added-label = [●]
file-copied-label = [C]
file-modified-label = [+]
file-removed-label = [⛌]
file-renamed-label = [→]
file-style = 232 bold 184
hunk-header-style = syntax bold italic 237
line-numbers = true
line-numbers-left-format = "{nm:>1}┊"
line-numbers-left-style = red
line-numbers-minus-style = red bold
line-numbers-plus-style = green bold
line-numbers-right-format = " {np:>1}┊"
line-numbers-right-style = green
line-numbers-zero-style = "#545474" italic
minus-emph-style = normal "#80002a"
minus-style = normal "#5e0000"
plus-emph-style = syntax bold "#007e5e"
plus-style = syntax "#003500"
syntax-theme = OneHalfDark
whitespace-error-style = "#80002a" reverse
zero-style = syntax
blame-format = "{author:<18} ({commit:>7}) ┊{timestamp:^16}┊ "
[delta "collared-trogon"]
# author: https://github.com/clnoll
commit-decoration-style = bold box ul
dark = true
file-decoration-style = none
file-style = omit
hunk-header-decoration-style = "#022b45" box ul
hunk-header-file-style = "#999999"
hunk-header-line-number-style = bold "#003300"
hunk-header-style = file line-number syntax
line-numbers = true
line-numbers-left-style = "#022b45"
line-numbers-minus-style = "#80002a"
line-numbers-plus-style = "#003300"
line-numbers-right-style = "#022b45"
line-numbers-zero-style = "#999999"
minus-emph-style = normal "#80002a"
minus-style = normal "#330011"
plus-emph-style = syntax "#003300"
plus-style = syntax "#001a00"
syntax-theme = Nord
[delta "coracias-caudatus"]
# author: https://github.com/clnoll
commit-decoration-style = ol "#7536ff"
commit-style = "#200078"
file-decoration-style = none
file-style = omit
hunk-header-decoration-style = "#cfd6ff" ul
hunk-header-file-style = "#858dff"
hunk-header-line-number-style = "#7536ff"
hunk-header-style = file line-number syntax
light = true
line-numbers = true
line-numbers-left-format = "{nm:>4} ."
line-numbers-left-style = "#e3ab02"
line-numbers-minus-style = "#ff38b6"
line-numbers-plus-style = "#00e0c2"
line-numbers-right-format = "{np:>4} "
line-numbers-right-style = white
line-numbers-zero-style = "#cccccc"
minus-emph-style = bold "#ff3838" "#ffe3f7"
minus-style = "#ff0080"
plus-emph-style = "#008a81" bold "#00ffbf"
plus-style = syntax "#cffff3"
syntax-theme = GitHub
[delta "hoopoe"]
# author: https://github.com/dandavison
light = true
pink = "#ffe0e0"
dark-pink = "#ffc0c0"
green = "#d0ffd0"
dark-green = "#a0efa0"
dark-green-2 = "#067a00"
minus-style = normal hoopoe.pink
minus-emph-style = normal hoopoe.dark-pink
minus-non-emph-style = minus-style
plus-style = syntax hoopoe.green
plus-emph-style = syntax hoopoe.dark-green
plus-non-emph-style = plus-style
minus-empty-line-marker-style = minus-style
plus-empty-line-marker-style = plus-style
commit-decoration-style = blue ol
commit-style = raw
file-style = omit
hunk-header-decoration-style = blue box
hunk-header-file-style = red
hunk-header-line-number-style = hoopoe.dark-green-2
hunk-header-style = file line-number syntax
syntax-theme = GitHub
zero-style = syntax
[delta "tangara-chilensis"]
# author: https://github.com/clnoll
commit-decoration-style = bold box ul "#34fd50"
dark = true
file-decoration-style = none
file-style = omit
hunk-header-decoration-style = "#00b494" box ul
hunk-header-file-style = "#999999"
hunk-header-line-number-style = bold "#03a4ff"
hunk-header-style = file line-number syntax
line-numbers = true
line-numbers-left-style = black
line-numbers-minus-style = "#B10036"
line-numbers-plus-style = "#03a4ff"
line-numbers-right-style = black
line-numbers-zero-style = "#999999"
minus-emph-style = normal "#de004e"
minus-style = normal "#990017"
plus-emph-style = syntax "#03a4ff"
plus-style = syntax "#450eff"
side-by-side = true
syntax-theme = Vibrant Sunburst
[delta "villsau"]
# author: https://github.com/torarnv
dark = true
file-style = omit
hunk-header-decoration-style = omit
hunk-header-file-style = magenta
hunk-header-line-number-style = dim magenta
hunk-header-style = file line-number syntax
line-numbers = false
minus-emph-style = bold red 52
minus-empty-line-marker-style = normal "#3f0001"
minus-non-emph-style = dim red
minus-style = bold red
plus-emph-style = bold green 22
plus-empty-line-marker-style = normal "#002800"
plus-non-emph-style = dim green
plus-style = bold green
syntax-theme = OneHalfDark
whitespace-error-style = reverse red
zero-style = dim syntax
[delta "woolly-mammoth"]
# author: https://github.com/Kr1ss-XD
commit-decoration-style = 232 130 box
commit-style = 232 bold italic 130
dark = true
file-added-label = [+]
file-copied-label = [C]
file-decoration-style = "#606018" overline
file-modified-label = [M]
file-removed-label = [-]
file-renamed-label = [R]
file-style = 232 bold 184
hunk-header-decoration-style = none
hunk-header-style = syntax bold italic 237
line-numbers = true
line-numbers-left-format = "{nm:>1}┊"
line-numbers-left-style = red
line-numbers-minus-style = red italic black
line-numbers-plus-style = green italic black
line-numbers-right-format = "{np:>1}┊"
line-numbers-right-style = green
line-numbers-zero-style = "#545474" italic
minus-emph-style = syntax bold "#780000"
minus-style = syntax "#400000"
plus-emph-style = syntax bold "#007800"
plus-style = syntax "#004000"
syntax-theme = Vibrant Sunburst
whitespace-error-style = "#280050" reverse
zero-style = syntax
blame-format = "{author:<18} ({commit:>7}) ┊{timestamp:^16}┊ "
blame-palette = "#101010 #200020 #002800 #000028 #202000 #280000 #002020 #002800 #202020"
[delta "calochortus-lyallii"]
# author: https://github.com/manojkarthick
commit-decoration-style = none
dark = true
file-added-label = [+]
file-copied-label = [C]
file-decoration-style = none
file-modified-label = [M]
file-removed-label = [-]
file-renamed-label = [R]
file-style = 232 bold 184
hunk-header-decoration-style = none
hunk-header-file-style = "#999999"
hunk-header-line-number-style = bold "#03a4ff"
hunk-header-style = file line-number syntax
line-numbers = true
line-numbers-left-style = black
line-numbers-minus-style = "#B10036"
line-numbers-plus-style = "#03a4ff"
line-numbers-right-style = black
line-numbers-zero-style = "#999999"
minus-emph-style = syntax bold "#780000"
minus-style = syntax "#400000"
plus-emph-style = syntax bold "#007800"
plus-style = syntax "#004000"
whitespace-error-style = "#280050" reverse
zero-style = syntax
syntax-theme = Nord
[delta "mantis-shrimp"]
#author: https://github.com/2kabhishek
dark = true
side-by-side = true
keep-plus-minus-markers = true
hyperlinks = true
file-added-label = [+]
file-copied-label = [==]
file-modified-label = [*]
file-removed-label = [-]
file-renamed-label = [->]
file-style = omit
zero-style = syntax
syntax-theme = Monokai Extended
commit-decoration-style ="#11ce16" box
commit-style = "#ffd21a" bold italic
hunk-header-decoration-style = "#1688f0" box ul
hunk-header-file-style = "#c63bee" ul bold
hunk-header-line-number-style = "#ffd21a" box bold
hunk-header-style = file line-number syntax bold italic
line-numbers = true
line-numbers-left-format = "{nm:>1}|"
line-numbers-left-style = "#1688f0"
line-numbers-minus-style = "#ff0051" bold
line-numbers-plus-style = "#03e57f" bold
line-numbers-right-format = "{np:>1}|"
line-numbers-right-style = "#1688f0"
line-numbers-zero-style = "#aaaaaa" italic
minus-emph-style = syntax bold "#b80000"
minus-style = syntax "#5d001e"
plus-emph-style = syntax bold "#007800"
plus-style = syntax "#004433"
whitespace-error-style = "#280050"
[delta "mantis-shrimp-lite"]
#author: https://github.com/2kabhishek
dark = true
side-by-side = true
keep-plus-minus-markers = true
file-added-label = [+]
file-copied-label = [==]
file-modified-label = [*]
file-removed-label = [-]
file-renamed-label = [->]
file-style = omit
zero-style = syntax
syntax-theme = Monokai Extended
commit-decoration-style = green box
commit-style = yellow bold italic
hunk-header-decoration-style = blue box ul
hunk-header-file-style = purple ul bold
hunk-header-line-number-style = yellow box bold
hunk-header-style = file line-number syntax bold italic
line-numbers = true
line-numbers-left-format = "{nm:>1}|"
line-numbers-left-style = blue
line-numbers-minus-style = red bold
line-numbers-plus-style = green bold
line-numbers-right-format = "{np:>1}|"
line-numbers-right-style = blue
line-numbers-zero-style = white italic
minus-emph-style = syntax bold red
plus-emph-style = syntax bold green
whitespace-error-style = purple bold
[delta "zebra-dark"]
minus-style = syntax "#330f0f"
minus-emph-style = syntax "#4f1917"
plus-style = syntax "#0e2f19"
plus-emph-style = syntax "#174525"
map-styles = \
bold purple => syntax "#330f29", \
bold blue => syntax "#271344", \
bold cyan => syntax "#0d3531", \
bold yellow => syntax "#222f14"
zero-style = syntax
whitespace-error-style = "#aaaaaa"
[delta "zebra-light"]
minus-style = syntax "#fbdada"
minus-emph-style = syntax "#f6b6b6"
plus-style = syntax "#d6ffd6"
plus-emph-style = syntax "#adffad"
map-styles = \
bold purple => syntax "#feecf7", \
bold blue => syntax "#e5dff6", \
bold cyan => syntax "#d8fdf6", \
bold yellow => syntax "#f4ffe0"
zero-style = syntax
whitespace-error-style = "#aaaaaa"
[delta "chameleon"]
#author: https://github.com/AirOnSkin
dark = true
line-numbers = true
side-by-side = true
keep-plus-minus-markers = false
syntax-theme = Nord
file-style = "#434C5E" bold
file-decoration-style = "#434C5E" ul
file-added-label = [+]
file-copied-label = [==]
file-modified-label = [*]
file-removed-label = [-]
file-renamed-label = [->]
hunk-header-style = omit
line-numbers-left-format = " {nm:>3} │"
line-numbers-left-style = red
line-numbers-right-format = " {np:>3} │"
line-numbers-right-style = green
line-numbers-minus-style = red italic black
line-numbers-plus-style = green italic black
line-numbers-zero-style = "#434C5E" italic
minus-style = bold red
minus-emph-style = bold "#202020" "#FF5555"
minus-non-emph-style = bold
plus-style = bold green
plus-emph-style = bold "#202020" "#50FA7B"
plus-non-emph-style = bold
zero-style = syntax
blame-code-style = syntax
blame-format = "{author:<18} ({commit:>9}) {timestamp:^16}"
blame-palette = "#2E3440" "#3B4252" "#434C5E" "#4C566A"
merge-conflict-begin-symbol = ~
merge-conflict-end-symbol = ~
merge-conflict-ours-diff-header-style = "#F1FA8C" bold
merge-conflict-ours-diff-header-decoration-style = "#434C5E" box
merge-conflict-theirs-diff-header-style = "#F1FA8C" bold
merge-conflict-theirs-diff-header-decoration-style = "#434C5E" box
[delta "gruvmax-fang"]
# author: https://github.com/maxfangx
# General appearance
dark = true
syntax-theme = gruvbox-dark
# File
file-style = "#FFFFFF" bold
file-added-label = [+]
file-copied-label = [==]
file-modified-label = [*]
file-removed-label = [-]
file-renamed-label = [->]
file-decoration-style = "#434C5E" ul
file-decoration-style = "#84786A" ul
# No hunk headers
hunk-header-style = omit
# Line numbers
line-numbers = true
line-numbers-left-style = "#84786A"
line-numbers-right-style = "#84786A"
line-numbers-minus-style = "#A02A11"
line-numbers-plus-style = "#479B36"
line-numbers-zero-style = "#84786A"
line-numbers-left-format = " {nm:>3} │"
line-numbers-right-format = " {np:>3} │"
# Diff contents
inline-hint-style = syntax
minus-style = syntax "#330011"
minus-emph-style = syntax "#80002a"
minus-non-emph-style = syntax auto
plus-style = syntax "#001a00"
plus-emph-style = syntax "#003300"
plus-non-emph-style = syntax auto
whitespace-error-style = "#FB4934" reverse
# Commit hash
commit-decoration-style = normal box
commit-style = "#ffffff" bold
# Blame
blame-code-style = syntax
blame-format = "{author:>18} ({commit:>8}) {timestamp:<13} "
blame-palette = "#000000" "#1d2021" "#282828" "#3c3836"
# Merge conflicts
merge-conflict-begin-symbol = ⌃
merge-conflict-end-symbol = ⌄
merge-conflict-ours-diff-header-style = "#FABD2F" bold
merge-conflict-theirs-diff-header-style = "#FABD2F" bold overline
merge-conflict-ours-diff-header-decoration-style = ''
merge-conflict-theirs-diff-header-decoration-style = ''
[delta "discord"]
commit-style = omit
file-style = 34 ul
file-decoration-style = none
hunk-header-style = omit
minus-style = 31
minus-non-emph-style = 31
minus-emph-style = 40
minus-empty-line-marker-style = 31
zero-style = 30
plus-style = 32
plus-non-emph-style = 32
plus-emph-style = 40
grep-file-style = 34
grep-line-number-style = 34
whitespace-error-style = 41
blame-code-style = omit
true-color = never
file-modified-label = changed:
right-arrow = >
hyperlinks = false
keep-plus-minus-markers = true
diff-stat-align-width = 10
syntax-theme = none
width = variable
[delta "mellow-barbet"]
# author: https://github.com/kvrohit
# To configure terminal colors see https://github.com/kvrohit/mellow.nvim#terminals
dark = true
syntax-theme = base16
line-numbers = true
side-by-side = true
file-style = brightwhite
file-decoration-style = none
file-added-label = [+]
file-copied-label = [==]
file-modified-label = [*]
file-removed-label = [-]
file-renamed-label = [->]
hunk-header-decoration-style = "#3e3e43" box ul
plus-style = brightgreen black
plus-emph-style = black green
minus-style = brightred black
minus-emph-style = black red
line-numbers-minus-style = brightred
line-numbers-plus-style = brightgreen
line-numbers-left-style = "#3e3e43"
line-numbers-right-style = "#3e3e43"
line-numbers-zero-style = "#57575f"
zero-style = syntax
whitespace-error-style = black bold
blame-code-style = syntax
blame-palette = "#161617" "#1b1b1d" "#2a2a2d" "#3e3e43"
merge-conflict-begin-symbol = ~
merge-conflict-end-symbol = ~
merge-conflict-ours-diff-header-style = yellow bold
merge-conflict-ours-diff-header-decoration-style = "#3e3e43" box
merge-conflict-theirs-diff-header-style = yellow bold
merge-conflict-theirs-diff-header-decoration-style = "#3e3e43" box
[delta "arctic-fox"]
# author: https://github.com/anthony-halim
dark = true
syntax-theme = Nord
file-added-label = [+]
file-copied-label = [==]
file-modified-label = [*]
file-removed-label = [-]
file-renamed-label = [->]
file-style = omit
hunk-header-decoration-style = "#5E81AC" ul
hunk-header-file-style = blue ul bold
hunk-header-line-number-style = yellow box bold
hunk-header-style = file line-number syntax bold italic
plus-style = brightgreen
plus-emph-style = black green
minus-style = brightred
minus-emph-style = black red
line-numbers = true
line-numbers-minus-style = brightred
line-numbers-plus-style = brightgreen
line-numbers-left-style = "#5E81AC"
line-numbers-right-style = "#5E81AC"
line-numbers-zero-style = "#4C566A"
zero-style = syntax
whitespace-error-style = black bold
blame-code-style = syntax
blame-format = "{author:<18} {commit:<6} {timestamp:<15}"
blame-palette = "#2E3440" "#3B4252" "#434C5E"
merge-conflict-begin-symbol = ~
merge-conflict-end-symbol = ~
merge-conflict-ours-diff-header-style = yellow bold
merge-conflict-ours-diff-header-decoration-style = "#5E81AC" box
merge-conflict-theirs-diff-header-style = yellow bold
merge-conflict-theirs-diff-header-decoration-style = "#5E81AC" box
[delta "corvus"]
# author: https://github.com/evilwaveforms
dark = true
commit-style = "#949494"
file-style = omit
syntax-theme = none
hunk-header-decoration-style = "#949494" ul
hunk-header-file-style = "#949494"
hunk-header-style = "#949494"
line-numbers = true
line-numbers-left-style = "#949494"
line-numbers-right-style = "#949494"
line-numbers-left-format = "{nm:>2}|"
line-numbers-right-format = "{np:>3} "
line-numbers-plus-style = "#54c047"
line-numbers-minus-style = bold "#591102"
plus-style = "#54c047"
plus-emph-style = bold "#54c047"
plus-non-emph-style = dim "#54c047"
minus-style = normal "#591102"
minus-emph-style = normal "#591102"
minus-non-emph-style = bold "#591102"
blame-code-style = omit
blame-format = "{author:<18} {commit:<6} {timestamp:<15}"
blame-palette = "#000000" "#343434"
zero-style = dim
[delta "platypus"]
# Author: https://github.com/sarpuser
dark = true
side-by-side = true
true-color = always
file-added-label = [+]
file-copied-label = [==]
file-modified-label = [M]
file-removed-label = [-]
file-renamed-label = [->]
file-style = "#ff9b00" ul bold
file-decoration-style = "#ea00ff" box ul
zero-style = syntax
syntax-theme = Solarized (dark)
commit-decoration-style ="#ea00ff" ul
hunk-header-decoration-style = omit
hunk-header-file-style = "#ff9b00" ul bold
hunk-header-line-number-style = "#ffd21a" bold
hunk-header-style = line-number syntax bold italic
line-numbers = true
line-numbers-left-format = "{nm:>1}|"
line-numbers-left-style = "#ea00ff"
line-numbers-minus-style = "#ff0051" bold
line-numbers-plus-style = "#1ac71e" bold
line-numbers-right-format = "{np:>1}|"
line-numbers-right-style = "#ea00ff"
line-numbers-zero-style = "#aaaaaa" italic
minus-emph-style = syntax bold "#b80000"
minus-style = syntax "#5d001e"
plus-emph-style = syntax bold "#1a861a"
plus-style = syntax "#2a5e37"
whitespace-error-style = "#280050"
wrap-max-lines = unlimited
wrap-right-percent = 1
EOF
}
conf_print_delta_themes | tee ${DEST}/.config/delta/themes.gitconfig