HEPiX X11 Scripts - Files

This page describes the different files used by the %hx. You can consult the anatomy page to have a complete description of the HEPiX X session.

Some files can be used to customise the %xdm wrappers (at system, cluster or site level) or the "real" HEPiX X session (at user, group, system, cluster or site level). Some other files are used directly or not by the HEPiX X session. %index


%xdm Files

Because most of the wrappers are run/used as root, it is essential that all the customisation files are really local to the system and controlled only by root. For the same reason, there is no user or group level customisation files for the %xdm wrappers. Here are the default locations for these files:

The customisation can be done either for the console only (i.e. display :0) or for all the other displays. This depends on the %xdm configuration defined in the file xdm-config (independently from the HEPiX X11 scripts). You may need to add an _0 at the end of a file name so that it applies only to the console, as described in the %xdm man page.

Xresources

This should contain the X resources used by %xdm (and only %xdm!). All the resources are merged in the following order:

  1. "original" resources used by %xdm before the installation of the HEPiX X11 scripts
  2. hep resources
  3. site resources
  4. cluster resources
  5. system resources

Xstartup

This is the program run as root before the user session is started. If the corresponding file is found at system, cluster or site level, it is executed (and only this file!); otherwise the hep file is executed.

Xsession

This starts the "real" user X session. Same behaviour as %Xstartup.

Xreset

This is the program run as root after the user session has terminated. Same behaviour as %Xstartup.


HEPiX X Session Files

Here are the default locations for these files:

Note that the group level default location depends on the variable %HX_GROUP_DIR that should be defined in the site level %xprofile.

Warning: to avoid name clashes, the files at the hep and group levels also have a prefix, respectively HEP_ and group_. For instance, the group level X resources file is $HX_GROUP_DIR/group_Xresources.

xclients

This file contains the X clients to be started in the HEPiX desktop. It can be either a "text" file that will be sourced (ksh syntax) or an executable that will executed in the background. The first file found at user, group, system, cluster, site or help level is used; the other files are ignored.

Warning: all the X clients started in this file should be launched in the background to avoid blocking the X session.

Note: this file is used only by the HEPiX startup so it will be used only when the selected startup (%HX_STARTUP) is HEPiX.

See also the corresponding template.

xclients.m

This file contains the "mandatory" X clients for the HEPiX desktop. These clients will be started regardless of the user's settings. All the files from hep level to group level will be used in order. The file can be executable or not, like for %xclients.

Note: this file is used only by the HEPiX desktop so it will be used only when the selected desktop (%HX_DESKTOP) is HEPiX.

Warning: this file is used before getting the user environment, see %HX_SOURCEPROFILE.

xkbd.$HX_KEYBOARD

This file contains the X key mappings that will be given to the program xmodmap for a particular keyboard identified by %HX_KEYBOARD. All the files from hep to user level will be merged into %$HOME/.hepix/generated_xmodmaprc and then used by xmodmap.

Warning: the key mappings may be re-applied so they must be carefully written so that one can use them regardless of the existing mappings...

To be more flexible, if the file is executable, it is executed and the output is used instead of its contents. This allows to have mappings depending on the environment, for instance the $RUBOUT variable...

Note: this file is used only by the HEPiX startup so it will be used only when the selected startup (%HX_STARTUP) is HEPiX.

xkeyboard

This file contains mappings between X server host names and keyboard names. If it exists, it is used to overwrite the value of %HX_KEYBOARD if a matching entry is found. All files from user level to hep level are used, the first matching entry is used.

See also the corresponding template.

xpolicy

This file can be used to implement a policy, for instance to forbid a desktop or to restrict the window managers available. The syntax of the file is described in the policy document. This file can be present at any level.

xprofile

This file is the main configuration file. It is sourced by the HEPiX X session (it must therefore have the ksh syntax) and can set the major switches described elsewhere. All the files from hep level to user level are sourced in order.

See also the corresponding template.

xresources

This should contain the X resources used by all the X clients. All the resources are merged in the following order:

  1. hep resources
  2. site resources
  3. cluster resources
  4. system resources
  5. group resources
  6. %$HOME/.Xdefaults (obsolete)
  7. %$HOME/.Xresources
  8. the XTerm*ttyModes resource according to %$HOME/.Delete or %$HOME/.BackSpace
  9. user resources

The result is put in the file %$HOME/.hepix/generated_xresources.

Warning: for historical reasons, the name of the file is xresources (with a lowercase `x') at user level but Xresources (with a uppercase `X') for all the other levels...

Note that for compatibility reasons, the files %$HOME/.Xresources and %$HOME/.Xdefaults are also used but the preferred way to specify an X resource is with the xresources file.

To be more flexible, if the file is executable, it is executed and the output is used instead of its contents. This allows to have X resources depending on the environment, for instance the number of colors of the screen (see %HX_COLOR).


Other Files

Here are some other files that have not been described above.

$HOME/.BackSpace

It is used by the %h (both X11 and shells) to properly bind the "erase" key to backspace (^?).

$HOME/.Delete

It is used by the %h (both X11 and shells) to properly bind the "erase" key to delete (^H).

$HOME/.hepix

This directory contains (almost) all the files customising the %h. If you remove it, you'll get the default behaviour.

$HOME/.hepix/generated_xmodmaprc

This contains all the X key mappings found at different levels (from the %xkbd.$HX_KEYBOARD files). It is used mainly for debugging purposes or to easily reset the X key mappings.

The file exists only if some X key mappings have been specified at some level.

$HOME/.hepix/generated_xresources

This contains all the X resources found at different levels (as well as some cpp directives to define the HX_* informational variables). It is used mainly for debugging purposes or to easily reset the X resources.

$HOME/.hepix/preferred-group

It is used by the %hs to find out your preferred group name. It is documented elsewhere.

$HOME/.hepix/wm/generated_wmrc

This contains the generated configuration file for your window manager. Its real name contains the name of the window manager, for instace generated_fvwm2rc.

It is optionally created by the program %prepare-wmrc.

$HOME/.hepix/xsession.log

This contains the log of the X session, including the output and error messages of all the commands started by the X session. It should be the first place to look at in case of problems.

If you start a "debug session" (by pressing F2 instead of Return after typing your password in the xdm login panel), you will get more information in the log file.

See also sample log files of a normal session and a debug session.

$HOME/.Xdefaults

This usually contains X resources but it is obsolete. One should use %$HOME/.Xresources (MIT standard) or %xresources (specific to the %hx).

$HOME/.Xresources

This usually contains the X resources. It is used by the HEPiX X session although the normal file to use is %xresources in $HOME/.hepix.

$HOME/.Xsession

This program is obsolete (but honoured), it should be replaced by %$HOME/.xsession.

$HOME/.xsession

This program is used by %xdm as the user's X session. It should start all the needed X clients (including a window manager). When it terminates, the user's X session terminates.

The recommended way is to use %xprofile and %xclients to customise your X session and not to use a .xsession, it will be much easier to modify and debug. However, you have more control on your X environment with a .xsession program...

Warning: if this file exists and is executable then it is always used. See also %HX_STARTUP.


Lionel Cons, 6-Oct-1997