packages icon



 XSESSION(1)                     Version 1.1                     XSESSION(1)
                                 6 June 1994



 NAME
      xsession - session manager for the X Window System

 SYNOPSIS
      xsession [-toolkitoption ...] [-console] [-cpp] [-defaultWM ...]
      [-D...] [-m4] [-keep] [-notify] [-remote] [-sounds] [-split] [-startup]
      [-version] [-help]

 DESCRIPTION
      The xsession program is a session manager.  It is normally executed by
      your ~/.xinitrc (or ~/.xsession) script and controls your X Window
      session.  As soon as it is started, xsession launches a window manager
      and some applications of your choice.  At anytime during your session,
      you may switch to another window manager or execute some other
      applications from the xsession menus.  You may also lock your screen
      using an independent locker application and redirect to the xsession
      window the messages usually sent to /dev/console.

      One useful feature of xsession is the preprocessing of window
      managers' configuration files.  When a window manager is launched, its
      startup file can be filtered through m4(1) or cpp(1).  Some macros are
      defined (such as the host name, screen size and so on) that will help
      you customize your menus and screen layout.  One advantage of this
      feature is that several window managers can share the same startup
      file.  For example, you can (and we do) use the same file for mwm(1)
      (Motif), twm(1), ctwm(1) and vtwm(1).  Some lines are protected by a
      test on the ``WM_NAME'' macro, but the other lines are common.  This
      saves a lot of time if you want to maintain the same menu structure
      for the four of them.  You can also use ``include'' statements in your
      file.

      The best way to execute xsession is to include it in your ~/.xinitrc
      (or ~/.xsession) file, as the last client.  The xinit(1) manual page
      says that ``the last long-lived program started [...] should be left
      in the foreground so that the script won't exit''.  You will find a
      similar statement in the xdm(1) manual page.  This last program should
      be xsession.  As a matter of fact, this may even be the only program
      executed in your startup file, because xsession itself provides a way
      to launch other applications.  When started, xsession will look in
      your home directory and execute a file named .X11Startup, if found.
      This shell script is used to start your client programs.

 OPTIONS
      XSession accepts all of the standard X Toolkit command line options
      (such as -iconic, -geometry and so on; see X(1)).  The following
      additional arguments are supported.  Note that because the standard X
      Toolkit method is used to retrieve X resources, most of the command
      line options are only another way to set the value of some resources.
      These options always take precedence over their corresponding
      resources.




                                    - 1 -         Formatted:  March 29, 2024






 XSESSION(1)                     Version 1.1                     XSESSION(1)
                                 6 June 1994



      -console
          When -console is set, xsession tries to redirect the console
          output messages to its window.  This feature should work on most
          systems, but it may be necessary that xsession is ``setuid'' to
          root.

      -defaultWM window-manager's-short-name
          Specifies the (short) name of the default window manager to
          launch.  See the ``Menu customization'' section below for details.
          The easiest way to choose your default window manager is by using
          X resources in your ~/.Xdefaults file (or the file you read with
          xrdb(1)).  The default value is ``TWM''.

      -keep
          Sets the ``keepTmpFile'' resource to ``true''.  This option is
          used mainly for debugging purposes.

      -notify, -nonotify
          When a message is printed in the xsession window and -notify is
          set, the icon name of the application has `` *'' appended, so that
          it is evident even when the application is iconified.  When the
          application is de-iconified, the icon name will be restored to its
          initial value.  The -notify option is set by default.

      -preprocessor m4|cpp
          Specifies which preprocessor must be used.  Only two values may be
          used: either ``m4'' or ``cpp'' according as you want to use m4(1)
          or cpp(1). The default value is ``m4''.

      -quiet
          If you use this option, xsession will not print any messages when
          an application or window manager is started.  The warning messages
          (e.g. ``configuration file not found'') will not be displayed
          either.

      -remote
          You should set this option if you run xsession on a remote host
          (e.g. if your ~/.xinitrc or ~/.xsession file tests if you are on a
          oldish machine and, if so, executes xsession on a more powerful
          host in a remote shell).  XSession must then execute a special
          exit code to work around an unwanted feature in rsh(1) that
          prevents it from exiting if there is one or more children of
          xsession alive.  This exit code shuts down the socket associated
          with the remote connection.

      -sounds, -nosounds
          Activates (or disables) the sounds.  The sounds will only be
          available if xsession was compiled with SOUNDS defined.  The
          sounds are activated by default if SOUNDS was defined, they are
          disabled otherwise.




                                    - 2 -         Formatted:  March 29, 2024






 XSESSION(1)                     Version 1.1                     XSESSION(1)
                                 6 June 1994



      -split, -nosplit
          When -split and -console are set, the output messages of the
          programs and the ones related to the console are shown in separate
          windows.  The -split option is set by default, but will be
          silently ignored if the ``console'' option is not used.

      -startup, -nostartup
          If -startup is set, then the user's .X11Startup file is executed
          by xsession at startup.  You may want to turn this option off for
          debugging purposes or if you don't have a .X11Startup file.  The
          -startup option is set by default.

      Note: if you use a ``+'' instead of a ``-'' in the boolean options
      above, then the effect will be reversed (e.g. +startup is the same as
      -nostartup).

      There is no X resource equivalent for the following command line
      options:

      -Dsymbol
          This defines a symbol for the preprocessor that is run on the
          window managers' configuration files.  All instances of symbol in
          the configuration files will be replaced by the NULL string (if
          xsession was compiled with USE_M4 defined) or 1 (if xsession was
          compiled with USE_CPP).

      -Dsymbol=value
          This defines a symbol for the preprocessor that is run on the
          window managers' configuration files.  All instances of symbol in
          the configuration files will be replaced by value.

      -cpp, -m4
          These options are equivalent to -preprocessor cpp and
          -preprocessor m4, respectively.

      -help
          Guess what?

      -version
          Prints the current version number and exits.

 X DEFAULTS
      This program uses mainly the Text, Paned, Box, MenuButton and
      SimpleMenu Athena widgets.  Look in the Athena Widget Set
      documentation for controlling them.  See also the ``Application
      resources'' section in this manual page.

 WIDGETS
      In order to specify resources, it is useful to know the hierarchy of
      the widgets which compose xsession.  In the notation below,
      indentation indicates hierarchical structure.  The widget class name



                                    - 3 -         Formatted:  March 29, 2024






 XSESSION(1)                     Version 1.1                     XSESSION(1)
                                 6 June 1994



      is given first, followed by the widget instance name.

           XSession  xsession
                Paned  top_pane
                     Box  menu_box
                          MenuButton  session_button
                               SimpleMenu  menu
                                    SmeBSB  lock_menu_item
                                    SmeBSB  quit_menu_item
                          MenuButton  wm_button
                               SimpleMenu  menu
                                    SmeBSB  <window manager's short name>_menu_item
                                    .
                                    . (one for each window manager)
                                    .
                          MenuButton  app_button
                               SimpleMenu  menu
                                    SmeBSB  <application's short name>_menu_item
                                    .
                                    . (one for each application)
                                    .
                          MenuButton  misc_button
                               SimpleMenu  menu
                                    SmeBSB  clear_menu_item
                                    SmeBSB  clear2_menu_item
                     Text  ascii_text
                     Text  ascii_text2

      The <window manager's short name> and <application's short name>
      represent the short name of the program (a window manager or another
      application).  For example, if you have ``TWM'' in your ``Window
      Managers'' menu, you will have a SmeBSB instance named
      ``TWM_menu_item''.

 APPLICATION RESOURCES
      XSession has the following application-specific resources which allow
      customizations unique to xsession.  Some of these resources have
      command line equivalents which may be used to override them.

      Any of these options may also be specified on the command line by
      using the X Toolkit Intrinsics resource specification mechanism.  For
      example, to run xsession using xlock(1) to lock the screen,
           % xsession -xrm '*lockCommand:xlock -mode random'

      allowBell (Class AllowBell)
              Either ``true'' or ``false''.  When ``true'', this resource
              directs xsession to ring the bell if the message printed in
              its window contains one or more bell character(s).  This may
              happen if the output from one application launched from the
              menu contains such characters (e.g. in an error message).
              Default value: ``false''.



                                    - 4 -         Formatted:  March 29, 2024






 XSESSION(1)                     Version 1.1                     XSESSION(1)
                                 6 June 1994



      appNames (Class AppNames)
              This resource is a comma-separated list which gives the
              (short) names of the applications to be shown in the
              ``Applications'' menu.  See the ``Menu customization'' section
              below for details about names and short names of the
              applications.  The default value should have been customized
              for your site during the installation of xsession.  The names
              inside this resource are used as <application_name> to build
              the following resource names:

      app_<application_name> (Class App_<application_name>)
              Each of these resources is a string that gives the full
              application name, followed by a comma and the command to
              execute the application.  See the ``Menu Customization''
              section below for details about building these resources.

      console (Class Console)
              Either ``true'' or ``false''.  If this resource is ``true'',
              xsession tries to redirect the console output messages to its
              window.  This feature should work on most systems, but it may
              be necessary that xsession is ``setuid'' to root.  Default
              value: ``false''.

      defaultWM (Class DefaultWM)
              This resource contains the short name of the default window
              manager to launch.  See the ``Menu customization'' section
              below for details.  Default value: ``TWM''.

      keepTmpFile (Class KeepTmpFile)
              Either ``true'' or ``false''.  If this resource is ``true'',
              xsession will not delete the temporary files created for the
              preprocessor and the window manager.  This only makes sense if
              you use a preprocessor (such as m4(1) or cpp(1)) to filter the
              window manager's configuration file.  This option is used
              mainly for debugging purposes.  Default value: ``false''.

      lockCommand (Class LockCommand)
              This resource contains the command to execute when the user
              selects the ``Lock'' entry in the ``Session'' menu.  The
              string can contain space characters in order to add some
              arguments to the command.  Default value: ``xscreensaver-
              command -lock''.

      motd (Class Motd)
              Either ``true'' or ``false''.  When this resource is ``true'',
              the content of the /etc/motd file is printed in the xsession
              window at startup.  Default value: ``true''.

      notify (Class Notify)
              Either ``true'' or ``false''.  When a message is printed in
              the xsession window and this resource is ``true'', the icon



                                    - 5 -         Formatted:  March 29, 2024






 XSESSION(1)                     Version 1.1                     XSESSION(1)
                                 6 June 1994



              name of the application has `` *'' appended, so that it is
              evident even when the application is iconified.  When the
              application is de-iconified, the icon name will be restored to
              its initial value.  Default value: ``true''.

      preprocessor (Class Preprocessor)
              Specifies which preprocessor must be used.  Only two values
              may be used, either ``m4'' or ``cpp'', according as you want
              to use m4(1) or cpp(1). Default value: ``m4''.

      quiet (Class Quiet)
              Either ``true'' or ``false''.  If this resource is ``true'',
              xsession will not print any messages when an application or
              window manager is started.  The warning messages (e.g.
              ``configuration file not found'') will not be displayed
              either.  Default value: ``false''.

      remote (Class Remote)
              Either ``true'' or ``false''.  The usual way to change this
              value is by using a command line option, not an X resource.
              Default value: ``false''.

      ringBell (Class RingBell)
              Either ``true'' or ``false''.  When a message is printed in
              the xsession window and this resource is ``true'', the bell is
              rung so that the user is warned even if the window is not
              visible.  Default value: ``false''.

      sounds (Class Sounds)
              Either ``true'' or ``false''.  If this resource is ``false'',
              then the sounds are disabled.  The sounds will only be
              available if xsession was compiled with SOUNDS defined.
              Default value: ``true'' if SOUNDS was defined, else ``false''.

      splitWindow (Class SplitWindow)
              Either ``true'' or ``false''.  If both this resource and the
              console resource are ``true'', the normal output messages of
              the programs and the ones related to the console are shown in
              separate windows.  Default value: ``true''.

      startup (Class Startup)
              Either ``true'' or ``false''.  If this resource is ``true'',
              then the user's .X11Startup file is executed by xsession at
              startup.  You may want to turn this option off for debugging
              purposes or if you don't have a .X11Startup file.  Default
              value: ``true''.

      wmNames (Class WMNames)
              This resource is a comma-separated list which gives the
              (short) names of the window managers to be shown in the
              ``Window Managers'' menu.  See the ``Menu customization''



                                    - 6 -         Formatted:  March 29, 2024






 XSESSION(1)                     Version 1.1                     XSESSION(1)
                                 6 June 1994



              section below for details about names and short names of the
              window managers.  The default value should have been
              customized for your site during the installation of xsession.
              The names inside this resource are used as
              <window_manager_name> to build the following resource names:

      wm_<window_manager_name> (Class WM_<window_manager_name>)
              Each of these resources is a comma-separated list that defines
              the properties of a window manager.  The first field is the
              full name of the window manager.  The second field is the
              command to execute in order to run this window manager.  The
              third field (optional) gives the name of the configuration
              file that should be filtered through m4(1) or cpp(1) to
              produce the actual window manager's startup file.  The fourth
              and fifth fields (optional) are used to explain to xsession
              how the window manager can read an arbitrary file as
              configuration file; this can be done using command line
              arguments or an environment string.  See the ``Menu
              customization'' section below for details about building these
              resources.

      If xsession was compiled with the SOUNDS symbol defined, the following
      additional X resources are available.  See the ``Sounds'' section
      below for additional information about using sounds in xsession.

      soundStart (Class SoundStart)
              Name of the sound file to play when xsession starts.  Default
              value: ``none''.

      soundEnd (Class SoundEnd)
              Name of the sound file to play when xsession ends.  Default
              value: ``none''.

      soundStartWM (Class SoundStartWM)
              Name of the sound file to play when a window manager starts.
              Default value: ``none''.

      soundEndWM (Class SoundEndWM)
              Name of the sound file to play when a window manager ends.
              Default value: ``none''.

      soundStartApp (Class SoundStartApp)
              Name of the sound file to play when an application starts.
              Default value: ``none''.

      soundEndApp (Class SoundEndApp)
              Name of the sound file to play when an application ends.
              Default value: ``none''.

      soundLock (Class SoundLock)
              Name of the sound file to play when the screen locker starts.



                                    - 7 -         Formatted:  March 29, 2024






 XSESSION(1)                     Version 1.1                     XSESSION(1)
                                 6 June 1994



              Default value: ``none''.

      soundNotify (Class SoundNotify)
              Name of the sound file to play when a message is printed in
              the main window. Default value: ``none''.

 PREPROCESSING OF WINDOW MANAGERS FILES
      One of the most powerful features of xsession is its ability to filter
      the window managers' setup files through a preprocessor.  This is
      useful if you work on several machines which don't necessarily have
      the same characteristics, or if you wish to share a common
      configuration file between several window managers.  You can use m4(1)
      or cpp(1) directives (e.g. file inclusion directives) and pre-defined
      symbols to customize your environment at runtime.  XSession uses
      either m4(1) or cpp(1) to pre-process the setup files, according to
      the value of the preprocessor resource.

      When xsession starts a new window manager, it creates a temporary file
      for the preprocessor.  This file contains all symbols that will be
      defined and then includes the original window manager's configuration
      file.  The preprocessor will parse that file and send its output to
      another temporary file.  This latter file will be the actual window
      manager's configuration file.  In order to achieve this, xsession
      should have a way to force the window manager into using another input
      file.  This is usually done with a command line parameter for the
      window manager (such a ``-f name'') or with an environment variable.
      If a window manager provides no way for doing this, you won't be able
      to use the preprocessing features for it.  See ``Menu Customization''
      below for details.

      The following symbols are defined (most of these definitions were
      borrowed from the ctwm(1) manual page):

      XSESSION_VERSION        The version number of xsession.

      XSESSION_PID            The process number of xsession.  You may use
                              this pid to send a SIGHUP signal and terminate
                              the session from one of the window manager's
                              menus.

      SERVERHOST              This variable is set to the name of the
                              machine that is running the X server.

      CLIENTHOST              The machine that is running the clients (i.e.
                              the window manager and all other
                              applications).

      HOSTNAME                The canonical hostname running the clients
                              (i.e. a fully-qualified version of
                              CLIENTHOST).




                                    - 8 -         Formatted:  March 29, 2024






 XSESSION(1)                     Version 1.1                     XSESSION(1)
                                 6 June 1994



      MACHINE                 The machine type of CLIENTHOST (e.g.
                              ``sun4m'', ``mips'', ``i486'', ...).

      USER                    The name of the user running the program.
                              Gotten from the environment.

      HOME                    The user's home directory.  Gotten from the
                              environment.

      VERSION                 The X major protocol version.  As seen by
                              ProtocolVersion(3).

      REVISION                The X minor protocol revision.  As seen by
                              ProtocolRevision(3).

      VENDOR                  The vendor of your X server.  For example:
                              ``MIT X Consortium''.

      RELEASE                 The release number of your X server.  For MIT
                              X11R5, this is ``5''.

      WIDTH                   The width of your display in pixels.

      HEIGHT                  The height of your display in pixels.

      X_RESOLUTION            The X resolution of your display in pixels per
                              meter.

      Y_RESOLUTION            The Y resolution of your display in pixels per
                              meter.

      PLANES                  The number of bit planes your display supports
                              in the default root window.

      BITS_PER_RGB            The number of significant bits in an RGB
                              color.  (log base 2 of the number of distinct
                              colors that can be created.  This is often
                              different from the number of colors that can
                              be displayed at once.)

      CLASS                   The visual class of your display.  It returns
                              one of ``StaticGray'', ``GrayScale'',
                              ``StaticColor'', ``PseudoColor'',
                              ``TrueColor'', ``DirectColor'', or, if it
                              cannot determine what you have,
                              ``NonStandard''.

      COLOR                   This variable is just a wrapper around the
                              CLASS definition.  It returns ``Yes'' on
                              StaticColor, PseudoColor, TrueColor and
                              DirectColor displays.  On the other displays,



                                    - 9 -         Formatted:  March 29, 2024






 XSESSION(1)                     Version 1.1                     XSESSION(1)
                                 6 June 1994



                              it is undefined if you use cpp(1), and it
                              returns ``No'' if you use m4(1).

      WM_NAME                 The name of the current window manager.  This
                              is useful for protecting parts of one shared
                              setup file: you may use the same file for
                              several window managers and protect some lines
                              if they are understood by only one of them.

      TWM_TYPE                Same as WM_NAME.  For compatibility with
                              ctwm(1) configuration files.

      Here is a short summary of the useful directives of m4(1) and cpp(1).
      Please refer to their own manual pages for any additional information.

      Warning: when using m4, xsession automatically inserts the following
      m4 directive in the temporary file:
           changequote([,])
      This will use the square brackets as string delimiters, instead of the
      default quote and backquote characters, which are probably already
      used in your file.  Don't duplicate this directive in your file,
      because m4 doesn't like that...

      Assigning a value to a symbol
              With m4, use define(symbol, value).
              With cpp, use #define symbol value.

      Including a file
              With m4, use include(file) or sinclude(file).  The sinclude
              directive is similar to include, except that it does not
              complain if the file is inaccessible.
              With cpp, use #include "file".

      Evaluating a mathematical expression
              With m4, use eval(expression).
              There is no equivalent for cpp.

      Testing if a symbol if defined
              With m4, use ifdef([symbol], result1, result2), where the
              third argument is optional.  Note that the square brackets are
              used to quote the symbol.  If the symbol is defined, this
              expression returns result1, else it returns result2.
              With cpp, use #ifdef symbol ... #else ... #endif, where the
              #else ... part is optional.  Each directive should be on a
              line by itself.  If symbol is defined, then the lines between
              #ifdef and #else will be output.  If not, then the lines
              between #else and #endif will be output.

      Testing an expression
              With m4, ifelse(expr1, expr2, result1, ...) does the
              following: if expr1 and expr2 are the same string, then the



                                   - 10 -         Formatted:  March 29, 2024






 XSESSION(1)                     Version 1.1                     XSESSION(1)
                                 6 June 1994



              result of the ifelse is result1.  If not, and if there are
              more than four arguments, the process is repeated with
              arguments 4, 5, 6 and so on.  Otherwise, the value is either
              the last string not used by the above process, or NULL if it
              is not present.
              Some versions of cpp allow a similar structure with #if, but
              most versions do not have any equivalent.

      Although m4 is less intuitive than cpp, it has more features.  This is
      why our preferences go to m4 for preprocessing the window managers'
      files.  See also the ``Examples'' section below, it shows some parts
      of configuration files to be preprocessed by m4.

 MENU CUSTOMIZATION
      The ``Window Managers'' and ``Applications'' menus may (and should) be
      customized for your site using X resources.  These menus are built
      from the X resources using a two-stage process: first, the list of
      items is read from a resource, then the definition of each item is
      searched in the resource database.

      The wmNames resource string is a comma-separated list that gives the
      (short) names of the window managers that will be listed in the menu.
      These names should be short and contain characters from the set
      {`A'-`Z', `a'-`z', `0'-`9', `_', `-'} (no space character).  Each of
      these names is then used to create a new resource name, using the
      prefix wm_, that holds the complete description of the window manager.

      This also applies to the applications, with the appNames and app_...
      resources.

      For a given window manager, the wm_<window_manager's_short_name>
      resource must be built as follows.  It is a comma-separated string
      made of five fields (which are not allowed to contain any comma
      characters, of course):

      + The first field is mandatory and denotes the full name of the window
        manager.  It may contain space characters.

      + The second field is mandatory and denotes the command to execute in
        order to run this window manager.  This field may contain space
        characters in order to add some arguments to the command.

      + The third field is optional and specifies the name of the
        configuration file which must be preprocessed by xsession for this
        window manager.  This field must contain one and only one occurence
        of ``%s'' which will be replaced by ``m4'' or ``cpp'' according to
        the preprocessor that is used.  Remember that only the preprocessed
        file is used by the window manager, not the original and usual one
        (see ``Preprocessing of window managers files'' above).





                                   - 11 -         Formatted:  March 29, 2024






 XSESSION(1)                     Version 1.1                     XSESSION(1)
                                 6 June 1994



      + The fourth and fifth fields are optional.  The aim of these fields
        is to explain to xsession how this window manager can read an
        arbitrary file instead of its default configuration file.  All
        well-behaved window managers should be able to do that!  Some of
        them use an environment variable, while others need a command line
        option.  If a command line option is needed, it should be placed in
        the fourth field of the string; this field must contain one and only
        one occurence of ``%s'' to specify where the filename should be
        inserted in the arguments list.  If an environment variable is
        needed, the fifth field should be defined as ``VARIABLE=VALUE'',
        where ``VARIABLE'' denotes the name of the environment variable to
        be used, and ``VALUE'' denotes the value to be assigned to the
        variable; ``VALUE'' must contain one and only one occurence of
        ``%s'' to specify where the filename should be inserted into the
        variable.
        For most window managers, it should be possible to use one of these
        two fields.  If both are undefined or if there isn't any occurence
        of ``%s'' in them, then the preprocessed file cannot be given to the
        window manager by xsession; in that case, you will lose the
        preprocessing feature for this window manager, because it will
        always take its default configuration file, without any
        preprocessing applied on it.

      For a given application, the app_<application's_short_name> must be
      built as follows.  It is a comma-separated string made of two fields.
      The two fields are mandatory:

      + The first field denotes the full name of the application.  It may
        contain space characters.

      + The second field specifies the command to execute in order to run
        this application.  This field may contain space characters in order
        to add some arguments to the command.

      In order to add a new window manager (respectively a new application)
      into the xsession menus, you have to insert its short name in the
      wmNames (respectively appNames) resource, and to create a new resource
      named wm_<window_manager's_short_name> (respectively
      app_<application's_short_name>) built according to the rules above.

 EXAMPLES
      Adding a new application to the menu
              If you want to add a new application to the ``Applications''
              menu (e.g.  xmosaic),  you need to do two things: first, add
              the name of this application in the appNames list (this is the
              name that will be shown in the menu).  The appNames resource
              in your ~/.Xdefaults file should now look like this:

              XSession*appNames: XTerm, Emacs, XEdit, XMan, XMosaic

              Then, add a new resource to define the application.  This



                                   - 12 -         Formatted:  March 29, 2024






 XSESSION(1)                     Version 1.1                     XSESSION(1)
                                 6 June 1994



              string contains the application's full name followed by the
              command that xsession will execute:

              XSession*app_XMosaic: XMosaic (WWW browser), xmosaic -dil

              The next time you run xsession, your ``Applications'' menu
              will have a new entry for xmosaic.

      Window manager's configuration file
              You can use the same file for several window managers.  For
              example, you can have a common file called .wmrc.m4 that is
              used by ctwm(1), twm(1) and vtwm(1).  If some lines in this
              file are specific to one of these window managers, you can
              perform a test on WM_NAME to prevent other window managers
              from seeing them.  For instance, here is an excerpt from the
              ``Colors'' section of our .wmrc.m4 file:

              Color
              {
                   DefaultBackground   "blue"
                   DefaultForeground   "yellow"
              ifelse(WM_NAME, ctwm, [
                   MapWindowBackground "white"
                   MapWindowForeground "black"
              ], WM_NAME, vtwm, [
                   DoorBackground      "orange"
                   DoorForeground      "blue"
                   VirtualBackground   "LightSteelBlue"
              ])
              }


      Other preprocessor features
              You can also use the preprocessor (m4, here) to define a
              symbol that will be used later.  For example, if you can
              define a ``FULLSCREEN'' variable that will give the correct
              geometry for a window that should cover the whole screen.
              Here is another excerpt from a .wmrc.m4 file:

              define(FULLSCREEN, translit(WIDTH*eval(HEIGHT - 30)+0+0, *, x))
              define(SHOWIMAGE, [xv -quit -rmode 1])

              menu "Applications"
              {
                   "Applications" f.title
                   "XMan"         f.exec "xman -notopbox -bothshown -pagesize FULLSCREEN &"
                   "Backgrounds"  f.title
                   "Stupid logo"  f.exec "SHOWIMAGE winlogo.gif &"
              }





                                   - 13 -         Formatted:  March 29, 2024






 XSESSION(1)                     Version 1.1                     XSESSION(1)
                                 6 June 1994



      See also the examples directory in the xsession distribution for
      longer examples.

 SOUNDS
      XSession can use the rplay library if it is installed on your system.
      If xsession was compiled with SOUNDS defined, then it will play a
      sound when some event occurs.  For example, you may configure xsession
      to play ``Creaky-1.au'' when you start it, and ``goodbye.au'' when you
      quit.  You only need to add the following lines to your ~/.Xdefaults
      file (or the file you read with xrdb(1)):

           XSession*soundStart:     Creaky-1.au
           XSession*soundEnd:       goodbye.au


      Here is how this works: when the selected event occurs, xsession will
      send a request to the rplayd server running on CLIENTHOST, asking it
      to play a sound.  The rplayd server will take care of what is needed
      to find the sound file and play it.

      You will find the rplay library and lots of sound files on the
      following FTP site: sounds.sdsu.edu (130.191.224.4).  You will also
      find the library on ftp2.montefiore.ulg.ac.be and ftp.x.org.

 COLORS
      Like some other X applications, xsession provides another set of
      resources if you want to use it on a color display.  You only need to
      include the following lines in your ~/.Xdefaults file (or the file you
      read with xrdb(1)):

           #ifdef COLOR
           *customization:    -color
           #endif


      This will cause xsession to pick up the colors in the application-
      defaults color customization file (XSession-color) instead of the
      standard applications-defaults customization file (XSession).

 ENVIRONMENT
      DISPLAY To get the default host and display number.  If this variable
              is not defined in the environment and the -display command
              line option is used instead, xsession adds this variable to
              its environment.

      HOME    To get the name of the user's home directory.  If this
              variable is defined, xsession changes the current directory to
              the one specified in this variable.

      TMPDIR  If set, temporary files will be created in this directory.
              Otherwise, temporary files will be created in /usr/tmp.



                                   - 14 -         Formatted:  March 29, 2024






 XSESSION(1)                     Version 1.1                     XSESSION(1)
                                 6 June 1994



      XENVIRONMENT
              To get the name of a resource file that overrides the global
              resources stored in the RESOURCE_MANAGER property.

 FILES
      /usr/lib/X11/app-defaults/XSession
                          specifies required resources for standard displays

      /usr/lib/X11/app-defaults/XSession-color
                          specifies resources for color displays

      ~/.xinitrc          the best way to launch xsession

      ~/.xsession         another good way to launch xsession

      ~/.X11Startup       startup file executed by xsession

      /etc/motd           message-of-the-day

      /usr/tmp/xs_WM<...> preprocessed startup files created by xsession

 SEE ALSO
      X(1), xinit(1), xdm(1), xrdb(1), m4(1), cpp(1), twm(1), ctwm(1),
      mwm(1), xscreensaver(1), xlock(1), xconsole(1), Athena Widget Set, X
      Toolkit Intrinsics.

 BUGS
      The program may crash if you put more than one ``%s'' in the third,
      fourth or fifth field of a wm_<window_manager's_short_name> resource
      or if you give another incorrect format string.

      All symbols defined for the preprocessor are blindly replaced in the
      window managers' startup files, and this may cause some problems.
      For instance, if you use the variable ``$HOME'' in one file, the
      preprocessor will replace the symbol ``HOME'' by its actual value, and
      your window manager will see a lost ``$'' before the path name.
      Solution: remove the ``$'' sign.

      If used from xsession, mwm(1) (Motif) must be customized in such a way
      that it does not prompt the user if it receives a KILL signal.
      Indeed, when you decide to switch to another window manager, xsession
      sends a KILL signal to the current window manager, waits until it
      ends, and starts the new one.  If, thanks to the prompt, the user
      cancels the order sent by xsession, the window manager will not end
      and xsession will wait forever.  For mwm(1), the showFeedback (class
      ShowFeedback) resource must be changed from its default value
      (``all'') to something that does not include ``kill''.  For example,
      you can use ``behavior move placement quit resize restart'' as the
      value of this resource.





                                   - 15 -         Formatted:  March 29, 2024






 XSESSION(1)                     Version 1.1                     XSESSION(1)
                                 6 June 1994



      Please report other bugs to the authors at the following E-mail
      addresses.  Thanks.  We would rather get criticisms than no comments
      at all!

 AUTHORS
      Raphael Quinet <quinet@montefiore.ulg.ac.be>
                     <quinet@stud.montefiore.ulg.ac.be>

      Alain Nissen   <nissen@montefiore.ulg.ac.be>
                     <nissen@stud.montefiore.ulg.ac.be>

 COPYRIGHT
      Copyright c 1993, 1994, Alain Nissen & Raphael Quinet, University of
      Liege, Belgium.

      The X Consortium, and any party obtaining a copy of these files from
      the X Consortium, directly or indirectly, is granted, free of charge,
      a full and unrestricted irrevocable, world-wide, paid up, royalty-
      free, nonexclusive right and license to deal in this software and
      documentation files (the "Software"), including without limitation the
      rights to use, copy, modify, merge, publish, distribute, sublicense,
      and/or sell copies of the Software, and to permit persons who receive
      copies from any such party to do so.  This license includes without
      limitation a license to do the foregoing actions under any patents of
      the party supplying this software to the X Consortium.

      THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
      EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
      MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
      IN NO EVENT SHALL THE X CONSORTIUM, THE AUTHORS OR THE UNIVERSITY OF
      LIEGE BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
      AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
      CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
      SOFTWARE.

      The above copyright notice and this permission notice shall be
      included in all copies or substantial portions of the Software.

 AVAILABILITY
      The most recent released version of xsession is available for
      anonymous FTP from ftp.x.org (198.112.44.100) in the directory
      /contrib/applications.  The latest version under development is
      available for anonymous FTP from ftp2.montefiore.ulg.ac.be
      (139.165.8.25) in the directory /pub/xsession.










                                   - 16 -         Formatted:  March 29, 2024