Tracking terminal emulator support for Unicode's "Symbols for Legacy Computing" (U+1FB00-U+1FBFF) and its supplement block (U+1CC00-U+1CEBF)
Symbols for Legacy Computing and its supplement are unicode blocks containing graphical characters that were found on computers from the 70s, 80s, and 90s. These characters were used to show semi-graphical elements on the terminal's text grid, and were used to display pictures, render games, and enhance terminal UIs.
Demos
Here's some demos of what can build with these characters. If you have any that you'd like to contribute, please send them my way!
Smooth Mosaic
The smooth mosaic terminal graphic characters can be used to draw filled shapes, perfect for area charts or sparklines.
Or graphical symbols
Sextant and Octant
The Sextant (Legacy Computing) and Octant (Supplement) characters give you a 2x3 and 2x4 grid.
Use it for pixel art
Or bar charts, where you can fit two datapoints in a single character
Corner styles for UI elements
Circles
Circles can inhabit one of nine positions in a 2x2 grid. Potentially useful for games.
Terminal Emulator Support
These are unicode characters, why is this section concerned with
terminal emulators? Shouldn't this be "font support"?
Although these codepoints could be drawn by the standard text
rendering in a terminal, very few fonts actually contain the paths
necessary to display them, so many terminal emulators implement
custom drawing routines for them instead. But there's another
benefit to having the terminal draw the glyphs: the paths can be
customized to the users display settings, allowing graphical
elements to properly connect to one another even if the terminal
would otherwise add padding between glyphs.
The Symbols for Legacy Computing and Symbols for Legacy Computing Supplement blocks contain symbols that are useful for building graphical displays, and others that are less useful (unless you're building a space-invaders or pacman clone), so for the purposes of showing terminal support, I've grouped them into "Important" and "Unimportant" categories, which you can view separately.
Methodology
To see which terminals implement custom drawing for codepoints in these blocks, I configured each emulator to use a font that didn't contain glyphs for any of the characters and then used a script to print all of them anyway. Any characters that still appeared on screen must have had custom logic in the emulator. This was a very manual process, and I may have made mistakes; If you notice that any of the data is incorrect, please email me or submit a pull request against the repository here or here.
Overview
To summarize
- Ghostty is killing it.
- Kitty and libvte-based terminals (e.g. gnome-terminal and xfce's terminal) have excellent support for Legacy Computing and support the most important part of the Suppliment (the octant characters).
- xtermjs has great coverage of Legacy Computing, but sadly no support for anything in the Suppliment
- urxvt (and presumably it's entire family of terminals) support nothing.