An often heard complaint is the poor default fonts and font settings of X as implemented by many Linux distributions. Some programs use fixed width default fonts when a variable width font would be more appropriate. Other programs use fonts that are so small as to be practically unreadable. Many of the fonts that are bundled with XFree86 are not of the same quality as found on some other platforms. XFree86 does come with a halfway decent courier font, but its Times and Helvetica fonts are simple bitmap fonts that pixelize when scaled. This is changing for the better recently, but a default Linux desktop still often needs some tweaking to get the best fonts possible.
This HOWTO attempts to show how to adjust various font settings, install new fonts, and a few other things that should greatly improve the appearance and readability of fonts on the X Window Desktop. This is done by adjusting the FontPath in the XF86Config file, by adding switches to X server command line in startx or xdm (and variants), by adding new fonts, and by making sure TrueType fonts are installed and available. TrueType does indeed make a huge difference in many applications.
Comments, corrections, additions and critiques are always welcome. You can reach the author at <firstname.lastname@example.org>. Contributions are also welcomed. Especially anyone who really stays current with KDE and/or GNOME issues! (So I guess nobody uses these since the silence is deafening?)
"X" and "XFree86" are (incorrectly) used here interchangably. The overwhelming percentage of Linux users indeed use XFree86.org's X implementation, but there are other implentations as well. The information here probably does not apply to those others in most cases.
Where examples of commands are used, a "#" character is used to denote where typically the command would be run as the root user. A "$" is used where typically a non-root user would be executing the command.
The examples use /usr/local/share/fonts/ttfonts as our TrueType font directory. There is no magic to this location, and could conceivably just as well be in any number of other locations. Some distros may have a default location for TrueType fonts, and you may want to use that instead.
References to "xfs" are to the xfs as packaged by Red Hat (and some other distros) for versions 6.x and later. This differs significantly in some respects from the stock XFree86 xfs.
References to "Netscape" are to the entire suite of programs from Netscape: Communicator, Navigator, Messenger, etc. And for all intents and purposes, font configuration in Mozilla is very similar (but generally looks better!).
'XF86Config' is the X configuration file. This has changed to 'XF86Config-4' for XFree86 v4.x. For the most part, we'll just use 'XF86Config' here.
Also, while some aspects of XFree86 4.x configuration are the same as 3.3.x, there are some significant differences. We'll only highlight the differences. So unless noted otherwise, any comments or examples should apply to both 3.3.x and 4.x versions.
File system layout varies somewhat from distribution to distribution. It is impossible to stay on top of every conceivable variation of who keeps which files where. So take the examples here with a grain of salt if the PATHs don't seem to match your system.
2.04: October 30, 2002. Include info on TrueType "hinting", and enabling in freetype sources (thanks Andreas Oesterhelt!). A few new useful links, and minor cleanups.
If this keeps up, this document will have to be renamed the Font Beautification HOWTO ;-).
2.03: October 17, 2002. Some brief notes on Red Hat 8.0 differences/newness, notably the changes that accompany Xft2. More on the distinction of core X fonts and Xft (and then Xft2).
2.01: October 03, 2002. Update links for obtaining the MS web fonts (TrueType fonts of choice). There are two Sourceforge projects with these fonts available, including. http://sourceforge.net/projects/font-tool/.
Add section to Mozilla configuration to include info on Xft and anti-aliasing.
2.00: September 12, 2002. Wow, MS has taken down their webfonts page :( Not good news. Installing TrueType is a key ingredient to better living through nice fonts.
Major re-organization by moving the font server section to the appendix, since any recent distro is already installing these, or they are not any longer needed.
Some clarifications on gdkxft and font anti-aliasing. Finally, add Aristotle Pagaltzis's perl script for converting fonts.dir to fonts.alias. Include interesting example of using anti-aliased TrueType fonts in xterm. Note that GNOME 2 is out. Fix the usual assorted broken links.
Clarifications on dpi settings, and add tip about unbalanced dpi causing major trouble with fonts.
1.95: February 11, 2002. A few corrections. Removed the section on Fonts in KDE since this has to have changed, and I don't know anything about KDE (does anyone want to help here?). Added a brief section on gdkxft, which adds anti-aliasing support for GTK+ 1.2 applications.
1.9: November 5, 2001. A few new links and some minor catch ups only.
1.8: June 25, 2001: Included a new section on Anti-aliasing and Xft from Danny Tholen <email@example.com>. Many thanks on this not so well documented subject. Also, Sebastiano Vigna's neat little package for downloading and installing MS webfonts: http://freshmeat.net/webFonts4Linux. A few other odds and ends.
1.70: April 18, 2001: Added links for converting Mac TrueType Fonts (thanks to Karl A. Krueger), links to Unicode TrueType fonts (thanks to Tzafrir Cohen for suggestions and URLs), and added a section on anti-aliasing with X 4.0.2 (or greater). Also, included a reference to cabextract, a utility that is now available for extracting Win32 Fonts (among other things) from a Window's "cab" archive.
1.60: March 21, 2001: A few very minor changes. Most notable news is anti-aliasing support now in XFree 4.02 (referenced in the Notes section only). Chinese translation URL added.
The pre-release versions of this document can be found at http://feenix.burgiss.net/ldp/fdu/index.html.
Copyright © 1999 by Doug Holland, 2002 Hal Burgiss.
Unless otherwise stated, Linux HOWTO documents are copyrighted by their respective authors. Linux HOWTO documents may be reproduced and distributed in whole or in part, in any medium physical or electronic, as long as this copyright notice is retained on all copies. Commercial redistribution is allowed and encouraged; however, the author would like to be notified of any such distributions.
All translations, derivative works, or aggregate works incorporating any Linux HOWTO documents must be covered under this copyright notice. That is, you may not produce a derivative work from a HOWTO and impose additional restrictions on its distribution. Exceptions to these rules may be granted under certain conditions; please contact the Linux HOWTO coordinator for more information.
In short, we wish to promote dissemination of this information through as many channels as possible. However, we do wish to retain copyright on the HOWTO documents, and would very much like to be notified of any plans to redistribute the HOWTOs, this one in particular! Web page authors are free to link to this HOWTO without restriction, though the author would appreciate an email informing him of this, just so he can boost his ego by knowing who else reads and links to this document.
Many of the terms mentioned in this document are trade names. Unless otherwise stated, all trademarks are property of their respective owners.
Special thanks go to:
The developers of the XFree86 Project, for all the hard work and time they have given. Also, Juliusz Chroboczek for his work with xfsft, and XFree86 4.x to help bring TrueType to the hungry masses. And Keith Packard for his anti-aliasing, and other work. This is not to slight the many, many other XFree86 volunteers.
Font wizard Kristin Aanestad, whose legwork and insight on much of the xfs, TrueType, Netscape, and especially, the fonts.alias sections are much appreciated. More from Kristin at Some Linux for Beginners on a wide range of topics.
Danny Tholen <firstname.lastname@example.org> is responsible for the nice Xft section, and examples.
The folks at comp.os.linux.x who gave me a hand in figuring all of this out in the first place.
The Linux community in general who made all of this possible in the first place. Especially those who have offered suggestions and comments that help to make this HOWTO a better resource. Keep those cards and letters coming ;-)