Repository navigation
fix: no grey strip under the terminal's last row (#6) - #7
Merged
Merged
Conversation
…he last row (#6) xterm sizes itself in whole rows (measured: 604px in a 611px box), so the pixels under the last row were a transparent element and showed the native window background: a grey bar under a black theme. The panel now paints --p-bg and xterm's canvas is clear, with cursorAccent named so the character under a block cursor is not a hole. One coat per pixel, which is also what acrylic needs. The e2e theme scenario measures the strip and fails on the old code. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Maxaubert
added a commit
that referenced
this pull request
Sep 25, 2026
…ns, what is on disk (#67) (#68) - Paste is sanitised: no ESC or control can end the bracketed paste (#1). - Windows tools are started by full path; main leaves its launch folder (#3). - Paths are quoted for the shell they go to; cd quoting is complete (#5, #7). - The updater installs main's own offer only, pre-answers the close at the quit, hears a failed handoff and removes its temp folder (#14, #15, #19). - tabs.json and window.json are written atomically (#18). - Command-line paths resolve against the typing folder; a drive root works (#16, #17). The DWM helper's stdin errors are heard (#13). - The review and the three-PR plan are in docs/. Claude-Session: https://claude.ai/code/session_01LJbePcRzre7AusNzPNS2Bk Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
github-actions Bot
pushed a commit
that referenced
this pull request
Sep 25, 2026
…ns, what is on disk (#67) (#68) - Paste is sanitised: no ESC or control can end the bracketed paste (#1). - Windows tools are started by full path; main leaves its launch folder (#3). - Paths are quoted for the shell they go to; cd quoting is complete (#5, #7). - The updater installs main's own offer only, pre-answers the close at the quit, hears a failed handoff and removes its temp folder (#14, #15, #19). - tabs.json and window.json are written atomically (#18). - Command-line paths resolve against the typing folder; a drive root works (#16, #17). The DWM helper's stdin errors are heard (#13). - The review and the three-PR plan are in docs/. Claude-Session: https://claude.ai/code/session_01LJbePcRzre7AusNzPNS2Bk Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
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.
Closes #6.
The bug
Owner screenshot on the Pitch (black) theme: a grey bar along the bottom of the terminal.
xterm sizes itself in whole rows. MEASURED in the app: a 604px terminal inside a 611px box (15px at the owner's scale). The pixels under the last row belonged to a transparent element, so what showed there was the native window background, not the theme. The 4px frame round the terminal was painted; that leftover strip was not.
The fix
The panel paints the ground and xterm's canvas is clear:
TerminalPanel's box isbg-[var(--p-bg)]with 4px of padding (it was a transparent box with a--p-bgborder).currentTermTheme()hands xtermbackground: #00000000, plus a namedcursorAccent: it defaults to the background, which on a clear canvas would make the character under a block cursor a hole. Checked on the page: the cursor draws its character in the theme's ground on the cursor colour.--p-bgalready carries the window's alpha, so the acrylic path needs no special case any more.Verification
themescenario now MEASURES it: it finds the strip under the last row, walks up from the pixel to the first painted ground, and compares it with--p-bg-solid, in the dark default and again after switching to a light theme.FAIL and it is the theme's ground (none vs 11,11,15)(nothing was painted there).11,11,15 vs 11,11,15, and244,244,244after the switch.npm run typecheck: clean.npm run lint: 0 errors.npm test: 265 pass.npm run e2e: 10 scenarios pass.Notes
CLAUDE.mdandtools/e2e/run.mjsin different places).invisible, opacity 0). Unchanged by this PR.🤖 Generated with Claude Code