zulip-terminal icon indicating copy to clipboard operation
zulip-terminal copied to clipboard

Support symbol "themes" to allow varying levels of icon/symbol rendering

Open neiljp opened this issue 4 years ago • 2 comments

Spinning this feature idea out from #178, which this could end up resolving and is a relevant read.

The idea is to add a feature to support terminals with various levels of unicode support, so that the UI can look reasonable on basic terminals, "typical" ones and potentially up to ones with recent emoji support - though rendering of emoji themselves in place of our current text rendering is likely a different (if related) issue.

Currently we have aimed for a middle path of symbols that appear to render fairly consistently across common platforms but make the UI interesting enough. However, there are two extremes around this:

  • some platforms/systems/fonts might support as little as basic letters (ascii and/or localized text + limited symbols)
  • some platforms/systems/fonts might support way more unicode, and would benefit from using more advanced symbols

Some aspects to consider:

  • likely a command-line option, later a config option
  • Can we somehow detect if symbols render properly, or the font supports them, and downgrade/upgrade? (override by the above)

neiljp avatar Feb 28 '21 20:02 neiljp

This was touched on in #zulip-terminal > Web public marker #T1135/#T712/#T1177, where an emoji was proposed for this role. However, that emoji was double-width and did not align with the existing stream markers. In an emoji-capable terminal we could have sets of characters which align well for streams, including eg. 'lock' markers for private streams, while keeping simple characters/letters which also align well together in other terminal 'symbol themes'.

neiljp avatar Mar 24 '22 00:03 neiljp

For reference, on Debian(-like) systems one can install fonts-noto-color-emoji and get emoji displayed quite well, with other fonts falling back to use this set even if the main font is something else - at least on gnome-terminal.

However, this does not suffice for allowing eg. running on a basic linux terminal, at least based on prior experience with lots of other characters not displaying as expected.

neiljp avatar Mar 24 '22 00:03 neiljp