gnunn1 / tilix

A tiling terminal emulator for Linux using GTK+ 3
https://gnunn1.github.io/tilix-web
Mozilla Public License 2.0
5.38k stars 293 forks source link

[Feature Request] Use pango's fallback=false or add a user-configurable option for it #2109

Open van-de-bugger opened 2 years ago

van-de-bugger commented 2 years ago

Tilix 1.9.5 @ Fedora Linux 36.

  1. Iosevka is a monospace font, suitable for terminal emulators and text editors. Iosevka has a lot of glyphs, including glyphs rarely appearing in other monospace fonts: many arrows, math symbols, old Cyrillic letters, geometric shapes, etc.
  2. I use Iosevka font in Tilix.
  3. Tilix is a GTK application, I guess it uses Pango library to render text in the terminal window.
  4. Pango has an annoying "feature": if Pango decides a character is an Emoji, it renders the character using a glyph from special emoji font but not a glyph from the specified font.
  5. The width of a glyph from special emoji font does not equal to the width of Iosevka glyphs. It breaks terminal "monospacity".

For example, look at the table of glyphs of Iosevka font: Screenshot from 2022-07-27 03-18-33 You see, all characters are aligned in columns, but two rows of the table are broken: some characters are in color, wider than other, columns are misaligned.

I have filled a bug against Pango, but Pango developers replied "it's not a bug, it's a feature". Since Pango developers rejected the bug, the only way to fix the problem described above is modifying the code of GTK apps.

So, could you please use fallback Pango attribute with false value? In such case Pango does not use glyphs from other fonts, but use glyphs from the specified font only. If hardcoding fallback=false is not desirable, a user-configurable options can be introduced.

Thanks.