Other Startup Methods The User X Environment

22.5.1 Other Startup Methods

X display manager, xdm still widely in use, and the newer CDE related dtlogin are the methods of choice for starting X. This is a very elegant way of starting an X session on an X server usually, an X terminal, remotely, or locally. We have already elaborated on these programs, as well as other X programs and configuration files around; therefore, we are more or less familiar with this startup procedure. The xdm, or dtlogin, are typically started during the system booting, they run as daemons through the whole system life and take care of keeping the X service running and getting users logged in. After the startup, a window with the login widget appears, welcoming users and asking for user name and password. After a user has successfully logged in, they start up the users X environment and everything needed for an X session. However, for the sites that support more than one window system, this is not the best choice. Such sites might choose to use the xinit program instead for starting X manually. A user logs−in in a conventional way and then executes the xinit command. The command simply invokes a user−specified program to start the server, invokes another user−specified program to start any desired client, and then waits for either to finish. When the X client exits, the xinit will kill the X server, and then terminate. Since either, or both, of the user−specified programs may be shell scripts, this gives substantial flexibility at the expense of nice interface for this reason, xinit is not intended for end users. The xinit is an obsolete program, and it is slowly being pushed out. It is supposed and it is also announced by many vendors that new X releases will no longer support xinit. Strictly speaking, the xinit is the core program for starting X; however, it is not the only one. The startx script is a front−end to the xinit that provides a somewhat nicer user interface; some X flavors use the x11start script instead. For the brief discussion that follows, this is not of special interest, so all references will be made to the xinit Supposing the local display is being used and the xinit was activated from the command line, the starting procedure consists of: The xinit first starts up the X server for the local display; by default, it starts the generic program called usrbinX11X which is usually a link to the real server program; however, the default value can be overridden by entering another command in the users file HOME.xserverrc. • Since the X server was started, the xinit looks for a shell script called HOME.xinitrc; if the file does not exist, xinit uses the default systemwide file usrlibX11xinitxinitrc. • If both files are missing, the xinit starts a default xterm session: • xterm −geometry + 1 + 1 −n login −display:0 and sends a single xterm window to the local display to get a user started. Here is an obsolete, but illustrative, example of the xinit systemwide configuration file xinitrc: cat usrlibX11xinitxinitrc binsh userresources=HOME.Xresources usermodmap=HOME.Xmodmap 563 xmodmap sysmodmap fi if [ −f userresources ]; then xrdb −merge userresources fi if [ −f usermodmap ]; then xmodmap usermodmap fi start some nice programs twm xclock −geometry 50 × 50 − 1 + 1 xterm −geometry 80 × 50 + 494 + 51 xterm −geometry 80 × 20 + 494 − 0 The configuration file supposes the start of the tab window manager twm in the background and launches the clockand two xterm windows. All of the rules related to the .xsession file could be applied to the .xinitrc file; this is why, quite often, the .xinitrc file was simply linked to the .xsession. However, before linking two files, there are three points to be considered: The .xsession file is generally a shell script, but it can actually be any executable file. The .xinitrc file must be a Bourne shell script. 1. The .xsession file must be an executable file. The .xinitrc file does not have to be executable. 2. The .xsession script does not inherit the users login shell environment. The .xinitrc script inherits the environment of the shell from which the xinit was started. 3.

22.5.2 A Permanent X11 Installation