Sixel band with solid background color get transparent in some cases #22299

Open
opened 2026-01-31 08:09:12 +00:00 by claunia · 0 comments
Owner

Originally created by @PhMajerus on GitHub (Sep 21, 2024).

Originally assigned to: @j4james on GitHub.

Windows Terminal version

1.23.2611.0 (Canary)

Windows build number

10.0.26100.1742 ARM64

Steps to reproduce

This one is probably for @j4james

When displaying a sixel image with solid background (␛P1;1q"… or default ␛Pq"…), bands are properly created filled with the solid background color before pseudo-pixels get decoded into them, only if the band is already in the viewport.
When reaching the end of the viewport, new bands added that require scrolling or extending the buffer are created with a transparent background instead of the solid background:

image
(Solarized Light color scheme to make the background more visible, but happens with every color scheme)

My test file has magenta as an unused color # 0, so the background is using black regardless of the VT palette, and then transparency for the bands scrolling the viewport or extending the buffer.
Edit: Reading through #17887, I guess that's because I didn't set color # 256 and it defaulted to black

Here's the test file: test.zip

Is this the expected behavior to match old terminals and we need to explicitly draw all background pixels instead of relying on background fill, or is this a bug?

Expected Behavior

Background should be reliably solid background color.

Actual Behavior

In some cases, the background is transparent.

Originally created by @PhMajerus on GitHub (Sep 21, 2024). Originally assigned to: @j4james on GitHub. ### Windows Terminal version 1.23.2611.0 (Canary) ### Windows build number 10.0.26100.1742 ARM64 ### Steps to reproduce This one is probably for @j4james When displaying a sixel image with solid background (`␛P1;1q"…` or default `␛Pq"…`), bands are properly created filled with the solid background color before pseudo-pixels get decoded into them, only if the band is already in the viewport. When reaching the end of the viewport, new bands added that require scrolling or extending the buffer are created with a transparent background instead of the solid background: ![image](https://github.com/user-attachments/assets/d090ecdd-f534-4b00-8f2c-6971e973a796) _(Solarized Light color scheme to make the background more visible, but happens with every color scheme)_ My test file has magenta as an unused color # 0, so the background is using black regardless of the VT palette, and then transparency for the bands scrolling the viewport or extending the buffer. _Edit: Reading through #17887, I guess that's because I didn't set color # 256 and it defaulted to black_ Here's the test file: [test.zip](https://github.com/user-attachments/files/17084582/test.zip) Is this the expected behavior to match old terminals and we need to explicitly draw all background pixels instead of relying on background fill, or is this a bug? ### Expected Behavior Background should be reliably solid background color. ### Actual Behavior In some cases, the background is transparent.
claunia added the Issue-BugIn-PRArea-VTNeeds-Tag-FixProduct-Terminal labels 2026-01-31 08:09:13 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#22299