[PLUG] Gnome-terminal 3, xterm, fonts, Pango, Harfbuzz

Ben Koenig techkoenig at gmail.com
Wed Jan 22 22:38:22 UTC 2020


On Wed, Jan 22, 2020 at 12:16 PM Keith Lofstrom <keithl at kl-ic.com> wrote:

> A month ago, I complained about foggy, aliased small fonts
> in Gnome-3 gnome-terminal.  Pictures:
>
> http://wiki.keithl.com/Gnome3rendering
>
> Last night I tried using ancient xterm instead; xterm
> renders the characters properly, presumably using an
> entirely different rendering chain than gnome-terminal.
>
> I also learned that Gnome2 rendered characters with Pango
> in the Gnome ToolKit, and that Gnome3 renders characters
> with Harfbuzz.  There is still a library of Pango "stubs",
> but those use Harfbuzz calls for the actual rendering.
>
> I don't have time to find and fix the problem right now
> (my object-oriented coding skills are approximately zero),
> but Harfbuzz bugs might explain the inferior behavior.
>
> Perhaps there is a Harfbuzz expert reading this, who can
> do some A/B tests and achieve fame and glory by fixing
> this problem.  If I fix it, I'll break something else.
>

ehhhh. Maybe not? On slackware /usr/bin/xterm has links to harfbuzz as well
$ ldd /usr/bin/xterm
       linux-vdso.so.1 (0x00007ffd97304000)
       libm.so.6 => /lib64/libm.so.6 (0x00007f8585ac7000)
       libXft.so.2 => /usr/lib64/libXft.so.2 (0x00007f8585aaf000)
       libfontconfig.so.1 => /usr/lib64/libfontconfig.so.1
(0x00007f8585a69000)
       libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x00007f85859ad000)
       libXext.so.6 => /usr/lib64/libXext.so.6 (0x00007f8585999000)
       libXaw.so.7 => /usr/lib64/libXaw.so.7 (0x00007f8585726000)
       libXmu.so.6 => /usr/lib64/libXmu.so.6 (0x00007f8585707000)
       libXinerama.so.1 => /usr/lib64/libXinerama.so.1 (0x00007f8585504000)
       libXpm.so.4 => /usr/lib64/libXpm.so.4 (0x00007f85854f0000)
       libICE.so.6 => /usr/lib64/libICE.so.6 (0x00007f85854d2000)
       libXt.so.6 => /usr/lib64/libXt.so.6 (0x00007f8585468000)
       libX11.so.6 => /usr/lib64/libX11.so.6 (0x00007f858532a000)
       libutempter.so.0 => /usr/lib64/libutempter.so.0 (0x00007f8585125000)
       libtinfo.so.6 => /lib64/libtinfo.so.6 (0x00007f85850f6000)
       libc.so.6 => /lib64/libc.so.6 (0x00007f8584f11000)
       /lib64/ld-linux-x86-64.so.2 (0x00007f8585c64000)
       libXrender.so.1 => /usr/lib64/libXrender.so.1 (0x00007f8584d07000)
       libexpat.so.1 => /usr/lib64/libexpat.so.1 (0x00007f8584cda000)
       libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f8584cd1000)
       libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f8584cad000)
       libbz2.so.1 => /lib64/libbz2.so.1 (0x00007f8584c9a000)
       libpng16.so.16 => /usr/lib64/libpng16.so.16 (0x00007f8584c65000)
       libz.so.1 => /lib64/libz.so.1 (0x00007f8584a4e000)
       libharfbuzz.so.0 => /usr/lib64/libharfbuzz.so.0 (0x00007f858494a000)
       libSM.so.6 => /usr/lib64/libSM.so.6 (0x00007f858493d000)
       libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x00007f8584914000)
       libdl.so.2 => /lib64/libdl.so.2 (0x00007f858490f000)
       libglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0 (0x00007f85847eb000)
       libgraphite2.so.3 => /usr/lib64/libgraphite2.so.3
(0x00007f85847c4000)
       libXau.so.6 => /usr/lib64/libXau.so.6 (0x00007f85847bd000)
       libXdmcp.so.6 => /usr/lib64/libXdmcp.so.6 (0x00007f85847b5000)
       libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f8584742000)

So is the bug in harfbuzz, or the implmentation of harfbuzz? You said you
had a script that prints data characters so I could attempt to reproduce
it, but all my monitors are larger than 1080p. One laptop might be 768, but
still, but the raw pixel counts on these things will make everything look
very different.


>
> ESR's Law: Many eyes make all bugs shallow.
> KHL's Corrollary: Many programmers make all bugs.
>
> Keith
>
> --
> Keith Lofstrom          keithl at keithl.com
> _______________________________________________
> PLUG mailing list
> PLUG at pdxlinux.org
> http://lists.pdxlinux.org/mailman/listinfo/plug
>



More information about the PLUG mailing list