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 restart
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:
/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.