5. Installing and Configuring the X Window System
This chapter helps you install, configure, and use the X Window System
(often known simply as X). Once X is up and running, you can choose how
to start X. This chapter explains your options and also gives some tips on
optimizing the performance of X.
5.1 What is X?
X is the standard graphical user interface for Linux. Like other graphical
user interfaces such as Microsoft Windows and Mac OS, X lets you interact
with programs by using a mouse (or other pointing device) to point and
click, providing a simple means of communicating with your computer.
Originally implemented as a collaborative effort of Digital Equipment
Corporation and Massachusetts Institute of Technology, X was first released
in 1987. Subsequently, the X Consortium, Inc. became responsible for the
continued development and publication of X.
Despite its age, X is a remarkable and very modern software system: a cross-
platform, network-oriented graphical user interface. It runs on a wide variety
of platforms, including essentially every variety of Unix. X Clients are
available for use, for example, under Windows 3.x, 9x, and NT. The
sophisticated networking capabilities of X let you run a program on one
computer while viewing the graphical output on another computer,
connected to the first via a network. With the advent of the Internet, which
interconnected a sizable fraction of the computers on the planet, X achieved
a new height of importance and power.
Most Linux users run XFree86, a freely available software system
compatible with X. XFree86 was developed by the XFree86 software team,
which began work in 1992. In 1994, The XFree86 Project assumed
responsibility for ongoing research and development of XFree86.
5.2 Installing X
Getting a proper X Window System up and running used to be a real
challenge on Linux, almost a rite of passage. Today, device drivers are
available for a much wider array of hardware, and configuration tools to
assist in the setup process have greatly improved. While still tricky at times -
especially with unusual hardware - X setup and configuration is no longer
the daunting process it once was, and should be relatively easy.
You'll go through two stages before you have X successfully running. The
first stage involves installing the needed programs that enable X to run.
These can be grouped into several categories:
Basic XFree86 program
This stage is very straightforward and can even be done as part of the basic
installation process, if you select the relevant X packages during that step.
In the second stage you configure X to run properly on your system. This is
a matter of identifying an X server compatible with your graphics card, and
tuning the server for your graphics card. If you have a common card and all
the documentation for it, this second stage will be relatively simple. Missing
information makes the process harder, but not impossible.
As shown in Appendix C, The Debian Package Management Utilities, X
consists of many packages.
Once you've installed the necessary packages, you're ready to configure X.
WARNING: You should exercise due care while configuring X to run on
your system. If you incorrectly or incompletely configure X, your system
can be permanently damaged. In particular, if you configure your monitor
for a refresh rate that exceeds its capacity, you can damage the monitor.
Older fixed-frequency monitors are particularly susceptible to such damage.
The author and publisher have taken pains to make this chapter clear and
accurate, but their efforts don't ensure that the procedure presented in this
chapter will work correctly with your hardware. Consequently, the author
and publisher cannot be held responsible for damages resulting from a faulty
installation or configuration of X.
If you have a card or monitor of unknown manufacture or model, and feel
that you must guess, at least start with a narrow range of middle values, and
gradually expand that range to see if you can find a value that works. Don't
let a monitor that displays an unstable or garbled image run any longer than
the time it takes you to cut power to the monitor
5.3 Configuring X
When you install the xserver-common package, xf86config is
automatically launched. However, you can launch the program any time you
like. To do so, log in as root and type the command:
Figure 5.1 shows the beginning of the xf86config dialog. As you can
see, xf86config is a text-mode program; it does not support use of the
mouse and it presents its questions teletype-style, using black-and-white
In working with xf86config, you may find that your Backspace key
doesn't work as expected. If so, use Ctrl-Backspace instead.
Figure 5.1: The beginning of the xf86config dialog
Next, xf86config asks you to specify the type of mouse attached to your
system, as shown in Figure 5.2. Type the number associated with your
choice, and press Enter. For non-mouse pointing devices found on many
laptops, you should most likely select PS/2 Mouse.
Figure 5.2: Specifying the mouse type
If you selected the Logitech MouseMan mouse, you should enable its third
button by responding y to the question asking whether ChordMiddle should
be enabled, as shown in Figure 5.3.
Figure 5.3: Specifying the ChordMiddle option
If your mouse has only two buttons, you should enable emulation of a three-
button mouse by responding y to the question asking about
Emulate3Buttons, as shown in Figure 5.4. If you enable this option you can
simultaneously press both the buttons of your mouse to emulate pressing the
Figure 5.4: Specifying emulation of a three-button mouse
Next, you must specify the device file associated with the mouse, as shown
in Figure 5.5. The install program should have associated your system's
mouse with the device /dev/mouse, which is the default choice. Simply press
Enter to continue.
Figure 5.5: Specifying the mouse device
As described by the output shown in Figure 5.6, X provides special support
for using extended keyboards. If you use a special keyboard layout to
support national characters, you can type y to use xkb, which simplifies
changing the keyboard map. After making your choice, press Enter to
Figure 5.6: Specifying use of the keyboard extension
As shown in Figure 5.7, xkb supports a variety of keyboard encodings, or
keymaps. Type the number that corresponds to the type of keyboard attached
to your system, and press Enter.
Figure 5.7: Specifying the keymap
Next, as shown in Figure 5.8, you must specify two characteristics of your
system's monitor: its vertical refresh rate (VertRefresh) and horizontal sync
rate (HorizSync). You can find these values by:
Consulting your monitor's documentation
Consulting the file /usr/doc/xserver-common/Monitors.gz, which may
list your monitor. Use gunzip to uncompress the file and ae or
another text editor to view it.
Viewing the monitor's manufacturer's web support page
Posting a question to the newsgroup comp.os.linux.setup
Contacting the monitor manufacturer's technical support group and
requesting the information