Skip to content

Sixel graphics should be ignored unless supported #120

Closed

Description

  • Your Windows build number: (Type ver at a Windows Command Prompt)
    Microsoft Windows [Version 10.0.17101.1000]

  • What you're doing and what's happening: (Copy & paste specific commands and their output, or include screen shots)
    I run a file containing this (you could also just paste the three lines starting with printf):

#!/bin/bash
printf '\ePq#1NNNN#2NNNN#3NNNN$oooo'\
'#1oooo#2oooo-#3BBBB#1BBBB#2BBBB${{{{'\
'#3{{{{#1{{{{????\e\\'

The result is that it prints:
q#1NNNN#2NNNN#3NNNN$oooo#1oooo#2oooo-#3BBBB#1BBBB#2BBBB${{{{#3{{{{#1{{{{????

  • What's wrong / what should be happening instead:
    Since ConHost doesn't support sixel graphics (at this time) it should be ignored and nothing should be printed. It should be as if the entire output of the program was sent to /dev/null.

"Non-graphics terminals generally silently ignore sixel escape sequences." -- https://en.wikipedia.org/wiki/Sixel

In WSLTTY (that supports sixel graphics) the program prints a 3x3 red, green and blue colored square:
brg
gbr
rgb

xterm in WSL Ubuntu with VcXsrv ignores sixel graphics unless started as a VT340 terminal: xterm -ti vt340, then it prints the colored square.

Activity

  1. WSLUser commented on Mar 2, 2018

    @WSLUser
    Contributor

    Since we're mentioning Sixel here, there's a UserVoice to get Sixel graphics support for ConHost here Recommend upvoting it to gain priority.

  2. zadjii-msft commented on Mar 5, 2018

    @zadjii-msft
    Member

    I guess I didn't directly respond about sixels in microsoft/WSL#1099 - It'd be cool, it's on the backlog.

  3. added a commit that references this issue on May 16, 2018
    b4196e7
  4. oising commented on Apr 10, 2019

    @oising
    Collaborator

    I should leave this here for stopgap graphical fun, although the performance of conhost makes it very painful: https://hpjansson.org/chafa/

  5. miniksa commented on Apr 10, 2019

    @miniksa
    Contributor

    Whoa whoa whoa. You can't just rag on conhost's performance without giving me a repro Oisin Grehan (@oising). :P I work pretty dang hard to optimize things when I have a concrete hot path to work on.

  6. oising commented on Apr 10, 2019

    @oising
    Collaborator

    Michael Niksa (@miniksa) -- you're right, I'm sorry. I'm on your side, but I was definitely way too terse here. That links to a super fun tool for emitting VT for animating gifs/pngs/mp4s etc to a terminal. I think you're doing an outstanding job of adding value without making conhost worse, but until the old GDI+ crud is ripped out, it'll never compete with xterm/alacritty/sakura/(insert GL/SDL powered terminal here.)

    That said, here's your repro (WSL):

    1. sudo apt install chafa
    2. curl https://media.giphy.com/media/12UwsVgQCYL3H2/giphy.gif --output winanim.gif
    3. chafa winanim.gif --font-ratio 1/3

    Now fire up X410, VcVxsrv, etc, spawn an xterm or a fancy accelerated shell like sakura and try again.

    I've attached two short vids (one sakura over x410), the other wsl on conhost (18362.53).

    sakura 2019-04-10 14-31-22.zip
    Ubuntu 18.04 2019-04-10 14-33-05.mp4.zip
    xterm 2019-04-10 14-38-29.zip

    Vids recorded with window 10 game bar (win+g).

    edit: added plain old xterm. I'm on a suface book i7 btw. Even xterm smokes conhost.

  7. oising commented on Apr 10, 2019

    @oising
    Collaborator

    I'd be curious to know how much of this difference is down to WSL's known problems with I/O, though I assumed that was mainly disk writes - but with the architecture of linux being all files and sockets, perhaps it's part of the problem. There's no win32 native version of Chafa, at least nothing comparable that I know of. I can't imagine it being much of a blocker though - what's the throughput here for animating with text? It's gotta be absolutely pitiful compared to running npm install ;)

  8. miniksa commented on Apr 11, 2019

    @miniksa
    Contributor

    OK. I did a WPR trace of what's going on with chafa and we should make a new issue. Going to do that and come back and link it here.

    See #410

  9. ghost added
    Needs-Tag-FixDoesn't match tag requirements
    on May 17, 2019
  10. added
    Area-VTVirtual Terminal sequence support
    Issue-BugIt either shouldn't be doing this or needs an investigation.
    on May 29, 2019
  11. ghost removed
    Needs-Tag-FixDoesn't match tag requirements
    on May 29, 2019
  12. ghost added
    In-PRThis issue has a related PR
    on Jun 3, 2020
  13. ghost added
    Needs-Tag-FixDoesn't match tag requirements
    on Aug 17, 2020
  14. ghost removed
    In-PRThis issue has a related PR
    on Aug 17, 2020
  15. ghost added
    Resolution-Fix-CommittedFix is checked in, but it might be 3-4 weeks until a release.
    on Aug 17, 2020
  16. added a commit that references this issue on Aug 17, 2020
    acac350
  17. voronoipotato commented on Oct 14, 2020

    @voronoipotato

    Is there an issue for tracking sixel support?

  18. zadjii-msft commented on Oct 14, 2020

    @zadjii-msft
    Member

    Yep, #448

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Area-VTVirtual Terminal sequence supportIssue-BugIt either shouldn't be doing this or needs an investigation.Needs-Tag-FixDoesn't match tag requirementsProduct-ConhostFor issues in the Console codebaseResolution-Fix-CommittedFix is checked in, but it might be 3-4 weeks until a release.

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions