8. Legalities
One of the most annoying sets of problems I have had to deal with
is the abysmal default fonts and font settings of X (I'm talking
specifically about XFree86, other versions of X may be better.) Many
programs use fixed width default fonts when a variable width font
would be more appropriate. Other programs use fonts that are
ridiculously tiny and unreadable. The
fonts that are bundled with XFree86 are barely adequate for the job.
It does come with a halfway decent courier font, but its Times and
Helvetica fonts are simple bitmap fonts that pixelize when they are
scaled. Yuck!
This HOW-TO attempts to show how to adjust various font settings,
install new fonts, and do other things that will 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, by adding
new fonts, by installing the TrueType font server xfstt, and by
using a feature in the K Desktop Environment 1.1 that automagically
adjusts font settings in many applications, including non-KDE apps
to set their fonts and colors to match KDE's style settings.
Comments, corrections, additions and critiques are always welcome.
You can reach me at [EMAIL PROTECTED].
- 0.1: Feb. 21, 1999: First release.
- 0.11: Feb. 27, 1999: Added copyright info to protect my butt.
The first place to look when seeking to cure font problems is the
XF86Config file.
(/usr/X11/lib/X11/XF86Config or /etc/X11/XF86Config
are the usual locations.) If you haven't guessed already, the most
important part of this file relating to fonts is the
FontPath. Before we get into that, this would be a good
time to check the other parts of your X configuration. Bad monitor
settings can be even more of a headache than bad fonts, so make sure
your refresh rate is as high as your monitor can handle (85 Hz is
great, 75 Hz is OK, 60 Hz is painful.)
Use your favorite text editor and edit XF86Config. Near
the top of the file, you should see something like this:
FontPath "/usr/X11R6/lib/X11/fonts/misc/"
FontPath "/usr/X11R6/lib/X11/fonts/Type1/"
FontPath "/usr/X11R6/lib/X11/fonts/Speedo/"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/"
The FontPath tells X where to find the fonts it uses
to render text on your display. Order is important -- when an X
application asks X to render some text, the X server usually has
some leeway to choose the font that is used. The X server then
goes through the FontPath and grabs the first font it
sees that matches the X client's criteria, and then renders.
The default FontPath typically puts 75dpi fonts before the 100dpi
fonts. If you have a high resolution display, this means very
tiny fonts. The first tweak you'll use is to switch the 75dpi &
100dpi FontPath lines.
FontPath "/usr/X11R6/lib/X11/fonts/misc/"
FontPath "/usr/X11R6/lib/X11/fonts/Type1/"
FontPath "/usr/X11R6/lib/X11/fonts/Speedo/"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/"
Next, specify that you prefer to use unscaled bitmap fonts. If
you've ever used Netscape or any other program that displays
titles using big fonts, you'll notice that those fonts are
pixelized. This is very ugly and needs to be fixed. So add
:unscaled to the ends of the misc, 100dpi & 75dpi fonts.
You can even use both unscaled and scaled fonts if you want, just
put the unscaled FontPath lines first to tell X you prefer
unscaled fonts if possible.
FontPath "/usr/X11R6/lib/X11/fonts/misc:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/Type1"
FontPath "/usr/X11R6/lib/X11/fonts/Speedo"
FontPath "/usr/X11R6/lib/X11/fonts/misc"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi"
After making these changes, restart X. Doesn't the desktop look
better already?
The next thing you need to do is adjust the command line options for
the X server. You'll want to use the -dpi switch which
specifies the display resolution in dots per inch. As a lot of
systems use high resolution displays these days, chances are they'll
be working at 100 dpi.
If you start X from the console command prompt, type
startx -dpi 100.
If you use xdm for graphical logins, you'll want to edit your
/usr/X11/lib/X11/xdm/Xservers file, which will have the command
line for the Xserver in it. Mine has the line
:0 local /usr/X11R6/bin/X -dpi 100 -gamma 1.6
More information is in the X and Xserver man pages.
Because the boys at Redmond are very concerned with the appearance
of their software (as opposed to the internal workings ;) they
built TrueType font support into Windows. Windows 95 and nearly
every other variety of Windows comes with Arial, Times New Roman, and
Courier New, which are roughly equivalant to Helvetica, Times and
Courier. TrueType fonts are scalable, so they look good in large
sizes, and they are well hinted, so they are readable at small sizes.
Many windows applications come with dozens of TrueType fonts. Don't
microwave your Windows CD yet, you'll want to get the fonts first.
Unfortunately, XFree86 does not come with built in TrueType
support, so you'll have to add it yourself. The easiest way of
doing this is with xfstt, a free TrueType font server.
xfstt is very easy to install. First, you'll want to download
the tarball from the web. The most current version is at
http://metalab.unc.edu/pub/Linux/X11/fonts/Xfstt-0.9.10.tgz
Once you have the tarball, untar it.
tar -zxvf Xfstt-0.9.10.tgz
Then build it and install it. Read the INSTALL file for quick
instructions, but it's a no brainer. make; make
install is all you have to do. Once that's done, copy
the TrueType fonts you've managed to get from various sources
to /usr/ttfonts, and you're ready to go. Start
xfstt by typing
xfstt --sync # updates xfstt's font database
xfstt & # runs xfstt in the background.
Then type
xset +fp unix/:7100 # tells X about xfstt.
or add
FontPath "unix/:7100"
to your XF86Config to tell X about the font service.
If your TrueType fonts appear to be very tiny, the following
commands help.
Add the -dpi switch to your X server command line
(see section 3 to do this.)
Use the --res switch to tell xfstt to increase the
default resolution. Use the following command line.
xfstt --res 120
KDE is one of the best things that have happened to Linux and X in a
long time. It provides a consistent user interface that goes a long
way towards making Linux accessable to the average non-geek. More
information about KDE can be found at
http://www.kde.org/. So why am I singing it's praises here?
This is because KDE 1.1 has a new feature that will make the fonts
& colors in your programs, including non-KDE applications consistent
with KDE's current style.
This is very easy. Simply start up the KDE Control Center, go to
Desktop, and go to Style inside Desktop. In there, there will be
a toggle switch labled "Apply fonts and colors to non-KDE apps".
Turn it on, click OK, and your done! The next time you start up
many X applications, they will use the same colors and fonts that
your KDE applications do. Some people may like this feature
better than others, but if you don't like it you can always turn
it off.
Netscape Communicator is particularly susceptible to font
problems. If you're using the default FontPath, your fonts will
be very tiny and very ugly. The first thing you'll want to do is
fix your XF86Config FontPath (see section 2.) Using 100dpi fonts
improves readability immensly. You'll also want check your font
settings under Edit/Preferences, under Appearance/Fonts. To get
rid of bitmap font pixelization, turn off the option "Allow
Scaling" on the font selection.
If you have xfstt, Netscape is perfectly capable of using TrueType
fonts. However, it doesn't handle xfstt's quirkiness very
gracefully. In Edit/Preferences, you can specify TrueType fonts
as the variable and fixed width fonts, however Netscape will not
remember the size you've picked after you closed it. If you
haven't used the -dpi switch when starting the X server
or used the --res switch in xfstt, you'll get very tiny
fonts. Once I applied these two fixes, TrueType fonts work great.
Coming soon.
Coming soon.
Created by Doug Holland
Email: [EMAIL PROTECTED]
WWW: http://www.frii.com/~meldroc
Thanks go to:
- Hilary, my girlfriend, who endured my long hours of geeking
out in front of the computer and for being the best friend I
could ever have.
- 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.
- Microsoft and Apple: for providing the fonts that adorn my
desktop.
Copyright © 1999 by Doug Holland.
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.
5144 hits on this page.