Components of the xdm−Based User X Environment

22.4 The User X Environment

Up to now, we have mostly discussed X systemwide issues. Although, a good systemwide X setting could be sufficient for relatively satisfactory X windowing, to customize an individual users X environment, other configuration files are of importance. These files are usually located in the users home directory and have an influence only on the individual X sessions. The user X environment is made up of many components; possibilities to manage it are numerous. However, it is too complex to leave everything to a user, although it can be treated as a personal issue. The administrator is still responsible for this segment of X, and an approach to create a useful default environment is recommended. This is particularly done through system−wide configuration data; however, there is a lot of space also in the user−related arena. The user X environment is crucial for a successful X11 implementation. Users do not know very much about a good X11 concept; they do not know about X11 flexibility and versatily; they simply do not care about that. They know what they see in front of them, and how they could use it. Their own look and feel is the only issue in their evaluation of X. That is why an administrator must pay considerable attention to setting a user X environment. The first step is to understand how X works in this area.

22.4.1 Components of the xdm−Based User X Environment

The user X session starts with the execution of the Xsession script, when the user logs in successfully; the script is executed with the users credentials. Xsession checks for users specific session settings in the users home directory it looks for the script .xsession and sources them. However, if the individual .xsession script does not exist, Xsession sets a decent systemwide default users X environment. This is a fair approach that gives a chance to an administratoruser to set an arbitrary user X environment, if such a wish exists at all. Xsession also provides the way to escape into failsafe mode providing a single xterm window sufficient to fix the problem if the configuration is corrupted in any way. The Xsession is actually very simple script, presented here: cat usrlibX11xdmXsession binsh case in 1 case 1 in failsafe exec xterm −C −fn 9 × 15bold −geometry 80 × 24 + 50 + 50 ;; esac esac startup=HOME.xsession resources=HOME.Xresources if [ −f startup ]; then if [ −x startup ]; then exec startup else exec binsh startup 547 else if [ −f resources ]; then xrdb −load resources fi mwm xrefresh exec xterm −fg white −bg black −fn 9 × 15bold −sb −C −geometry 107 × 24 + 25 + 501 −ls fi This script recognizes the eventually required failsafe mode defined by the translation resource entries in the Xresources file to provide an escape from the ordinary session. In that case a single xterm window is sent to the display and the script exits. Otherwise, the script looks for the script file .xsession in the users home directory, and if it exists, executes it. If the .xsession does not exist, this script creates a workable X session by, first loading individual resources by the xrdb if the file .Xresources exists in the users home directory, and then invokes the mwm window manager in the background, followed by an xterm window. At this point, an X session is established, and the user could continue interaction with the X client host, with all the benefits that an X11 environment offers. Instead of X terminal emulator, any other X−based application could be started. Assuming the need to create an individual user X environment, there are up to three X configuration files in the users home directory to be set in addition to the standard UNIX shell startup dot files: .xsession, .Xresources, and corresponding window manager rc file. We already mentioned them, but now we will look at them in more detail. While the .Xresources file could be seen as an extension of the already existing systemwide Xresources file, the .xsession file works more as a replacement than as an extension if the file exists, it is the only one executed for a user X session. The HOME.xsession file is the shell script that actually starts each of the applications in a users startup environment. Here is an example for an arbitrary user sam: cat homesam.xsession binsh Add usrlocalbin to the path for this script: PATH=PATH:usrlocabin export PATH Set up a pattern for the root window: xsetroot −bitmap usrincludeX11bitmapspattern1 Merge in user resources: xrdb −merge HOME.Xresources Start some applications: xterm −title FirstWindow −g 75 × 35 + 1 + 1 xterm −title SecondWindow −g −1–1 ..... ..... Besides others, two xterm windows are set up, one of the size 75 × 35, starting from the upper left corner, and the second of the default size, starting from the lower right corner. The HOME.Xresources file contains user−specific resource definitions. These resources define users client preferences: for users xterm windows, a users favorite font, a scroll bar, etc. Here is an example: 548 Resource definition file. XTerm definitions: XTermfont:−misc−fixed−bold −r−normal−−15–140–75–75−c−90−iso8859–1 XTermscrollBar:true XTermsaveLines:200 ..... ..... An appropriate font is set up instead of the default one, as well as a scroll bar with up to 200 saved lines to be scrolled.

22.4.2 Components of the CDE User X Environment