wez / wezterm

A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust
https://wezfurlong.org/wezterm/
Other
17.91k stars 804 forks source link

sixel doesn't work on Windows 10 #1236

Open xiangpeng2008 opened 3 years ago

xiangpeng2008 commented 3 years ago

What Operating System(s) are you seeing this problem on?

Windows

WezTerm version

wezterm 20210814-124438-54e29167

Did you try the latest nightly build to see if the issue is better (or worse!) than your current version?

No, and I'll explain why below

Describe the bug

when I open wezterm on windows10, ssh to remote linux, and img2sixel path/img.png, nothing prints

To Reproduce

open wezterm on windows10 ssh to linux server img2sixel path/img.png

image

Configuration

no config

Expected Behavior

Sixel graphics support (experimental: starting in 20200620-160318-e00b076c)

Logs

 2021-10-17T12:07:17.919Z INFO  wezterm_mux_server_impl::local > setting up C:\Users\zhangxia\.local/share/wezterm\gui-sock-6796
 2021-10-17T12:07:18.484Z WARN  wezterm_term::terminalstate    > unhandled DecPrivateMode SetDecPrivateMode(Unspecified(9001))
 2021-10-17T12:07:18.960Z INFO  wezterm_gui::termwindow        > OpenGL initialized! ANGLE (NVIDIA Quadro P620 Direct3D11 vs_5_0 ps_5_0) OpenGL ES 3.0.0 (ANGLE 2.1.1 git hash: 07ea804e6201) is_context_loss_possible=true wezterm version: 20210814-124438-54e29167
 2021-10-17T12:07:30.103Z WARN  wezterm_term::terminalstate    > unhandled DecPrivateMode SetDecPrivateMode(Unspecified(1034))

Anything else?

No response

wez commented 3 years ago

The Windows ConPTY layer might be interfering with this. If you use wezterm ssh to connect directly to the remote host, I would expect this to work. Could you try that?

xiangpeng2008 commented 3 years ago

I'm not with this Windows 10 right now, will let you know tmr.

xiangpeng2008 commented 3 years ago

The Windows ConPTY layer might be interfering with this. If you use wezterm ssh to connect directly to the remote host, I would expect this to work. Could you try that?

Yes, wezterm ssh works.

wez commented 2 years ago

We're waiting on some combination of: https://github.com/microsoft/terminal/issues/1173 https://github.com/microsoft/terminal/issues/448

before this will work directly on ConPTY

ykhan21 commented 10 months ago

For what it's worth, mintty is a Windows terminal that supports sixel graphics.

wez commented 10 months ago

@ykhan21 wezterm does support sixel graphics. It's conpty in the middle that can mess things up

wez commented 10 months ago

The workaround that I suggest is using wezterm ssh to get directly into eg: a WSL environment or a remote linux environment

ykhan21 commented 10 months ago

Is there a way to get it to work without ssh-ing into a linux / WSL environment?

For example, on Windows with mintty I can do: magick convert image.png -polaroid 10 -thumbnail 500x image.png sixel:- > image.six.txt, then cat the file to display the image with sixel graphics: cat image.six.txt.

wez commented 10 months ago

No, conpty, which is intimately tied to native console program output on windows, does not support sixels. To use sixel, you need to avoid conpty. Learn more about conpty: https://wezfurlong.org/wezterm/what-is-a-terminal.html#windows-and-conpty

As an alternative, using the iTerm2 image protocol uses a different kind of escape sequence that can mostly squeeze through conpty.

Consider using eg: png or jpg images together with wezterm imgcat

AnonymouX47 commented 2 months ago

I think this might be worth looking into, now that https://github.com/microsoft/terminal/issues/1173 has been resolved.

Thanks.

Kreijstal commented 1 month ago

I think this might be worth looking into, now that microsoft/terminal#1173 has been resolved.

Thanks.

wezterm ssh does support sixel, mintty supports sixel, and microsoft terminal supports sixel now

pcgeek86 commented 2 weeks ago

Now that Microsoft Windows Terminal (Preview) supports sixel, is there any reason that conpty would still block wezterm support for sixel?

This screenshot shows wezterm running side-by-side with Windows Terminal Preview. Windows Terminal can render sixel graphics, but wezterm still cannot.

image

I have very little to no knowledge on terminal architecture, so it isn't clear to me why one works, but not the other. So, be gentle in your responses. :)

AnonymouX47 commented 2 weeks ago

So, be gentle in your responses. :)

I just want to say... as far as I know, he always is. :smiley: