Open PhMajerus opened 6 months ago
@DHowett You knew you couldn't add support for stylistic sets in Terminal without getting my hopes up, right? You can't just add that feature and not leave Cascadia open to a few more changes before locking it up to work on v.Next.
Description of the new feature/enhancement
Now that Windows Terminal supports stylistic sets, I'm bringing back the #647 idea, but as an optional feature. Many Linux apps have been using braille as pseudo-pixels, to render graphs.
Here is an example with BpyTOP:
Cascadia has proper Braille characters, with separations between symbols, and between lines, as intended. However for this specific use, which is very common in terminals, making the pseudo-pixels evenly spaced is sometimes preferable.
In these scenarios, the extra horizontal and vertical spaces between Braille dots are often considered an inconvenience. Here is the same app with Braille that does unify the spaces for graphical use:
This is even more visible when apps are rendering more complex graphics using Braille: Which would look like the following with the stylistic set enabled:
The desire for evenly spaced Braille dots can also be seen with lot of examples in the https://github.com/ryanoasis/nerd-fonts/pull/837 discussion. Note how some users even consider the proper spacings of Braille as a bug, because they are used to terminal fonts that make all the spaces between the Braille dots even. Notcurses
NCBLIT_BRAILLE
also uses Braille as pseudo-pixels, and would benefit from a Separated Octants feature.It is important to note that the recent introduction of octants does not make this feature useless in the long term. Unicode 16.0 also introduces separated quadrants and separated sextants because sometimes the separation is desired to make the pseudo-pixels more distincts. Braille will likely keep being used for that purpose, and many existing and future CLI/TUI apps will not replace Braille with octants.
Having this as an option offers the best of both. Cascadia can provide both proper Braille, and the common separated octants used in terminals.
Proposed technical implementation details
Now that Windows Terminal can let each user select to enable or not specific stylistic sets, I think it would be great to have a stylistic set that offers alternate Braille characters. To make them fit well with the recently introduced separated quadrants and separated sextants, I suggest they be implemented as separated octants, following the same pattern for all separated mosaics. The example screenshots used in this proposal are using the same separating spaces widths as the separated quadrants and sextants, and the same grid alignments as all other mosaics pseudographics.
Here is an example of the whole quadrants, sextants, octants, and separated variants, with Braille as the separated octants set:
The new style would be optional, and easily enabled through the new
Font features
setting:Adding this feature requires adding separated octants glyphs, and a stylistic set that substitutes the braille glyphs for the corresponding separated octants glyphs.
Extra care must be taken to ensure that the
rclt
substitutions are also applied after to properly select the separated octants appropriate for the renderer.