Live data from Hacker News

Show HN: Sixel-tmux displays graphics even if your terminal has no Sixel support

github.com

51–60 of 89 posts

Re: Show HN: Sixel-tmux displays graphics even if your terminal has no Sixel support

#51
post #29

Earlier quoted context omitted.

This is such a good read. I hope this person goes far and gets wider support for this. I really like their project and their motivation. > Sorry guys, but I don't want you to hold Linux terminal users hostage for your petty concerns over what is the "right" way to do something like sixels. [...] It's something that has been done successfully for over 30 years. ... > Still, you could successfully block sixel support b…

>This is such a good read. I really like their project and their motivation. I can't agree. Like most rants, I found it to be very needlessly emotional, lacking in the technical department, and motivating towards the wrong goal (trying to fight and argue with maintainers, accusing them of negative things like "holding users hostage", etc) rather than doing the right thing for users (delivering new and useful features…

> I can't agree. Like most rants, I found it to be very needlessly emotional, lacking in the technical department, and motivating towards the wrong goal

It's titled as a rant, in a file called RANTS.md, and unless you've gone out of the way to read it, the rest of the immediately available documentation looks to be perfectly professional and courteous. I'm not sure what you are expecting?

I dislike when this sort of stuff is front-and-center on a project but it seems perfectly reasonable to accept that a developer might have opinions and feelings that caused them to "scratch an itch". People who aren't annoyed with existing systems don't in general try to replace or work around them, and there's certainly a load of projects I've found with disagreeable approaches to contributions or governance that I would rather not put my own time into. I imagine they feel the same, and appreciate that they documented that frustration.

Re: Show HN: Sixel-tmux displays graphics even if your terminal has no Sixel support

#52
post #43
post #8

This is lovely. The author recommended XTerm as one of the best, so I would like to suggest trying Kitty for size for graphics.

Didn't Kitty add opt-out telemetry recently? Either way Xterm works very well.

I wasn't aware of this, but it appears to just be update checking with no user data transmitted [0]. I would love any other information if there is more to it.

[0]: https://github.com/kovidgoyal/kitty/issues/3802

Re: Show HN: Sixel-tmux displays graphics even if your terminal has no Sixel support

#53
post #48

Earlier quoted context omitted.

You're saying you're "reading between the lines", that reads to me like an emotional statement, not a technical one. Please let's focus on the technical issues at hand and what has actually been said, not on what we think someone might be saying. >tell me precisely what doesn't work, in your own words. I already explained it, I've used sixel in Xterm and Foot and I don't like it, the restriction to paletted images ma…

> the restriction to paletted images makes everything look bad Not with 16 million colors. That's what 24 bit color mean (2^16) also called "truecolor" mode > Also, changing the font size breaks the images. Not on mintty. I can change the font size up and down, it even resizes the sixels in proportion so the images remain aligned to the text in a pixel-perfect way. It's a terminal problem. You are using bad terminals…

>Not with 16 million colors. That's what 24 bit color mean (2^16) also called "truecolor" mode

>Try to use sixel to play videos in mintty, with 24 bit support so palettes aren't a problem.

You are confusing sixel with the iTerm image protocol which is different. Sixel is a really old and outdated, inefficient protocol that only supports uncompressed 6-bit paletted images. It would be best if we could just stop talking about sixel altogether, because this is not even what you're referring to anymore. I'm actually concerned that you're conflating these two, it would also best if you could be clear about this in terms of your project so it's not confusing as to what your project supports. Maybe the name should change from sixel-tmux at some point?

SSH compression is not going to be better than the image's native compression, you really don't want to rely on that to compress your images when we already have dozens of other better ways to transmit video.

>Not on mintty. I can change the font size up and down, it even resizes the sixels in proportion so the images remain aligned to the text in a pixel-perfect way.

I'd love to look into how that's accomplished but I can't use mintty because I use a Mac, sorry. I'm also not really interested in trying to mess with mingw just to get this set up.

This isn't FUD either, you're saying the terminals are bad, well, there is no terminal I can use that works correctly, I suggested to help out fixing the terminals if you know how and you basically said no. So what am I supposed to do? Part of making a good protocol is making one that is easy for the apps and terminal emulators to implement correctly, if that doesn't exist, then like I said you have to go back to square one. Adding this support to tmux is useful in some cases, but it still isn't going to help with getting the terminals to implement this right.

>In the future, sixel-tmux will intercept sixels live and rewrite them into other format, like iTerm or kitty.

This is a good idea, please do this instead of trying to get other terminals to adopt Sixel when they are just going to have to replace it down the line anyway.

Re: Show HN: Sixel-tmux displays graphics even if your terminal has no Sixel support

#54
post #28

Earlier quoted context omitted.

Yeah that's an option but I can't stand Cygwin UX. tmux and mosh for native Windows would both be awesome.

Try sixel-tmux compiled with msys2 in Windows-Terminal: https://github.com/csdvrx/sixel-tmux/blob/main/tmux.exe Or compile it yourself using MinGW64 : after installing from msys2.org, pacman -S base-devel etc It works fine here. I have a Windows Terminal settings to start sixel-tmux instead of bash, using script to provide a pty: just have the command line be: C:/msys64/usr/bin/env.exe MSYS=winsymlinks:nativestrict M…

Wow, I'd been dying to make tmux work on WT. I couldn't get your tmux.exe executable to work (it froze WT, in both bash and cmd). However, the script method works!

Re: Show HN: Sixel-tmux displays graphics even if your terminal has no Sixel support

#55
post #38

Earlier quoted context omitted.

>This is such a good read. I really like their project and their motivation. I can't agree. Like most rants, I found it to be very needlessly emotional, lacking in the technical department, and motivating towards the wrong goal (trying to fight and argue with maintainers, accusing them of negative things like "holding users hostage", etc) rather than doing the right thing for users (delivering new and useful features…

> I can't agree. Like most rants, I found it to be very emotional and lacking in the technical department It was an accurate assessment of the situation. Read @hpa technical analysis if you prefer, but you'll see he and I seem to concur: there's nothing technically wrong in sixels. > So if you use GNOME, I would say just use that and work on that The difference between you and I is you still believe what they say. I…

Thank you!

Re: Show HN: Sixel-tmux displays graphics even if your terminal has no Sixel support

#56
post #24
post #13

Earlier quoted context omitted.

The issue with Kitty is that its graphics protocol is not widespread yet, so some of the CLI/terminal programs OP uses that can do graphics output may only support sixel. But yea, personally looking forward to Foot terminal implementing one of the fancier graphics protocols, even if it feels more like a toy at the moment (until they are used more). But seriously running the notcurses[0] graphics test with a terminal…

> it feels more like a toy at the moment It's not! Gnuplot in the terminal open many new use cases, such as examining data on remote hosts with scripts without even bothering to scp the data first. Also, Notebooks in the terminal is wonderful! Check https://github.com/koppa/matplotlib-sixel As for kitty format, adding support in sixel-tmux is planned, but you are welcome to write a patch if you want it sooner! Imagin…

A matplotlib backend isn't even needed, just a cool piece of info, it's possible to extend ipython and/or jupyter console to display pngs and svgs with sixels (and/or kitty graphics, dynamically). I have code lying around for this.

Re: Show HN: Sixel-tmux displays graphics even if your terminal has no Sixel support

#57
post #48

Earlier quoted context omitted.

> the restriction to paletted images makes everything look bad Not with 16 million colors. That's what 24 bit color mean (2^16) also called "truecolor" mode > Also, changing the font size breaks the images. Not on mintty. I can change the font size up and down, it even resizes the sixels in proportion so the images remain aligned to the text in a pixel-perfect way. It's a terminal problem. You are using bad terminals…

>Not with 16 million colors. That's what 24 bit color mean (2^16) also called "truecolor" mode >Try to use sixel to play videos in mintty, with 24 bit support so palettes aren't a problem. You are confusing sixel with the iTerm image protocol which is different. Sixel is a really old and outdated, inefficient protocol that only supports uncompressed 6-bit paletted images. It would be best if we could just stop talkin…

> You are confusing sixel with the iTerm image protocol which is different.

No I'm not.

> Sixel is a really old and outdated protocol that only supports 6-bit paletted images.

No it doesn't.

sixels can be 16 million colors, that's precisely what the snake.six outputs tests: if you can't see the precise degradation of the snake skin greens and yellows, your terminal is broken.

With so many bad terminals, it's no wonder that a lot of people have such a bad opinion about sixels!

> It would be best if we could just stop talking about sixel altogether, because this is not even what you're referring to anymore. I'm actually concerned that you're conflating these two

Actually, with what you said, I think you're the confused one here. When you could not express in your own words which practical limitations were imposed by sixels, I was 99% sure.

Now I'm 100% sure you have no idea of what you are talking about. Sorry if it's blunt, but take the time to run the tests I've suggested to correct your misconceptions about sixels.

Maybe you'll end up loving the format once you see what it's really capable of?

> I'd love to look into how that's accomplished but I can't use mintty because I use a Mac, sorry. I'm also not really interested in trying to mess with mingw just to get this set up.

Intel macs can run Windows natively. You've also got your pick of emulators, from parallels to vmware, if you roll that way.

So install Windows one way or another, go to msys2.org, download the latest release, click on install. No messing required, mintty is here by default.

You can then use pacman if you want more, which BTW is far better than most of the package managers available on Mac: simply follow the pacman update steps clearly explained with many screenshots on the first page.

Then you'll have an up-to-date msys2 install, with most of the linux tools you want running natively (no WSL involved) or just a `pacman -S` away.

>> In the future, sixel-tmux will intercept sixels live and rewrite them into other format, like iTerm or kitty.

> This is a good idea, please do this instead of trying to get other terminals to adopt Sixel when they are just going to have to replace it down the line anyway.

What you've written makes about as much sense as saying a drawing program should stop trying to support BMP format since it will have to be replaced down the line by JPG or PNG.

gimp, paint and others support many formats. Nobody is complaining. People just click on open. They don't care about the underlying formats.

Re: Show HN: Sixel-tmux displays graphics even if your terminal has no Sixel support

#58
post #31
post #19

Earlier quoted context omitted.

Sixes support exists upstream, but it seems nothing builds using it by default. https://gitlab.gnome.org/GNOME/vte/-/issues/253

Because sixel support isn't present in any released version and only present in git? https://gitlab.gnome.org/GNOME/vte/-/issues/253#note_1049040

It seems like it will be part of 0.68 then (next stable version) according to the milestone on the issue.

Re: Show HN: Sixel-tmux displays graphics even if your terminal has no Sixel support

#59
post #28

Earlier quoted context omitted.

Try sixel-tmux compiled with msys2 in Windows-Terminal: https://github.com/csdvrx/sixel-tmux/blob/main/tmux.exe Or compile it yourself using MinGW64 : after installing from msys2.org, pacman -S base-devel etc It works fine here. I have a Windows Terminal settings to start sixel-tmux instead of bash, using script to provide a pty: just have the command line be: C:/msys64/usr/bin/env.exe MSYS=winsymlinks:nativestrict M…

Wow, I'd been dying to make tmux work on WT. I couldn't get your tmux.exe executable to work (it froze WT, in both bash and cmd). However, the script method works!

I thought you might be having this issue, which is why I tried to be very explicit.

It's due to a cygwin and how /dev/cons* are different from /dev/pty* cf https://cygwin.com/pipermail/cygwin/2020-May/244878.html

I've tried to explain that a bit better in server-client.c (check line 251) to give the user a clue of what's happening with *cause = xstrdup(c->ttyname)

Unfortunately, even in 2021, properly configuring a terminal can be complicated.

That's why sixel-tmux page has a step-by-step configuration guide, and why I often provide config files in other projects like https://github.com/csdvrx/indent-rainbow : if needed, check https://github.com/csdvrx/indent-rainbow/blob/main/config/wi... even if I need to update it that should give you a good base to start tweaking from.

I strongly encourage you to check your configuration with the steps suggest on the sixel-tmux page, or at least the minimal set of steps shown in http://github.com/csdvrx/sixel-testsuite (which I should update to show how font change should work, with sixels being resize to be kept in perfect alignment with the text, as done in mintty, as several people seem to believe it's a sixel limitation)

Re: Show HN: Sixel-tmux displays graphics even if your terminal has no Sixel support

#60
post #12

Earlier quoted context omitted.

Any insight into how this one compares to Alacritty and Kitty?

> Any insight into how this one compares to Alacritty and Kitty? In terms of customization and configuration, I'd say foot falls between Alacritty and Kitty with Kitty being the most customizable and configurable while Alacritty being the least. One of the things I really like about Alacritty and foot is that they don't enforce italic and bold monospace variants while Kitty does. I despise italic variants of monospac…

Hey; what do you mean by "force"? I mean, to me this reads like you don't want to see italic nor bold font in the terminal (due to lag of monospace support in that regard maybe).

But I think having the possibility of italic, bold, bold+italic in the TE is a very good thing. And if you do not want that I think Kitty allows you to just use another font then; please correct me here, but I think that is configurable. Bold text in the TE world is yet another heated discussion. Some people like it bold, some people like the color to be intensified instead when using `SGR 1` (which is responsible for making font intensified/bold).

Post reply on HN