-
-
Notifications
You must be signed in to change notification settings - Fork 681
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Sixel support broken since v0.40.0 #3372
Comments
I add some things I noticed, in case its helpful:
Working:
Not working:
In my case, I use Contour and an Alacritty mod with Sixel support. |
Able to reproduce all mentioned issues, without a cache clear sixels are broken. And they are double height. I'm also using foot. |
Let's try to bump this, it should be a simple regression fix. @imsnif seems to be the Sixel God on zellij |
My own release bisect shows this breaks with 0.35.0. Anything >= 35 needs a cache clear. I'll dig into which part of the release it was tomorrow. |
My gut instinct on the patch in 0.35.0 that may have caused this seems to be right, at 5235407 the tree is fine, 3a0e56a broken. So #2173 looks like the PR that causes the regression. This also means that you only need a rm ~/.cache/zellij/zellij-stdin-cache-* rather than a full cache/zellij delete. Looks like the addition of the cache is causing a race condition when sending the ScreenInstruction TerminalPixelDimensions. When it's correctly sent via a retry from Will continue to persevere on this but my knowledge of concurrency in Rust is rudimentary. |
Had a bit more time to look into this and looks like Update: No locking just a race condition between session init and the retry queue. Only when session init has completed first do fg/bg/pixel dims get correctly set in the screen. |
Okay had a bit more time to look into this and figured out the obvious reason for the hang (infinite loop). Quick re-trail led me to a fix. Will clean up the patch, and create a PR. |
thanks @lypanov this is great!! |
This ended up breaking sixel support as screen instructions such as pixel dimension detection response were unreliably replayed when the screen was not yet ready.
If anyone has time to test the above PR/branch and confirm the fix locally, please do so! |
This ended up breaking sixel support as screen instructions such as pixel dimension detection response were unreliably replayed when the screen was not yet ready.
Basic information
zellij --version
: zellij 0.40.0, zellij 0.40.1stty size
: 76 157uname -av
orver
(Windows): Linux zettnet-desktop 6.1.87 #1-NixOS SMP PREEMPT_DYNAMIC Wed Apr 17 09:18:29 UTC 2024 x86_64 GNU/Linuxzellij.log:
Issue description
v0.40.0 and v0.40.1 are completely unable to render Sixels even if they report as being capable. This is tested in the foot terminal with confirmed working Sixels.
Other relevant information
Additionally I have looked at every version up until v0.31.0 (The version Sixel support was added) and concluded that in every version 0.31.0 -> 0.39.2 Sixels are rendered with twice the height they should and do not get cleared properly as shown in #3173
The text was updated successfully, but these errors were encountered: