-
-
Notifications
You must be signed in to change notification settings - Fork 161
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 does not seem to work on Windows? #729
Comments
Could share the version and the screenshot of what is the output? |
lsix works locally for me, what is your TERM variable value? |
xterm-256color, I am on windows 10 if it matters. |
if you leave ssh and run lsix outside does it work? |
@Kreijstal is this happening still? |
Interesting, in windows 10 it seems it whitescreened. Nothing works :), on windows 11, rio, works, except sixel of course. with lsix I get:
using timg with -ps option, I get nothing. There is a passthrouh mode you have to activate. |
Thank you for the good resources!! I assume iterm2 protocol is working then |
iterm2 protocol seems to work... |
Thank you, after your links i have a better understanding of sixel issue in windows |
might also be interesting wezterm/wezterm#6239 |
someone solved it wezterm/wezterm#1236 (comment) Btw, I got an error on windows 10 it crashes. This is unrelated to the sixel problem. I deleted already appdata/local/rio but it whitescreens |
For what it's worth, wezterm/wezterm@4accc37 was what actually solved the issue for Wezterm as hinted at in wezterm/wezterm#6239 (comment) and tested in wezterm/wezterm#1236 (comment). |
So it was the matter of updating conpty (at least is what looks like) on wezterm. Interesting though because Rio looks for the conpty instead of having it embedded fn load_conpty() -> Option<Self> {
type LoadedFn = unsafe extern "system" fn() -> isize;
unsafe {
let hmodule = LoadLibraryW(w!("conpty.dll"));
if hmodule.is_null() {
return None;
}
let create_fn = GetProcAddress(hmodule, s!("CreatePseudoConsole"))?;
let resize_fn = GetProcAddress(hmodule, s!("ResizePseudoConsole"))?;
let close_fn = GetProcAddress(hmodule, s!("ClosePseudoConsole"))?;
Some(Self {
create: mem::transmute::<LoadedFn, CreatePseudoConsoleFn>(create_fn),
resize: mem::transmute::<LoadedFn, ResizePseudoConsoleFn>(resize_fn),
close: mem::transmute::<LoadedFn, ClosePseudoConsoleFn>(close_fn),
})
}
} |
In short, I believe all that needs to be done is update the bundled conpty build. |
Yea Rio doesn't, it uses https://github.com/microsoft/windows-rs to load the conpty. |
Ah! I see. Sorry, I posted my previous comment before seeing yours. |
It means Rio will be stuck with whatever build comes with the windows build. 😕 |
No worries!
Yea, that's the con side. Technically isn't that bad because this file shouldn't be updating that much but I will try to test on my windows how to update the windows conpty |
oooff microsoft/vscode#224488 |
Yeah... Looks like that's the only option. |
I mean could be an easy fix tbh, would need to embed the files on teletypewritter mod and update load_conpty to load the path fn load_conpty() -> Option<Self> {
type LoadedFn = unsafe extern "system" fn() -> isize;
unsafe {
let hmodule = LoadLibraryW(w!("conpty.dll"));
if hmodule.is_null() {
return None;
}
let create_fn = GetProcAddress(hmodule, s!("CreatePseudoConsole"))?;
let resize_fn = GetProcAddress(hmodule, s!("ResizePseudoConsole"))?;
let close_fn = GetProcAddress(hmodule, s!("ClosePseudoConsole"))?;
Some(Self {
create: mem::transmute::<LoadedFn, CreatePseudoConsoleFn>(create_fn),
resize: mem::transmute::<LoadedFn, ResizePseudoConsoleFn>(resize_fn),
close: mem::transmute::<LoadedFn, ClosePseudoConsoleFn>(close_fn),
})
}
} |
The trick part is to support |
Hmm... That's true. |
sixel does not seem to work on windows.
The text was updated successfully, but these errors were encountered: