
X and the font servers)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.
xfs Font ServerAt 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.
XFS
If you have not already done so, install main/binary-*/x11/xfs_*.deb.
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
XFS
Restart XFS in the usual Debian manner:
root shell
# /etc/init.d/xfs restart
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:
user shell
$ fslsfonts -server unix/:7100 -adobe-courier-bold-i-normal--0-0-0-0-m-0-iso8859-1 -adobe-courier-bold-o-normal--0-0-100-100-m-0-iso8859-1 -adobe-courier-bold-o-normal--0-0-75-75-m-0-iso8859-1 ....
/etc/X11/XF86Config to use xfs
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.)
/etc/X11/XF86Config
Section "Files" FontPath "unix/:7100" FontPath "/usr/X11R6/lib/X11/fonts/misc/" EndSection
X
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.
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.
user shell
$ xlsfonts -adobe-courier-bold-i-normal--0-0-0-0-m-0-iso8859-1 -adobe-courier-bold-o-normal--0-0-100-100-m-0-iso8859-1 -adobe-courier-bold-o-normal--0-0-75-75-m-0-iso8859-1 ....
xfstt Font Server and installing TrueType fontsAt this point I assume you have a working xfs font server and wish to add TrueType support via xfstt.
XFSTT
If you have not already done so, install main/binary-*/x11/xfstt_*.deb.
Copy your TrueType fonts into the /usr/share/fonts/truetype directory. These files usually have a .ttf extension, and they should have 0444 permissions.
XFSTT Font Server
Restart the xfstt server with the force-reload flag
root shell
# /etc/init.d/xfstt force-reload
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
/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.
/etc/X11/XF86Config
Section "Files" FontPath "unix/:7101" FontPath "unix/:7100" FontPath "/usr/X11R6/lib/X11/fonts/misc/" EndSection
XFSTT fonts are visible
Once we have an X session established, we can verify that our server sees all of the TrueType fonts by listing them.
$ xlsfonts | grep ttf -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 ....
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.
If you are using the xfstt font server, it's trivial to install additional TrueType fonts.
/usr/share/fonts/truetype/xfs with /etc/init.d/xfs restartxfstt 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:
/etc/init.d/xfstt
- start-stop-daemon --start --quiet --exec $XFSTT -- \ --port $portno --daemon + start-stop-daemon --start --quiet --exec $XFSTT -- \ --port $portno --encoding iso8859-1,koi8-r,windows-1252,symbol-0 \ --daemon
The recognized encodings in Debian 2.1 are:
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
http://ppewww.ph.gla.ac.uk/%7Eflavell/iso8859/iso8859-pointers.html,http://anubis.dkuug.dk/i18n/ andhttp://czyborra.com/charsets/iso8859.html.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.