Fonts on Linux: A Rant
By Jeremy Zawodny
June 6, 2003
Have you ever noticed what a royal pain in the as* it is to get fonts working on Linux that do not look like complete crap? On Windows it's a non-issue. On Mac OS X it's all quite amazing out of the box. But for some reason, having the X Window System [ http://www.x.org/ ] on your desktop means that fonts must suck.
Here's a great example--a web browser. I want web pages to look decent on my Linux box. It's not asking a lot, is it? They don't have to look exactly as the "designer" intended [ http://www.jwz.org/gruntle/design.html ], just nice. I have all high-resolution LCD displays at home. I run relatively modern graphics cards (or chipsets in the case of the notebooks) and nearly the latest release of X. Yet it's still a complete mystery to me.
Let's start with the latest release of the Mozilla Firebird [ http://www.mozilla.org/projects/firebird/ ] browser (not the database [ http://firebird.sourceforge.net/ ]). I installed it recently on my notebook (and IBM ThinkPad T21 running the latest Knoppix [ http://www.knoppix.net/ ], which is based on Debian [ http://www.debian.org/ ]). Go ahead, click the little thumbnail image to see what I see on my screen when reading my blog with Firebird.
Notice the jagged fonts? No smooth edges here. No anti-aliasing.
I spent some time futzing around with the fonts to figure out what's wrong. And I can't figure it out. Nothing I did resulted in a dramatic improvement of the display--not that I claim to have tried everything. Though I do claim that I shouldn't have to do anything. Anyway, we'll come back to that.
Let's now look at the latest version of Mozilla [ http://www.mozilla.org/ ] on the same machine (the IBM ThinkPad T21 running the latest Knoppix), with the same blog screen, at the same resolution and window size. Go ahead, click the little thumbnail image to see what I see on my screen when reading my blog with Mozilla.
Nice, isn't it? The fonts are crisp and clear. There are no jagged edges. On my LCD screen it looks very, very good.
Digging Deeper: Firebird
Okay, here's where it gets really mysterious. Let's think briefly about what's going on... I'm using two browsers that use the same underlying rendering engine (Mozilla's Gecko [ http://www.mozilla.org/projects/distros.html ]), yet they're showing me radically different things.
"Ah..." you say, "Firebird must simply have different default fonts configured. That's what I thought. So I pulled up the little font configuration window (click the image on the left to see what I saw).
Notice that funny looking font names? My default serif font is something called adobe-times-iso8859-1. The name's a big long-winded. One would that that Times is sufficient, but it's not a crisis.
The display resolution setting didn't help either. I'm not sure why the application needs to know what my display resolution is. Furthermore, I'm not sure why it doesn't simply ask the system. It seems to, by default, so I'm not sure why I'm being offered a choice. Is there a reason that I'd want to run one application at 72dpi while the others all run at 100dpi? I don't think I've ever needed to do that.
Unfortunately, I found no check box marked "Use crappy fonts only" that I could toggle. So I turned my attention back to Mozilla.
Digging Deeper: Mozilla
Mozilla, of course, also has a font configuration tool. So I launched it to see what it had to offer (click the image on the left to see what I saw).
Hmm. It looks remarkably similar. The only real difference I noticed is that the font names were different in two important ways. First, the names look like they were designed to be read by humans--like you'd see on a Mac: Courier, Times, Century Schoolbook, and so on. Secondly, the font names didn't seem to be related to those I could choose from in Firebird.
From this I concluded that the two applications were using different sets of fonts, one set crappy and one set nice.
Konqueror: Sanity Check
Not sure what to do next, I tried one last sanity check. I launched Konqueror [ http://www.konqueror.org/ ], the browser built by the KDE folks. Guess what. It muddied the waters even more!
Konqueror makes my blog look crappy too, just like Firebird. However, when I view the font choices, they match those offered by Mozilla. I didn't bother with screen shots this time. It's too depressing.
The Burning Question
Having seen what I've seen so far, I'm really left with one burning question: What the hell is going on with my fonts?!?!?
Why do these two applications use completely different fonts? And why does a third, using the same as the second, render things more like the first? I cannot figure out how to get Firebird to use the set of fonts that Mozilla is using. I can not figure out how to get Konqueror to render like Mozilla even though it seems to be using the same fonts. Hell, I'm not even sure where the applications look to figure out what fonts are available.
On any other operating system, I'd expect all apps to have access to all fonts. Fonts are one of those "core services" that the GUI desktop framework ought to provide--to all applications.
Am I smoking something here? Am I expecting too much?
Can anyone explain what I've done wrong? I have to believe that it's something I did. What sort of self-respecting Open Source hackers would do this?
I give up.
Linux is not ready for the desktop.
Why not? Fonts, that's why.