Getting nice anti-aliased fonts in Debian

Since about a year I’m using Debian on an Apple Powerbook G4 PowerPC laptop. Mandriva does not have an active PowerPC port anymore, I don’t really like Ubuntu (and their PowerPC port does not get the same priority anymore as the x86 ports), so Debian was an obvious choice for me, and I have never regretted this.

One of the things that annoyed me however, was the default looks of fonts. Some fonts (especially in Firefox) did not look anti-aliased, while those that were, did not look as nice as I’m used to from Mandriva. At that time, I did not found anything better than compiling a more recent version of freetype (just standard ./configure, make, make install, no patches for enabling any patented stuff) and replacing the contents of /etc/fonts/conf.d by the one from a Mandriva system. And installing the Liberation fonts from Red Hat’s tarball.

Today, things are a bit easier: a Liberation package is now available in the Debian repository as are up to date packages of Freetype. And I learned a bit more about Debian’s Freetype configuration, so I was able to tweak the default settings now, instead of just replacing everything by Mandriva’s.

Here’s a quick howto. I assume you are using Debian Lenny, and have the unstable/sid repositories added to apt’s sources.list (use apt pinning so that testing is preferred over unstable).

  • Make sure you have the basic font packages installed: apt-get install ttf-dejavu ttf-liberation (the latter currently only exists in unstable)
  • Make sure you have a recent version of freetype installed. Run apt-cache policy libfreetype6 to see which versions are currently available in Debian. I installed version 2.3.6 from Unstable: apt-get install -t unstable libfreetype6
  • Install a recent fontconfig version. Run apt-cache policy fontconfig to see which versions are available. I installed version 2.6.0 from unstable: apt-get install -t unstable fontconfig libfontconfig1 fontconfig-config
  • Go the the directory /etc/fonts/conf.d. You’ll see that it contains all symbolic links to /etc/fonts.conf.avail which contains some more interesting configuration files which we’ll activate by adding a symbolic link. Especially I want to use the autohinter, enable RGB subpixel hinting and don’t want to use bitmap fonts:
    ln -s ../conf.avail/10-autohint.conf
    ln -s ../conf.avail/10-sub-pixel-rgb.conf
    ln -s ../conf.avail/70-no-bitmaps.conf
  • Now in GNOME go to the menu System – Preferences – Appearance and go to the Fonts tab and play a bit with the settings until you are happy with them. I used Deja Vu Sans Book 9pt for desktop and application fonts and Liberation Mono 9pt as fixed width font. Rendering is set to subpixel smoothing, and in the details panel I chose suppixel (LCD) smoothing, full hinting and RGB subpixel order. If you are using KDE 3, you can make similar settings in KDE’s Control Center under Look & Feel – Fonts (make sure anti-aliasing is enabled and click on the Configure button).
  • In Firefox/Iceweasel 3 go to Edit – Preferences – Content and click on the Advanced button in the Fonts & Colors section. Configure the fonts you like best (I chose Liberation fonts, and set sans-serif by default) and play a bit with the default and minimum font size (I chose 15 pt as default size, and 9 pt as minimum).

Enjoy your nice fonts!

Liberation fonts

I quickly redid some of the font settings in the CSS file of this blog. This blog is now using the Liberation fonts!

Packages for these new True Type Fonts are available for all kind of OSes. Those using Mandriva Cooker, can install the fonts-ttf-liberation package with their favourite package manager (urpmi, rpmdrake, smart). Mandriva 2007.1 Spring users, can download this backported RPM package (SRPM available too).

I also changed the font size used in the blog a bit. The template was often using small, x-small and even xx-small fonts, which was a bit too small for my taste. Now it should all be a bit more readable I hope. Let me know what you think of it!