kitty: keep the tab bar on the terminal background
Catppuccin Latte sets tab_bar_background #BCC0CC, a grey noticeably darker than its #EFF1F5 background, so in light mode the tab bar sat on a band of its own colour. kitty.conf leaves the setting commented out -- kitty's default is to follow the terminal background -- but the generated *-theme.auto.conf files are applied with priority over kitty.conf, so the theme won and there was nowhere left to override it. repair-auto-themes.sh already normalises macos_titlebar_color for the same reason; give tab_bar_background the same treatment. The canonical copies under theme-modes stay exactly as the themes kitten saved them. Also picks up the current theme choices: SpaceGray Eighties for dark, Catppuccin Latte for light.
This commit is contained in:
parent
ccf4a18c86
commit
8c9e5e2c99
@ -2,6 +2,22 @@
|
||||
|
||||
set -eu
|
||||
|
||||
# Settings the generated theme files must carry whatever theme was saved into
|
||||
# them. kitty applies <appearance>-theme.auto.conf after -- and with priority
|
||||
# over -- kitty.conf, so a theme naming one of these wins and there is nowhere
|
||||
# else left to say otherwise:
|
||||
#
|
||||
# macos_titlebar_color background titlebar follows the theme's background
|
||||
# tab_bar_background none tab bar uses the terminal background,
|
||||
# kitty's default and what kitty.conf asks
|
||||
# for; Catppuccin Latte and others pin a
|
||||
# contrasting grey, which leaves the tab
|
||||
# bar a visibly different colour from the
|
||||
# window it sits above
|
||||
#
|
||||
# The canonical copies in ./theme-modes stay exactly as the themes kitten wrote
|
||||
# them; only these generated files are normalised.
|
||||
|
||||
# Permission bits of a file, or 600 if they cannot be read. GNU stat spells this
|
||||
# `-c %a` while BSD/macOS spells it `-f %Lp`, and each mis-parses the other's
|
||||
# form -- GNU treats `-f` as --file-system and prints a block of filesystem info
|
||||
@ -18,27 +34,37 @@ file_mode() {
|
||||
printf '600\n'
|
||||
}
|
||||
|
||||
# The theme with those settings stripped and re-appended in a fixed form.
|
||||
# Trailing blank lines go too, so running this over its own output reproduces it
|
||||
# byte for byte and repeated repairs cannot make the file grow.
|
||||
normalised() {
|
||||
awk '
|
||||
$1 == "macos_titlebar_color" || $1 == "tab_bar_background" { next }
|
||||
{ line[++n] = $0 }
|
||||
END {
|
||||
while (n > 0 && line[n] ~ /^[ \t]*$/) n--
|
||||
for (i = 1; i <= n; i++) print line[i]
|
||||
}
|
||||
' "$1"
|
||||
printf '\nmacos_titlebar_color background\ntab_bar_background none\n'
|
||||
}
|
||||
|
||||
config_dir=${1:-"$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)"}
|
||||
|
||||
for appearance in dark light no-preference; do
|
||||
config_file="$config_dir/$appearance-theme.auto.conf"
|
||||
[ -f "$config_file" ] || continue
|
||||
|
||||
if awk '
|
||||
$1 == "macos_titlebar_color" {
|
||||
count++
|
||||
if ($2 == "background") correct++
|
||||
}
|
||||
END { exit !(count == 1 && correct == 1) }
|
||||
' "$config_file"; then
|
||||
continue
|
||||
fi
|
||||
|
||||
tmp=$(mktemp "$config_file.tmp.XXXXXX")
|
||||
trap 'rm -f "$tmp"' EXIT HUP INT TERM
|
||||
awk '$1 != "macos_titlebar_color"' "$config_file" > "$tmp"
|
||||
printf '\nmacos_titlebar_color background\n' >> "$tmp"
|
||||
chmod "$(file_mode "$config_file")" "$tmp"
|
||||
mv -f "$tmp" "$config_file"
|
||||
|
||||
normalised "$config_file" > "$tmp"
|
||||
if cmp -s "$tmp" "$config_file"; then
|
||||
rm -f "$tmp"
|
||||
else
|
||||
chmod "$(file_mode "$config_file")" "$tmp"
|
||||
mv -f "$tmp" "$config_file"
|
||||
fi
|
||||
|
||||
trap - EXIT HUP INT TERM
|
||||
done
|
||||
|
||||
@ -21,7 +21,13 @@ if options.macos_titlebar_color != 1:
|
||||
f"{sys.argv[2]} automatic Kitty theme does not use its background "
|
||||
"for the macOS titlebar"
|
||||
)
|
||||
if options.tab_bar_background is not None:
|
||||
raise SystemExit(
|
||||
f"{sys.argv[2]} automatic Kitty theme pins its own tab bar background "
|
||||
f"({options.tab_bar_background!r}) instead of following the terminal "
|
||||
"background"
|
||||
)
|
||||
' "$config_file" "$appearance"
|
||||
done
|
||||
|
||||
echo "ok - automatic Kitty themes match their macOS titlebars"
|
||||
echo "ok - automatic Kitty themes match their macOS titlebars and tab bars"
|
||||
|
||||
@ -148,6 +148,46 @@ expect "adoption is idempotent (dark)" \
|
||||
expect "adoption is idempotent (light)" \
|
||||
"$config_dir/theme-modes/light.conf" "$BYPASS_LIGHT"
|
||||
|
||||
# --- a theme that pins its own tab bar background is neutralised ----------
|
||||
# kitty applies these generated files with priority over kitty.conf, so a theme
|
||||
# like Catppuccin Latte that sets tab_bar_background leaves the tab bar a
|
||||
# different colour from the window and kitty.conf cannot override it.
|
||||
echo auto >"$config_dir/theme-mode"
|
||||
printf 'background %s\ntab_bar_background #bcc0cc\n' "$LIGHT" \
|
||||
>"$config_dir/theme-modes/light.conf"
|
||||
"$root/apply-theme-mode.sh" "$config_dir"
|
||||
|
||||
tab_bar_lines() {
|
||||
grep -c '^tab_bar_background' "$1" || true
|
||||
}
|
||||
|
||||
[ "$(awk '$1 == "tab_bar_background" { print $2 }' \
|
||||
"$config_dir/light-theme.auto.conf")" = none ] || {
|
||||
echo "not ok - generated theme keeps the theme's own tab bar background" >&2
|
||||
exit 1
|
||||
}
|
||||
[ "$(tab_bar_lines "$config_dir/light-theme.auto.conf")" -eq 1 ] || {
|
||||
echo "not ok - generated theme has more than one tab_bar_background" >&2
|
||||
exit 1
|
||||
}
|
||||
grep -q '#bcc0cc' "$config_dir/theme-modes/light.conf" || {
|
||||
echo "not ok - the canonical copy should keep the theme as it was saved" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
# repairing twice must not append a second copy or grow the file
|
||||
before=$(wc -c <"$config_dir/light-theme.auto.conf")
|
||||
"$root/apply-theme-mode.sh" "$config_dir"
|
||||
[ "$(wc -c <"$config_dir/light-theme.auto.conf")" -eq "$before" ] || {
|
||||
echo "not ok - repeated repair grows the generated theme" >&2
|
||||
exit 1
|
||||
}
|
||||
expect "the theme itself still applies" \
|
||||
"$config_dir/light-theme.auto.conf" "$LIGHT"
|
||||
|
||||
printf 'background %s\nmacos_titlebar_color background\n' "$LIGHT" \
|
||||
>"$config_dir/theme-modes/light.conf"
|
||||
|
||||
# --- a bare `theme` records auto when it lands on the macOS appearance ----
|
||||
echo auto >"$config_dir/theme-mode"
|
||||
"$root/apply-theme-mode.sh" "$config_dir"
|
||||
|
||||
@ -1,29 +1,29 @@
|
||||
background #090200
|
||||
foreground #a4a1a1
|
||||
cursor #a4a1a1
|
||||
selection_background #494542
|
||||
color0 #090200
|
||||
color8 #5b5754
|
||||
color1 #da2c20
|
||||
color9 #e8bacf
|
||||
color2 #00a152
|
||||
color10 #3a3332
|
||||
color3 #fcec02
|
||||
color11 #494542
|
||||
color4 #00a0e4
|
||||
color12 #7f7c7b
|
||||
color5 #a06994
|
||||
color13 #d6d4d3
|
||||
color6 #b5e4f4
|
||||
color14 #ccab53
|
||||
color7 #a4a1a1
|
||||
color15 #f7f7f7
|
||||
selection_foreground #090200
|
||||
background #212121
|
||||
foreground #bdb9ae
|
||||
cursor #bbbbbb
|
||||
selection_background #262e35
|
||||
color0 #15171c
|
||||
color8 #545454
|
||||
color1 #ec5f67
|
||||
color9 #ff6973
|
||||
color2 #80a763
|
||||
color10 #93d393
|
||||
color3 #fdc253
|
||||
color11 #ffd156
|
||||
color4 #5485c0
|
||||
color12 #4d83d0
|
||||
color5 #bf83c0
|
||||
color13 #ff55ff
|
||||
color6 #57c2c0
|
||||
color14 #83e8e4
|
||||
color7 #eeece7
|
||||
color15 #ffffff
|
||||
selection_foreground #212121
|
||||
|
||||
# START_AUTOGENERATED_TAB_STYLE
|
||||
# Feel free to update these colors manually and remove these comments.
|
||||
active_tab_foreground #eeeeee
|
||||
active_tab_background #494542
|
||||
inactive_tab_foreground #a4a1a1
|
||||
inactive_tab_background #070200
|
||||
active_tab_background #262e35
|
||||
inactive_tab_foreground #bdb9ae
|
||||
inactive_tab_background #1a1a1a
|
||||
# END_AUTOGENERATED_TAB_STYLE
|
||||
|
||||
@ -1,60 +1,80 @@
|
||||
## name: GrokDay
|
||||
## author: xAI (grok build), ported by Anton
|
||||
## license: see https://github.com/xai-org/grok-build
|
||||
## upstream: https://github.com/xai-org/grok-build/blob/main/crates/codegen/xai-grok-pager-render/src/theme/grokday.rs
|
||||
## blurb: The GrokDay theme from grok build's TUI: light counterpart with deepened accents.
|
||||
# vim:ft=kitty
|
||||
|
||||
# GrokDay — neutral light gray base with deepened accents.
|
||||
#
|
||||
# Ported from grok build's TUI theme:
|
||||
# xai-org/grok-build
|
||||
# crates/codegen/xai-grok-pager-render/src/theme/grokday.rs
|
||||
#
|
||||
# Light counterpart to GrokNight: same hue family, darkened for contrast on a
|
||||
# light background. background is grok's bg_base, the surface the TUI actually
|
||||
# paints; bg_terminal (#f5f5f5) is for terminal-output blocks and is unused.
|
||||
# cursor is accent_user, which grok itself sets over OSC 12 on startup.
|
||||
## name: Catppuccin-Latte
|
||||
## author: Pocco81 (https://github.com/Pocco81)
|
||||
## license: MIT
|
||||
## upstream: https://github.com/catppuccin/kitty/blob/main/themes/latte.conf
|
||||
## blurb: Soothing pastel theme for the high-spirited!
|
||||
|
||||
background #eeeeee
|
||||
foreground #262626
|
||||
cursor #444444
|
||||
cursor_text_color #eeeeee
|
||||
selection_background #c6c6c6
|
||||
selection_foreground #262626
|
||||
url_color #2f64d2
|
||||
|
||||
# black — text_primary / dark5
|
||||
color0 #262626
|
||||
color8 #626262
|
||||
# red — red1 / red
|
||||
color1 #af2323
|
||||
color9 #cd3048
|
||||
# green — green / green1
|
||||
color2 #378e23
|
||||
color10 #0c947c
|
||||
# yellow — yellow / orange
|
||||
color3 #a27612
|
||||
color11 #c3691e
|
||||
# blue — blue0 / blue
|
||||
color4 #28448a
|
||||
color12 #2f64d2
|
||||
# magenta — purple / magenta (grok's signature accent)
|
||||
color5 #6c3eb2
|
||||
color13 #7d4bc6
|
||||
# cyan — teal / cyan
|
||||
color6 #0a8e70
|
||||
color14 #0082aa
|
||||
# white — fg_gutter / bg (the palette's brightest; bg_storm is now the
|
||||
# background itself, so it would be invisible here)
|
||||
color7 #b2b2b2
|
||||
color15 #f5f5f5
|
||||
|
||||
# START_AUTOGENERATED_TAB_STYLE
|
||||
# Feel free to update these colors manually and remove these comments.
|
||||
active_tab_foreground #f5f5f5
|
||||
active_tab_background #7d4bc6
|
||||
inactive_tab_foreground #7d4bc6
|
||||
inactive_tab_background #f5f5f5
|
||||
# END_AUTOGENERATED_TAB_STYLE
|
||||
# The basic colors
|
||||
foreground #4C4F69
|
||||
background #EFF1F5
|
||||
selection_foreground #EFF1F5
|
||||
selection_background #DC8A78
|
||||
|
||||
macos_titlebar_color background
|
||||
# Cursor colors
|
||||
cursor #DC8A78
|
||||
cursor_text_color #EFF1F5
|
||||
|
||||
# URL underline color when hovering with mouse
|
||||
url_color #DC8A78
|
||||
|
||||
# Kitty window border colors
|
||||
active_border_color #7287FD
|
||||
inactive_border_color #9CA0B0
|
||||
bell_border_color #DF8E1D
|
||||
|
||||
# OS Window titlebar colors
|
||||
wayland_titlebar_color system
|
||||
macos_titlebar_color system
|
||||
|
||||
# Tab bar colors
|
||||
active_tab_foreground #EFF1F5
|
||||
active_tab_background #8839EF
|
||||
inactive_tab_foreground #4C4F69
|
||||
inactive_tab_background #9CA0B0
|
||||
tab_bar_background #BCC0CC
|
||||
|
||||
# Colors for marks (marked text in the terminal)
|
||||
mark1_foreground #EFF1F5
|
||||
mark1_background #7287fD
|
||||
mark2_foreground #EFF1F5
|
||||
mark2_background #8839EF
|
||||
mark3_foreground #EFF1F5
|
||||
mark3_background #209FB5
|
||||
|
||||
# The 16 terminal colors
|
||||
|
||||
# black
|
||||
color0 #5C5F77
|
||||
color8 #6C6F85
|
||||
|
||||
# red
|
||||
color1 #D20F39
|
||||
color9 #D20F39
|
||||
|
||||
# green
|
||||
color2 #40A02B
|
||||
color10 #40A02B
|
||||
|
||||
# yellow
|
||||
color3 #DF8E1D
|
||||
color11 #DF8E1D
|
||||
|
||||
# blue
|
||||
color4 #1E66F5
|
||||
color12 #1E66F5
|
||||
|
||||
# magenta
|
||||
color5 #EA76CB
|
||||
color13 #EA76CB
|
||||
|
||||
# cyan
|
||||
color6 #179299
|
||||
color14 #179299
|
||||
|
||||
# white
|
||||
color7 #ACB0BE
|
||||
color15 #BCC0CC
|
||||
|
||||
Loading…
Reference in New Issue
Block a user