Difference between revisions of "Theory and Practice of Sprixels"

From dankwiki
(Created page with "'''previously: "spooky tmux at a distance" 2021-02-20'''")
 
Line 1: Line 1:
[[File:Pixel-orca.png|thumb|right|Orcas on Segways]]
'''[[Dankblog|dankblog!]] 2021-03-29, at [[Viewpoint|the danktower]]'''
I've spent significant time over the past few weeks adding "sprixel" support to [[Notcurses]], culminating (thus far) in yesterday's [https://github.com/dankamongmen/notcurses/releases/tag/v2.2.4 2.2.4 release]. What's a sprixel? Numerous [https://github.com/dankamongmen/notcurses/blob/master/TERMINALS.md terminal emulators] support one or another "graphic protocol", by which bitmaps of arbitrary size can be written to the glyph-based viewing area. Showing that dynamic control of the font is approximately equivalent in power to such graphic protocols is left as an exercise for the reader. There are at least four major protocols:
* the venerable DEC [[Sixel]] protocol, introduced on the VT125, and also present on at least the VT240 and VT 330. Implemented by at least XTerm, Mlterm, and foot, with patches out for at least VTE, alacritty, and Windows Terminal
* Kitty's protocol, advanced by Kovid Goyal.
* The "1337" iTerm2 protocol, also implemented by wezterm.
* You can shit all over the Linux framebuffer directly when in a framebuffer console.
'''previously: "[[Spooky_tmux_at_a_Distance|spooky tmux at a distance]]" 2021-02-20'''
'''previously: "[[Spooky_tmux_at_a_Distance|spooky tmux at a distance]]" 2021-02-20'''

Revision as of 00:01, 29 March 2021

Orcas on Segways

dankblog! 2021-03-29, at the danktower

I've spent significant time over the past few weeks adding "sprixel" support to Notcurses, culminating (thus far) in yesterday's 2.2.4 release. What's a sprixel? Numerous terminal emulators support one or another "graphic protocol", by which bitmaps of arbitrary size can be written to the glyph-based viewing area. Showing that dynamic control of the font is approximately equivalent in power to such graphic protocols is left as an exercise for the reader. There are at least four major protocols:

  • the venerable DEC Sixel protocol, introduced on the VT125, and also present on at least the VT240 and VT 330. Implemented by at least XTerm, Mlterm, and foot, with patches out for at least VTE, alacritty, and Windows Terminal
  • Kitty's protocol, advanced by Kovid Goyal.
  • The "1337" iTerm2 protocol, also implemented by wezterm.
  • You can shit all over the Linux framebuffer directly when in a framebuffer console.


previously: "spooky tmux at a distance" 2021-02-20