10. Appendix

10.1. Terminology and Usage

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.

10.2. Links and other References