Repository navigation
Keep panes see-through on transparent colorschemes - #19
Merged
Merged
Conversation
With no Normal background, highlights fell back to #000000 and painted it opaquely over the context rows, gutters, splits and panels, and blended every band against black. Split that value in two: - a reference background for blending: ui.theme.background (hex or a colour name), then Normal.bg, then a neutral dark/light fallback chosen by 'background'; - the painted page background: NONE when Normal has no bg (or ui.theme.transparent = true), otherwise the reference. Add/delete/change bands stay opaque. Hidden separators get a blank window-local vert fillchar, since fg = bg no longer hides the glyph, and the global vert append uses vim.opt_global so it stops resetting the current window's local fillchars. Fixes #18
Overview strips now blank their separator glyph instead of colouring it fg = bg, so the integration verifier's separator count no longer includes them. The visible separators are the same with or without overviews.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #18.
Problem
When
Normalhas no background (a transparent theme),highlights.luafell back to#000000for two separate jobs:Fix
resolve_backgroundssplits that fallback into two values:ui.theme.background(hex or a colour name) →Normal.bg→ a neutral#1E1E1E/#FFFFFFpicked by'background'.NONEwhenNormalhas no bg, otherwise the reference.ui.theme.transparent = true/falseoverrides detection.Add/delete/change bands stay opaque. Transparent themes now work with no configuration;
ui.theme.backgroundonly tunes the band blend to the terminal's exact colour.Related changes:
fg = bg, which leaves a visible line when transparent. Those windows now get a window-localfillcharswith a blankvert, keeping the user's other fillchars.vim.opt.fillchars:append({ vert = "│" })also reset the current window's localfillchars, so it's nowvim.opt_global. The Kitty edge bridges read the glyph from the global value for the same reason.ui.theme.backgroundandui.theme.transparent.Tests
Suite 14 (
tests/specs/10_connector.lua) covers:Normalleaves every page and status group with no bg, while bands stay solidbackgroundchanges the blend without making the panes opaque, and colour names are acceptedtransparent = false/trueforce each modehidden_separator_fillcharsThe full suite passes (
nvim --headless -u tests/run.lua→OK).Not verified visually: Kitty ribbon anti-aliasing over a transparent terminal background.