Files
gruvbox/gruvbox_256palette_osx.sh
2024-04-08 11:21:30 +07:00

72 lines
2.3 KiB
Bash
Executable File

#!/bin/sh
colors=(
# --- Background shades (used in layers, UI sections) ---
"234=16/18/19" # bg0_h - very dark background
"235=1e/1e/1e" # bg0 - base background
"236=26/24/23" # bg1 - slightly lighter bg
"237=2e/2a/29" # bg2 - line numbers, subtle bg
"239=3f/39/35" # bg3 - border lines, splitbars
"241=53/4a/42" # bg4 - cursor line bg, subtle contrast
"243=68/5c/51" # bg5 - low contrast UI elements
# --- Faded foreground / comments / subdued text ---
"244=7f/70/61" # gray1 - comments
"245=7f/70/61" # gray2 - docstrings, hints (same as gray1)
# --- Main foreground and subtle variants ---
"250=cb/b8/90" # fg - default foreground text
"248=af/9f/81" # fg1 - slightly faded text
"246=97/87/71" # fg2 - further dimmed
# --- Light background highlights (e.g. selection, search) ---
"228=ef/df/ae" # yellow1 - selection bg
"229=fa/ee/bb" # yellow2 - search highlight bg
"230=f8/f4/cd" # lightest - special highlights
"223=e6/d4/a3" # alt highlight bg
# --- Core Gruvbox accent colors ---
"167=f7/30/28" # red - errors, removals
"142=aa/b0/1e" # green - additions, success
"214=f7/b1/25" # yellow - warnings
"175=c7/70/89" # purple - function names, git renamed
"108=7d/b6/69" # aqua - type hints, diffs
"109=71/95/86" # teal - status bars, cursor
"208=fb/6a/16" # orange - search match, bright UI
# --- Darker accent variants for backgrounds or subtle diff ---
"88=89/00/09" # red dark - error background
"100=66/62/0d" # green dark - diff bg
"136=a5/63/11" # yellow dark - change marker
"130=9d/28/07" # orange dark - symbol/markup
"24=0e/53/65" # blue dark - info, links
"96=7b/2b/5e" # purple dark - markdown, hint bg
"66=35/6a/46" # green deep - background diff +
)
# Detect terminal escape sequence wrapping
if [ "${TERM%%-*}" = "screen" ]; then
if [ -n "$TMUX" ]; then
prefix="\033Ptmux;\033"
suffix="\033\\"
else
prefix="\033P"
suffix="\033\\"
fi
else
prefix=""
suffix="\033\\"
fi
# Apply one color index+value to the terminal palette
set_color() {
index="${1%%=*}"
value="${1#*=}"
printf "${prefix}\033]4;%s;rgb:%s\007${suffix}" "$index" "$value"
}
# Loop over all defined colors
for color in "${colors[@]}"; do
set_color "$color"
done