Whole document tree
    

Whole document tree

Introduction

1. Introduction

The X Window System is an advanced, graphical computing and network environment that was designed from the ground up as a multi-user system. X was first released in 1984. If you are not familiar with the basic concepts surrounding X and it's related components, you should first read the X Window System Architecture Overview HOWTO, http://linuxdoc.org/HOWTO/XWindow-Overview-HOWTO/index.html, to get an idea of how the various pieces fit together. There is also an attempt to define to various X related terminology in the Appendix, if concepts such as "displays" and "X clients" in this context are confusing to you.

This document will address basic X Window configuration and usage on Linux. We will also look at how X is commonly started in Linux, and how the start up can be configured, and related issues. We will not examine Window Manager (e.g. fvwm), or Desktop Environment (KDE and GNOME) configuration. There are just too many variables there, and the pace of change moves too quickly. Of course, to a large extent the user interacts more directly with these components than the X server itself, so additional reading would be worthwhile. Check your locally installed documentation, and the respective home pages for more information.

Some other important points to remember here:

  • X is a client-server, multi-user system in every respect, and not just a GUI.

  • X is not integrated into the operating system, and rides on top of it, like other servers.

  • X is an open standard, and runs on many platforms.

  • What you actually see on the screen is the result of various components, all working together: operating system, X, Window Manager, and optionally, a desktop environment like GNOME or KDE. These are all "plug and play" components, meaning you can interchange an individual component without touching the other components.

  • Each of the various components has its own configuration. This makes for a very flexible, and potentially very robust, system. It also adds complexity.

The discussion here will be limited to X as implemented by The XFree86 Project, Inc. on Linux. There are other implementations, including commercial ones. XFree86 v4.x has been out for some time now, so we will be assuming that version. Much of the discussion applies to the previous 3.x version as well, but there are some occasional differences.

It is also worth noting that there are conceivably many ways to start X, and to set up a Linux system. We will focus on the common methods found in Linux distributions. Also, vendors may vary on where they put configuration files, and how they name them. Keep this in mind if you see such discrepancies in this document. If this is a problem, your vendor surely has their own documentation. And as always, hopefully the man pages will conform to your installation.

Also, we will look at various configuration files in the following sections. These are all plain text files, and can be edited with your favorite editor. Always make a backup copy before editing important files, in case Murphy pays a visit (e.g. "cp /etc/X11/XF86Config-4 /etc/X11/XF86Config-4.bak").

1.1. New Versions and ChangeLog

The current official version of this HOWTO may be found at the Linux Documentation Project, http://www.linuxdoc.org/HOWTO/XWindow-User-HOWTO.html. Pre-release versions may be periodically posted to http://feenix.burgiss.net/ldp/x-user/.

v3.0: This is a major rewrite with several new sections. Some sections were removed, with the focus more now on just X itself (and not clients like Window Managers). New maintainer too :-)

v2.0: includes corrections from Guus Bosch, Brian J. Miller, and myself, as well as lots of new updates and info.

v1.4: include corrections and additions from Anthony J., and some very good security tips from Tomasz Motylewski.

1.3. Feedback

If you have questions or comments about this document, please feel free to email me, Hal Burgiss at . I welcome any suggestions, corrections, or additions. If you have information you would like to see in future revisions, or you would like to contribute to a future revision, please drop me a note.