Blog of Raivo Laanemets

Software development and personal stories.

Chrome 59/60+ font rendering in Linux

On 2017-09-03

Chrome 59 on Linux renders fonts differently than the rest of the system. This happens when you use subpixel hinting on your system. Chrome 59+ seems to ignore your settings. It can be fixed by tweaking the FreeType configuration. FreeType is a font rendering system used by most Linux distributions.

The issue can be fixed by setting an environment variable before launching Chrome:

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

I'm using an Application Launcher in MATE desktop to start Chrome. To automatically set the environment variable, I created a wrapper script chrome-wrapper.sh in my home directory and edited the launcher settings to invoke the wrapper script instead of google-chrome directly. The full contents of the script:

#!/usr/bin/env bash
export FREETYPE_PROPERTIES="truetype:interpreter-version=35"
/opt/google/chrome/google-chrome &

With medium or full hinting this brings back skinny font rendering in the browser. Without the fix, the text looks similar to text on Windows 10.

More information:

Update 2018-11-04

It seems like the font rendering has been broken in versions 69/70 too. The fix seems to be similar (and same works for Chromium, see comments).

Update 2019-01-16

The same workaround is necessary in some Electron (based on Chromium) apps, for example, in the Visual Studio Code text editor.

Comments

No comments have been added so far.

Loading comments ...