There are a few basic concepts and terminologies you should be familiar with. These terms will appear here, in the manual pages, and in other help files and documentation.
The “X server” is the low-level driver software that interacts with your video card and other system hardware, and manages the “display” and the various components attached to the “display” (keyboard, mouse, etc.). And, of course, handles requests from clients as well. There are different X servers for different chipsets.
X Servers are referenced in the form of:
host.domain:display_number.screen_number
An example would look like: my_computer:0.0
If host (and domain) is omitted, localhost is assumed. “Host” can be a remote host. If “screen” is omitted, then “0” (the first screen) is assumed. In it's shortest form, the X server is often represented as just “:0”, which would be the first local “display”. X supports multiple “displays” and multiple “screens”.
“Screen” and “Display” have special meanings in relation to X servers, in addition to their more common usage.
When X is invoked, the X server will initialize one or more “displays”. Yes, X can have more than one “display” available (though this is not a common configuration for the average user). Each “display” is a separate instance of “X”. The “display” includes not only the obvious video components, but also the keyboard, mouse and other input type components. The user can only access one display at a time via the same keyboard and monitor. “Displays” may reside locally, or on a networked host “somewhere”, or both. It is possible that if multiple “displays” are available, the user can choose which one he wants when he logs in. Each “display” may have its own unique configuration (e.g. resolution). But again, the most typical configuration is just one “display” with one “screen”, which is how most of us use X.
In reference to X servers, “screen” means the primary video output with which you view X. And there can be more than one “screen”, just like you can have more than one “display”. Additional “screens” are used in “multi-headed displays” for instance. In fact you can even have more than one computer running off a single X server. This is beyond the scope of this document, but you should be aware of this degree of flexibility as it is an important ingredient of the X protocol.
“Desktop” can mean different things in different contexts. Often, “desktop” means what is more properly called the “Desktop Environment”. Prime examples of this are KDE, GNOME, and the not as well-known CDE, which are high level applications that control much of how the user interacts with the X session. They provide consistent look and feel, as well as consistent configuration and come bundled with their own set of utilities for common tasks.
“Desktop” also sometimes just means the viewable screen area. This is more of the MS Window's meaning. X environments though are capable of having multiple virtual “desktops” that can be switched between as needed. This helps with organizing different tasks. Each “desktop” may its own windows and clients that are specific to it. Right now I have seven WindowMaker desktops (WindowMaker calls them “WorkSpaces”), and one of those I have dedicated to writing this document. This “desktop” has thirteen unique windows at the moment (man pages, browser windows, clock, gvim, xterms, etc).
“Clients” are any program that connect to the X server, and
require an X server for some task (e.g. to display itself). Often, these
are displayed in their own “window”, but not always. For
instance, if I use CTRL-N
to open a new
Mozilla window, this is one
X client but with two windows. If I run a command
line X utility like xev to
view key and mouse events, this runs in the xterm's
window, so has none of its own, but is still a “client”.
Clients can be locally running applications, or applications that are
running on another system over the network, but are displayed locally.
The “Window Manager” is a special type of client application and a user definable component of the GUI. It is what the user interacts with to a large extent. The Window Manager provides such functionality as window borders and decorations, menus, icons, virtual desktops, button bars, tool bars, and allows the user to customize these. It is technically possible to run X without a window manager (though not very functional), but not the other way around. Window managers should not be confused with “Desktop Environments” like KDE. Desktop Environments include their own preferred Window Manager, but this is a configurable. There is some overlapping of responsibilities between Window Managers and Desktop Environments.
The “root window” is the background of your screen. It is referred to as a window in name alone, it does not behave like any other window, but rather you run your applications on the root window, or put an image on it, or perhaps just a solid color. All other windows are children of this parent window. The root window conceivably can be larger than the viewable screen area.
The “pointer” is the arrow or indicator of any given shape which represents the location of your mouse, or other pointing device. The pointer often changes to give you contextual feedback as to what will happen when you use the mouse at that point on the screen.
The “window” is a frame in which any given application runs and which is “managed” by the Window Manager. This includes pretty much anything except the so-called root window. Even windows which do not appear to have frames, titles, or normal borders of any kind are being managed by your window manger. The “active window” is the window you are currently using. This window will respond to the keyboard when you type, and is traditionally denoted by the fact that your mouse cursor is pointing at it, though this is not always the case. The active window is said to have “focus”. Most Window Managers will somehow highlight the “active”, or focused, window to differentiate it from other windows.
“Menus”, “icons” and “task bars” behave in X similar to the way they behave in other windowing systems, and the same general principles apply.
Windows that run text only applications are called “terminal emulators”, such as xterm and various similar applications. This is the well-known “command line” in an X environment. These basically emulate a console text-only display, and have some advantages due to their being used in X. These are much more complex and sophisticated applications than a simple DOS box on Windows.
“Widgets” is the term used to describe such GUI control components as buttons, sliders, menus, scrollbars, listboxes, checkboxes, etc. “Toolkits” are libraries containing a diverse set of widgets with the same look and feel. Some common examples are GTK+ (used by GNOME, Mozilla and others), Xaw (X Athena Widget set), Tk, Motif and QT (used by KDE). Applications are built with one toolkit or another. Sometimes the same application can be built with different toolkits, depending on compile time options.
Window “geometry” is a shorthand way of expressing a window's
size and screen placement. This might look like
“60x20+10+50”, which is WIDTH x HEIGHT +VERT_OFFSET
+HORZ_OFFSET
. While both pairs are often specified, it is
permissible to use just one or the other pair.
In X lingo, “resources” are definable application attributes. Commonly available “resources” are fonts, colors, size, window title, etc, etc.
The definitive source of information on XFree86 is, of course, http://xfree86.org. Don't forget the man pages that you have installed already too (X, Xserver, XF86Config, XFree86, xdm, xinit, xmodmap, startx, xauth, Xsecurity, etc, etc). These are really mostly decent, though some are quite technical.
Some pages at xfree86.org to check:
Docs and support info: http://www.xfree86.org/support.html for various versions and topics. |
README: http://www.xfree86.org/current/README.html |
Release Notes: http://www.xfree86.org/current/RELNOTES.html |
DRI: http://www.xfree86.org/current/DRI.html |
Status: http://www.xfree86.org/current/Status.html |
Mouse: http://www.xfree86.org/current/mouse.html |
Supported card list: http://xfree86.org/cardlist.html |
Other related documents from LDP:
If you are just starting out, you may find the X Window System Architecture Overview HOWTO to be helpful. It covers all the basic concepts quite well.
The Remote X Apps Mini HOWTO does a nice job of discussing running X remotely, and related security issues of X networking.
The XDMCP HOWTO covers the X Display Manager Control Protocol, for running X remotely. Also, The XDM and X Terminal mini-HOWTO .
The XFree86 HOWTO succinctly covers installation, and initial configuration.
The XFree86 Video Timings HOWTO gets down and dirty with the finer points of monitor tuning. Generally not required for XFree86 v4.x.
The Xinerama HOWTO covers multi-headed displays.
The Font HOWTO covers various font topics.
The Font De-Uglification Mini HOWTO covers a range of X font issues.
Looking for information on a Window Manager, or wanting to try something new or different: http://www.plig.org/xwinman/
Wheel mice tips and configuration: http://koala.ilog.fr/colas/mouse-wheel-scroll/
Linux and Laptops: http://www.linux-laptop.net/
The O'Reilly series on X Window! Visit http://www.ora.com/ for the definitive books on X.
The X Consortium's web site is http://www.x.org/ ... or perhaps it's moved to http://www.opengroup.org/.
http://www.x11.org/ is sort of a clearinghouse for all things X.
And for everything else under the Sun: http://google.com/linux/. An incredible resource in its own right.