4

I did the the Upgrade f25 → f26 and was surprised by a change of the font rendering to the worse. I use the KDE spin and mostly KDE programs but some GTK programs as well.

The following is the change in GVim (GTK) with unchanged settings using “Droid Sans Mono 10” as the editor font. It is enhanced without interpolation to 4× in order to make it easier to spot. Especially the “m” and “g” are affected.

enter image description here

f25 on the top, f26 on the bottom.

In Konsole (KDE/Qt), a similar regression has happened:

enter image description here

Other fonts are affected as well, this is Thunderbird (GTK):

enter image description here

I am not exactly sure what has changed implicitly by the upgrade. It looks like the hinting got worse. How can I get the fonts back to the appearance that I had before?

Update

I have created a file /etc/profile.d/freetype2.sh with contents:

export FREETYPE_PROPERTIES="truetype:interpreter-version=35"

However, this has not changed anything after a full reboot, it still appears in the new version, which I perceive as blurry.

enter image description here

2 Answers2

3

Freetype 2.7 introduced a new rendering mode and it is used by default (more here https://www.freetype.org/freetype2/docs/subpixel-hinting.html). To revert it add export FREETYPE_PROPERTIES="truetype:interpreter-version=35" to /etc/profile.d/freetype2.sh.

catemperor
  • 1,019
  • 1
    I have just tried that, but that did not seem to have changed anything, as described in the update to my question. So perhaps Fedora has not compiled version 35 but only 40? This way one cannot change it? – Martin Ueding Sep 14 '17 at 07:30
  • 1
    @MartinUeding, please check if the env. variable is actually loaded env | grep FREETYPE_PROPERTIES – catemperor Sep 14 '17 at 17:06
  • I have tried a different user account on my system, there the variable gets loaded. At least in GVim, the font looks like v35. In Konsole it looks like v40. On my main account, the environment variable is not loaded. So this might be the issue. Both sessions are KDE. Where could this variable be unloaded or skipped? – Martin Ueding Sep 15 '17 at 09:21
  • Look here for how to trace the environment changes: https://unix.stackexchange.com/questions/813/how-to-determine-where-an-environment-variable-came-from – catemperor Sep 15 '17 at 18:03
1

I have solved this by adding the following lines in /etc/fonts/local.conf:

<match target="font">
  <edit mode="assign" name="hintstyle">
    <const>hintfull</const>
  </edit>
</match>

After logging out and logging back in, both KDE and GTK+ 3 applications use the old Truetype settings.

Stephen Kitt
  • 434,908