wez / wezterm

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

sixel doesn't work on Windows 10 #1236

Open xiangpeng2008 opened 2 years ago

xiangpeng2008 commented 2 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 2 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 2 years ago

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

xiangpeng2008 commented 2 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 6 months ago

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

wez commented 6 months ago

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

wez commented 6 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 6 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 6 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