Fix invisible Helix cursorline, ruler, and picker highlights (#6638)

afa2839a5a (Rename bg/fg palette keys to background/foreground)
aliased `color0` to plain background in theme color resolution, but
the Helix template still uses `color0` as the subtle surface shade
behind `ui.cursorline.primary`, `ui.virtual.ruler`, `ui.highlight`, and
`ui.text.focus`. All four now render at exactly the background color
and vanish: no cursorline, no ruler, and the picker's focused row is
only distinguishable by its bold text. This is the same failure that
d80c98f025 ("Make color0 distinct from background/foreground and fix
helix theme", #5538) fixed back when themes defined color0 directly.

Point those scopes at `lighter_background`, the semantic key for a
surface one step off the background. Every first-party theme defines it
distinct from background except Last Horizon and Solitude, which
set the two equal on purpose; those, and legacy themes whose
`lighter_background` falls back to background, render exactly as they
do today.

Assisted-by: Claude:claude-fable-5

Signed-off-by: Luke Hsiao <luke@hsiao.dev>
This commit is contained in:
Luke Hsiao
2026-08-09 13:28:17 +02:00
committed by GitHub
parent 2a0c7371a5
commit 0795ede770
+5 -4
View File
@@ -76,12 +76,12 @@
"ui.bufferline.active" = { fg = "foreground", bg = "background", underline = { color = "color5", style = "line" } } "ui.bufferline.active" = { fg = "foreground", bg = "background", underline = { color = "color5", style = "line" } }
"ui.text" = "foreground" "ui.text" = "foreground"
"ui.text.focus" = { fg = "foreground", bg = "color0", modifiers = ["bold"] } "ui.text.focus" = { fg = "foreground", bg = "lighter_background", modifiers = ["bold"] }
"ui.text.inactive" = { fg = "color8" } "ui.text.inactive" = { fg = "color8" }
"ui.text.directory" = { fg = "color4" } "ui.text.directory" = { fg = "color4" }
"ui.virtual" = "color8" "ui.virtual" = "color8"
"ui.virtual.ruler" = { bg = "color0" } "ui.virtual.ruler" = { bg = "lighter_background" }
"ui.virtual.indent-guide" = "color8" "ui.virtual.indent-guide" = "color8"
"ui.virtual.inlay-hint" = { fg = "color8" } "ui.virtual.inlay-hint" = { fg = "color8" }
"ui.virtual.jump-label" = { fg = "color1", modifiers = ["bold"] } "ui.virtual.jump-label" = { fg = "color1", modifiers = ["bold"] }
@@ -96,9 +96,9 @@
"ui.cursor.primary.insert" = { fg = "background", bg = "color2" } "ui.cursor.primary.insert" = { fg = "background", bg = "color2" }
"ui.cursor.primary.select" = { fg = "background", bg = "color5" } "ui.cursor.primary.select" = { fg = "background", bg = "color5" }
"ui.cursorline.primary" = { bg = "color0" } "ui.cursorline.primary" = { bg = "lighter_background" }
"ui.highlight" = { bg = "color0", modifiers = ["bold"] } "ui.highlight" = { bg = "lighter_background", modifiers = ["bold"] }
"ui.menu" = { fg = "foreground", bg = "background" } "ui.menu" = { fg = "foreground", bg = "background" }
"ui.menu.selected" = { fg = "background", bg = "foreground", modifiers = ["bold"] } "ui.menu.selected" = { fg = "background", bg = "foreground", modifiers = ["bold"] }
@@ -118,6 +118,7 @@ hint = "color6"
[palette] [palette]
background = "{{ background }}" background = "{{ background }}"
foreground = "{{ foreground }}" foreground = "{{ foreground }}"
lighter_background = "{{ lighter_background }}"
cursor = "{{ bright_foreground }}" cursor = "{{ bright_foreground }}"
selection_background = "{{ selection_background }}" selection_background = "{{ selection_background }}"
selection_foreground = "{{ selection_foreground }}" selection_foreground = "{{ selection_foreground }}"