Strictly speaking, it is not absolutely necessary to set up font servers
to use TrueType fonts with X servers. If you wish to use
static files instead of a font server, please see the instructions for
setting up TrueType fonts for ghostscript.
At this point I assume you have a working /etc/X11/XF86Config
file that loads explicitly specifies each directory in the FontPath.
We will convert it to use the xfs Font Server.
Install XFS
If you have not already done so, install main/binary-*/x11/xfs_*.deb.
Configure XFS
Edit /etc/X11/xfs/config and change the catalogue to
contain the contents of your FontList. You may also wish to
change the default-resolutions value.
/etc/X11/xfs/config
# paths to search for fonts
catalogue =
/usr/X11R6/lib/X11/fonts/100dpi/:unscaled,
/usr/X11R6/lib/X11/fonts/75dpi/:unscaled,
/usr/X11R6/lib/X11/fonts/misc/,
/usr/X11R6/lib/X11/fonts/Speedo/,
/usr/X11R6/lib/X11/fonts/Type1/,
/usr/X11R6/lib/X11/fonts/100dpi/,
/usr/X11R6/lib/X11/fonts/75dpi/
# x1,y1,x2,y2,...
default-resolutions = 100,100,75,75
Restart XFS
Restart XFS in the usual Debian manner:
root shell
# /etc/init.d/xfs restart
Verify that XFS is working
Before we change our XF86Config file, we should verify that the xfs
server is working by listing them through the font server:
We're now ready to tell the X server to use the xfs font server.
We keep one static font path as a fallback position in case of a problem
with xfs. (We keep "misc" since it contains fixed, the
default font.)
Restart X with startx, unless you like living life dangerously.
If that's the case, name me the beneficiary of your unusually large life
insurance policy and restart xdm.
Verify that the XFS fonts are visible
Once we have an X session established, we can verify that our server
sees all of the xfs fonts by listing them through the X server.
At this point I assume you have a working xfs font server and wish
to add TrueType support via xfstt.
Install XFSTT
If you have not already done so, install main/binary-*/x11/xfstt_*.deb.
Installing the TrueType Fonts
Copy your TrueType fonts into the /usr/share/fonts/truetype
directory. These files usually have a .ttf extension, and they
should have 0444 permissions.
Restart the XFSTT Font Server
Restart the xfstt server with the force-reload flag
root shell
# /etc/init.d/xfstt force-reload
Verify that XFSTT is working
Before we change our XF86Config file, we should verify that the xfstt
server is working.
Important: the Debian xfstt server listens to
port 7101, not 7100. Also, the default permissions will require you
to run this query as root.
user and root shells
$ fslsfonts -server unix/:7101
_FSTransSocketUNIXConnect: Can't connect: errno = 111
fslsfonts: unable to open server "unix/:7101"
# fslsfonts -server unix/:7101
-ttf-arial black-medium-r-normal-regular-0-0-0-0-p-0-iso8859-1
-ttf-arial mt black-medium-r-normal-regular-0-0-0-0-p-0-iso8859-1
-ttf-arial narrow-bold-i-normal-bold italic-0-0-0-0-p-0-iso8859-1
Change /etc/X11/XF86Config to use xfstt
We're now ready to tell the X server to use the xfstt font server.
We want it to use TrueType fonts in preference to all others.
At this point it should be possible to use a TrueType font in
applications like GIMP, Netscape or StarOffice.
Since most TrueType fonts aren't monospaced you probably don't want
to use one of them with xterm - these programs use monospacing
the size of the largest character cell.
xfstt has the ability to generate multiple font encodings,
provided that the TrueType font contains the necessary glyphs.
To enable fonts other than iso8859-1/unicode-1, you must manually
edit the /etc/init.d/xfstt script:
iso8859-9 (Latin 5 - Latin 1 with Turkish, not Icelandic)
iso8859-10 (Latin 6 - Nordic languages, replaces Latin 4)
koi8-r (Cyrillic)
windows-1250 (Central Europe)
windows-1251 (Cyrillic)
windows-1252
windows-1253 (Greek)
windows-1254
windows-1255
windows-1256
windows-1257
symbol-0
wingding-0
wingreek-0
cp-437 (various IBM code pages)
cp-737
cp-850
cp-851
cp-852
cp-853
cp-855
cp-857
cp-860
cp-861
cp-862
cp-863
cp-864
cp-865
cp-866
cp-869
cp-895
atari-st
unicode-2
The first 128 characters in the iso8859-x encodings is always ASCII.
The windows- fonts embrace and extend iso8859-1 with additional
characters such as "smart quotes." (Since these extensions, such as "smart
quotes" are undefined in iso8859-1, they are usually rendered as
question marks.)
Excellent source for additional information on character set encodings
are at
I used Unix sockets above, but the standard Debian packages also
configure xfs and xfstt to listen to TCP/IP ports 7100 and
7101, respectively. Access to these ports should be controlled
by the trusted-clients field in /etc/X11/xfs/config,
but this option is not implemented in XFree86 3.3.2.3a.
This means that anyone, anywhere, can connect to your font server.
Since xfs (and presumably xfsts) "clone" to support
more users there's a trivial denial-of-service attack against these
systems. It's probably safe to use the font servers on dialup
lines (since you're present to handle problems), but DSL and cable
modem users should use a firewall.