Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Sixel: A terminal bitmap graphics format from the 80s (wikipedia.org)
54 points by unwind on March 13, 2023 | hide | past | favorite | 20 comments


Whenever Sixel comes up, I always think about this guy who wrote terminal patches that allowed for Sixel support, as well as a library (libsixel) that generates them: https://github.com/saitoha

A couple years ago, it seemed like he was on a mission to patch every terminal in existence so that Sixel support was widespread. Seriously, half of his repositories have something to do with Sixel. Back then I was still on Windows, and when he patched mintty it was kind of crazy seeing bitmap graphics in my terminal for the first time.

It seems as though he hasn't made any commits in years, though. I wonder what happened to him. I always admired his interest in pushing these graphics, however old and arcane the protocol may be.


It turns out there is an active sixel branch of tmux. Scrolling is a bit broken (as in parts of images blank out when scrolling) but otherwise it works fine in mlterm (variable-width fonts ftw). So far they have merged past progress to a sixel branch on the upstream repo so it seems to be a matter of progress until it's merged.

https://github.com/topcat001/tmux/tree/sixel


The fact that xterm supports Sixel, at least through a build flag, once more confirms my belief that this old and battle tested terminal emulator very much rocks.


WordPerfect for UNIX™ now runs natively on Linux thanks to the amazing Tavis Ormandy's work, and he has got it generating print previews in the terminal using sixels:

https://lock.cmpxchg8b.com/wordperfect.html


The TRS-80 had 2x3 matrix block characters[0] in the character code range 128-191 that apparently were called squots (square dots). Combined with direct memory read/write, a decent CPU and fast basic made for some easy game dev of the snake and ski variety.

[0] https://www.trs-80.com/wordpress/tips/graphics/


On the Model 3 it seems to be possible to race the beam to double the vertical resolution.

http://48k.ca/128x192.html


That's cool to be able to do using character generated graphics.


I experimented a bit with Sixel output for a home computer emulator, but good Sixel support in terminals is hard to come by (e.g. iTerm2 on Mac theoretically supports Sixels, but it's way too slow for any sort of realtime output beyond 4 colors).

I wish there was a proper (and widely supported) framebuffer standard for terminals with a 'chunky pixel format'.


I wish the regular Terminal app had fast sixel support.


  curl https://raw.githubusercontent.com/saitoha/libsixel/master/images/snake.six


Note that notcurses.com has a video demo of their library using Sixel, though the background music may be nsfw...


How did they do the shading of the wikipedia logo in the article? It doesn’t appear to be dithered.


Sixels is a paletted bitmap format, and (AFAIK) some terminals support more than 256 colors (e.g. see the screenshot in the readme here: https://github.com/saitoha/libsixel). But I guess the Wikipedia logo looks just fine with 256 colors.


Is there a terminal emulator supporting this mode?


There are a bunch. For example xterm does[0]. You can find a list with terminals that support it at [1].

[0] https://i.imgur.com/yD6aVQa.png

[1] https://www.arewesixelyet.com


I wish Terminal supported this in macOS.


It's an ancient and crappy standard.

No point in trying to resurrect it now.

https://sw.kovidgoyal.net/kitty/graphics-protocol/


I see you are as objective, impartial and opiniated as the author of the terminal you are referencing /s


GP's opinion is objectively correct. I fail to see the relevance of your assertion. /s


Great to see that Lenna is still in use




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: