Linux,  Uncategorized

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!