91.6 The Basic X Window System Architecture
The most basic mode of operation of Debian is through the console with a command line interface. This is, after all, how Unix users have interfaced with Unix for more than thirty years. In a modern environment though we expect to be able to use the point-and-click interface with the desktop metaphor invented by Xerox in 1977 and popularised by the release of the Apple Macintosh in 1984, the X11 Window System in 1986, and finally with MS/Windows in 1995.
It is the X Window System that provides the platform for today’s graphical user interfaces in Debian and many other platforms. The X Window System is really nothing more than another application sitting on top of the Linux kernel. However, it is special in that it uses a client-server architecture so important to a multi-user, multi-hardware, networked environment. The significance of this is that you can run your X Window System application on one machine (whether it is a Debian, Redhat, Solaris, Macintosh, or Microsft machine) and have remote hosts of any type display directly to it.
As presented in Chapter ?? to run the X Window System we issue the command startx. With no further embelishments we have a basic graphical user interface running and can usually start up oher applications like Netscape. But this is just the start!
When you start up an application under the X Window System that application will display a window on your screen. The raw window is under the control of the application while the X Window System simply handles the rendering of the window onto your screen. For a very simply installation this might look like the screen in Figure ??. You can get this with the command:
$ startx $(which -p xterm)
Or to have this happen automatically each time you start the X Window
System simply create an
~/.xsession file and with the single
Then issue the command:
Either way this will start up the X Window System and then a terminal emulator (xterm) but absolutely nothing else. If you get an error like the following then you probably already have an X Window System session running on the default virtual terminal (vt07).
Fatal server error: Server is already active for display 0 If this server is no longer running, remove /tmp/.X0-lock and start again. When reporting a problem related to a server crash, please send the full server output, not just the last messages Xlib: connection to ":0.0" refused by server Xlib: Invalid MIT-MAGIC-COOKIE-1 key giving up. xinit: unable to connect to X server xinit: No such process (errno 3): Server error.
The solution is simply to run the new X Window System server on a different virtual terminal (let’s use vt09, but it could be vt08 or vt10) and we will call the display by the name :1 rather than the default :0 which seems to already be in use:
$ startx xterm -- :1 vt09
$ startx -- :1 vt09
When an application is specified as an argument to startx
that application is run and the
~/.xsession file is not used.
A basic X Window System graphical interface with a single xterm and no glitz. Note the rather bland background pattern, the default X Window System background, often referred to as the herring bone screen. This display will show moire patterns if your monitor is slightly out of tune, which can be corrected!
Note that there is no decoration on this single window. That is the job of a window manager but we aren’t running any at the moment. There’s plenty to choose from but let’s stay with metacity. Metacity is a window manager that focusses on just managing windows—it leaves out a lot of the other features not specifically related to managing Windows that are supported by many other window mangers like Enlightenment. A window manager is no more than another X Window System application. So in the xterm window we can simply type the command metacity to run this window manager (and we run it as a separate job in the background so that we won’t tie up this xterm—this is the meaning of the ampersand):
$ metacity &
The result is the decorated window we see in Figure ??.
A basic X Window System graphical interface with a single xterm and running a window manger (metacity).
The GNOME desktop is now in control. These are the windows that come up by default on a new installation.
To have this as the default behaviour it is suggested you replace the
xterm in the
~/.xsession file with:
Your donation will support ongoing development and give you access to the PDF version of this book. Desktop Survival Guides include Data Science, GNU/Linux, and MLHub. Books available on Amazon include Data Mining with Rattle and Essentials of Data Science. Popular open source software includes rattle, wajig, and mlhub. Hosted by Togaware, a pioneer of free and open source software since 1984. Copyright © 1995-2021 Graham.Williams@togaware.com Creative Commons Attribution-ShareAlike 4.0.