Fonts under the X windowing system

The base windowing system used by Linux, and most UNIX operating systems is called X; the most prevalent version nowadays being X11, Release 6, usually abbreviated as X11R6. Linux uses XFree86 [13], an open-source implementation of X. The material here on using fonts under X, is derived from various sources on the Web, though the information in some of these is now somewhat outdated: (a) Nelson Beebe's article on fonts in the X Window System [14] is a quick introduction, (b) the XFree86 Font De-uglification HOWTO [15] has lots of useful information on how to install fonts under X and make the best use of them, and, (c) Markus Kuhn's writeup on Unicode fonts and tools for X11 [16] describes Unicode extensions to the usual X Window bitmap fonts.

The built-in assumption for the X11 font system is that each glyph in a font corresponds to a unique character in the set. This does not work for Indian languages where the sequence of characters encoded in a Unicode string first have to be converted to a sequence of glyphs, before they can be displayed. The shape of each glyph depends not only on the principal character that it represents, but also on the surrounding characters, e.g., the ``matras'' and conjuncts used in most Indian languages. Special libraries like Pango [17] have to be used for Indian scripts. While it would be best to improve the X font mechanism, that task is well outside the scope of this project.

Till recently, XFree86 did not even support TrueType fonts, and several Linux vendors had developed font servers like xfs built around the FreeType font engine [18]. While XFree86 versions from 4.0 (?) onwards have directly incorporated FreeType, Redhat 8.0 and higher versions still use xfs. The process of installing fonts under X differs slightly, depending on whether a font server is in use, or not. Another complication is introduced by the fact that most newer KDE and GNOME programs obtain fonts from a new standard called fontconfig (also going by the name of Xft). Thus, the best bet is to make consistent changes to all three configuration files: for the X server, for the xfs font server, and for fontconfig (Xft). First, we will cover steps common to all three categories, and then go to the specific for each. If you are using other font servers, e.g., xfstt, the font de-uglification HOWTO [15] can show you how to install fonts there.

To find out whether your system is using a font server, type,


  ps -aux | grep xfs
If you are running the xfs font server, this will show the process. To date, Redhat runs xfs in all versions above 8.0.

Subsections
Gora Mohanty 2004-07-24