Ugly, Jagged, Fonts on Linux - How to Fix

Rendering fonts, especially on modern LCD screens, is a non-trivial problem. I'm not an expert in computer graphics, biophysics or UI design. However, what I do know is that most out-of-the-box Linux installs result in a visual experience that is unacceptable from my personal point of view.

Sure, it's possible to use the system tools (Appearance Preferences in Gnome 2 for example, now it's gnome-tweak-tool in Gnome 3) to set your default fonts and default sizes, and to tweak how they are rendered (hinting, smoothing, sub-pixel smoothing and presumably other sorts of manipulations). What I quickly discovered was that it was akin to a game of whack-a-mole. No sooner would I get one part of my screen free of jaggies, ugly color hinting, or letters that are barely recognizable, than these undesirable effects would show up elsewhere. 

There is one more knob that we have available to us and that is the DPI (dots per inch) of the overall display. This often defaults to 96 on Linux, particularly if you are using Gnome as your UI. Without getting into what changing DPI does and why, suffice it to say that this is yet another knob that allows us to tweak the display appearance. 

Sadly, the whack-a-mole trap applies to all of these "fixes". Due to things like aliasing, small changes to some setting like font size or DPI, can result in large changes in whether a particular part of your screen (icon text, menu bar, windows titles, system dialogs) look pleasing or ugly/intolerable. There are clearly non-linear effects at work here, as changing the font size by one point, or tweaking the DPI by a small number can have impressively large effects on overall screen appearance.

So what is the answer? Well your mileage may vary, but I found that the MS "Vista" fonts which are sometimes known as the "C" fonts - (Calibri, Cambria, Consola), and sometimes known as the "Powerpoint Viewer" fonts, are the way out of this otherwise difficult dilemma. These fonts have been designed (how? I have no idea!) to render nicely on LCD screens at small font sizes across a wide range of settings and use cases. In short, they just work!

I found that by installing them on my system, and making them the default choice both as system fonts via the Gnome Appearance Settings but also in the browser, the display starts to look very reasonable indeed. In fact it looks quite good. In my system, I default to 10 point Cambria, 112 DPI and no colored sub-pixel smoothing because I absolutely hate to see the colored halos around the characters. 

The license for these fonts say that you can "display and print content from a device running a Microsoft Windows operating system". My system is dual-boot with Windows 7 as the the co-resident OS so I feel like I'm in compliance there.

How does one obtain and install these fonts?

The basic idea is to download the Powerpoint viewer application from MS, and then running cabextract to extract the needed fonts, then place them in ~/.fonts and then run fc-cache. 

Best just to go to the supplied links, grab the script and run it!

The instructions for how to do that are found here, here and here.

Addendum: I think the infinality font enhancing/optimizing libraries really help.  Instructions for their use can be found here.

Post a Comment

Popular posts from this blog

Hit failing alternator with a hammer to confirm diagnosis of failing alternator due to bad brushes

alternatives --install gets stuck: failed to read link: No such file or directory

Fedora 23 Calendar PopDown in DarkGlass Gnome Shell Theme is cut off