Skip to content

Update viuer and use icy_sixel#657

Merged
tramhao merged 2 commits intotramhao:masterfrom
hasezoey:viuerUpdate
Mar 6, 2026
Merged

Update viuer and use icy_sixel#657
tramhao merged 2 commits intotramhao:masterfrom
hasezoey:viuerUpdate

Conversation

@hasezoey
Copy link
Collaborator

@hasezoey hasezoey commented Mar 4, 2026

This PR updates viuer to the latest version, which adds support for more terminals.
Also switch to use icy_sixel in viuer which is a pure-rust (lib)sixel implementation, which makes us no longer require libsixel and build on practically any target.

Due to caution, i have not yet enabled the sixel cover feature by default.

@hasezoey hasezoey marked this pull request as draft March 4, 2026 18:34
@hasezoey
Copy link
Collaborator Author

hasezoey commented Mar 4, 2026

Converting back to draft to avoid accidental merging, until the issues mentioned in #654 (comment) are resolved

hasezoey added 2 commits March 5, 2026 11:28
A complete libsixel implementation in rust.
"libsixel" is now no longer used.
@hasezoey
Copy link
Collaborator Author

hasezoey commented Mar 5, 2026

@Porkepix could you try this PR again? I have reverted to a earlier viuer version for now, which still has icy_sixel support, but not the kitty issue. With this version i cannot reproduce the issue in wezterm.

@Porkepix
Copy link
Contributor

Porkepix commented Mar 5, 2026

@Porkepix could you try this PR again? I have reverted to a earlier viuer version for now, which still has icy_sixel support, but not the kitty issue. With this version i cannot reproduce the issue in wezterm.

I'd say it looks fine from little testing. I also saw you opened several issues upstream, maybe you should add it's clear regression between 0.10 and 0.11 then, running some bisect on it if you can build from local copy could help upstream.

Is viuer relying on the other create you opened an issue for this, or is it unrelated in the end?

@hasezoey
Copy link
Collaborator Author

hasezoey commented Mar 5, 2026

maybe you should add it's clear regression between 0.10 and 0.11 then, running some bisect on it if you can build from local copy could help upstream.

I did mention in viuer that it is fine in 0.10.0, but broken in 0.11.0 and the PR that changed it and why practically everything is still affected, only that the PR made it more apparent.

EDIT: i re-read what i wrote in the viuer issue, i did not explicitly mention that 0.10.0 is fine, but even then, like i said 0.11.0 only made the issue more apparent.

Is viuer relying on the other create you opened an issue for this, or is it unrelated in the end?

It is related and unrelated.
The TL;DR is that both tui-realm (via crossterm) and viuer try to read the input (keys). Terminal responses to queries are simply also just "keys" and neither has proper stdin locking (not actually using std::io::StdIn for some reason), so it is a race condition to who gets it first (and viuer has a infinite loop to wait for the keys).

@hasezoey hasezoey marked this pull request as ready for review March 5, 2026 12:26
@Porkepix
Copy link
Contributor

Porkepix commented Mar 5, 2026

maybe you should add it's clear regression between 0.10 and 0.11 then, running some bisect on it if you can build from local copy could help upstream.

I did mention in viuer that it is fine in 0.10.0, but broken in 0.11.0 and the PR that changed it and why practically everything is still affected, only that the PR made it more apparent.

My bad, either I saw it before, or I just didn't read thoroughly enough then!

@tramhao tramhao merged commit 1cb2205 into tramhao:master Mar 6, 2026
6 checks passed
@hasezoey hasezoey deleted the viuerUpdate branch March 6, 2026 09:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants