arakiken / mlterm

Other
154 stars 13 forks source link

Some emojis should display as wide when in sequence with Variation Selector-16 (VS-16, U+FE0F) #84

Closed jquast closed 1 month ago

jquast commented 9 months ago

Hello,

I have authored an automatic compliance testing tool for terminals, ucs-detect, and I have published results of mlterm and other terminals. In the results you can see that mlterm is reported as no support for Variation Selector-16 (VS-16, U+FE0F). Manual testing also shows it does not support the less common Selector-15 (U+FE0E).

image

As I have written in an article about this work,

I suspect it is some kind of "fixup" or compatibility sequence for the earliest emojis. These emojis may be displayed in either "text" or "emoji" style, and default to "text" style. In "text" style, emojis should appear without color in a single cell (Narrow), while in "emoji" style, they should display in color and occupy two cells (Wide).

The foot terminal has correct support for VS-15 and VS-16:

image

I hope this issue and the ucs-detect is helpful to your work, best wishes!

arakiken commented 8 months ago

Thanks for your report. mlterm now supports VS-15 and VS-16 to some extent. https://github.com/arakiken/mlterm/commit/2d864e6f76699647b88ffa9c8b2aa8d0a8109011

However, first of all, it is necessary to place emoji png files (https://github.com/twitter/twemoji/archive/master.zip) in ~/.mlterm/emoji or add "emoij_path = /usr/share/fonts/noto/NotoColorEmoji.ttf" to ~/.mlterm/main in order to enable color emoji glyphs in mlterm.

jquast commented 8 months ago

Thank you!!