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").
The current official version of this HOWTO may be found at the Linux Documentation Project.
v3.1: This is just some small, minor updates. Include link to http://www.plig.org/xwinman/ as a good resource for shopping Window Managers. Add link for fluxbox, a Window Manager with Tabbed windows. And add a brief section on improving network performance. Verify links all work.
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.
If you have questions or comments about this document, please feel free to email me, Hal Burgiss at <hal@foobox.net>. 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.
I have assumed maintainership of this document because it was abandoned, and I had wanted to offer a suggested change. Well, to make a long story short, this led to a major re-write. You can help make this a better document by correcting inaccuracies, clarifying the unclear, and suggesting improvements. There is much about this topic I may not know, or not have explained well. Your help will improve this document and help other users. This document needs your help!
Thanks to the XFree86 development team for their efforts in providing a robust and flexible GUI. And to the whole GNU/Linux and Open Source community for making it all possible.
Also, the original author, Ray Brigleb.
Various users on comp.os.linux.x that have helped in one way or another, whether they know it or not.
Lastly, http://google.com/linux, who saved me much time with their incredible repository of information. Use it to answer questions not answered here!
Copyright © 2002, Hal Burgiss.
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!
Some of the terms mentioned in this document are trade names. Unless otherwise stated, all trademarks are property of their respective owners.
"X Window System" is a trademark of the X Consortium, Inc [now the OpenGroup?].
"XFree86" is a trademark of The XFree86 Project, Inc.
"Linux" is a Registered Trademark of Linus Torvalds.
The information and examples given here are for illustrative purposes. Use at your own risk. Every attempt has been made to insure that the content of this document was accurate when written. If you find inaccuracies, please send me clarifications.
References to any particular company, product or brand name should not be construed as an endorsement.