Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ Xdefaults(5) — DG/UX 5.4R3.00

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

X(1)

xrdb(1)

XGetDefault(3)

XrmGetResource(3)

XtAppInitialize(3)

Xdefaults(5)



Xdefaults(5)                    X11 5.4R3.00                    Xdefaults(5)


NAME
       Xdefaults, Xresources - X Window System resource management

DESCRIPTION
       The file .Xdefaults in a user's home directory contains default
       resources for X-clients. Although this is the most common place for a
       user to put resources, it is not always the most appropriate. To
       fully understand the resource mechanism, you must understand the
       history of resources.

       An application's resources are generated by merging the following 6
       sources:

       1- System application default resources.
       2- User application default resources.
       3- User general default resources.
       4- Screen resources.
       5- Environment resources.
       6- Command line resources.

       For each source only one file (or property) is read; therefore, when
       a list of files is specified for a resource (ie. source 1 or 2) the
       first file found will be used.  The merging process is done in the
       specified order, identical resource specifications from different
       sources are overwritten, so the later source is used. Therefore,
       command line resources can override resources from any other source.
       For a further discussion of resource precedence rules, see
       XrmGetResource(3).


       1a- use XFILESEARCHPATH if defined

       1b- else use the first file found in the following list:
           /usr/lib/X11/%L/app-defaults/%N%C
           /usr/lib/X11/%l/app-defaults/%N%C
           /usr/lib/X11/app-defaults/%N%C
           /usr/lib/X11/%L/app-defaults/%N
           /usr/lib/X11/%l/app-defaults/%N
           /usr/lib/X11/app-defaults/%N

       1c- else use internal fallback resources set by
           XtAppSetFallbackResources(3Xt).

       2a- use XUSERFILESEARCHPATH if defined

       2b- else if XAPPLRESDIR defined,
           use the first file found in the following list:
           $XAPPLRESDIR/%L/%N%C
           $XAPPLRESDIR/%l/%N%C
           $XAPPLRESDIR/%N%C
           $HOME/%N%C
           $XAPPLRESDIR/%L/%N
           $XAPPLRESDIR/%l/%N
           $XAPPLRESDIR/%N



Licensed material--property of copyright holder(s)                         1




Xdefaults(5)                    X11 5.4R3.00                    Xdefaults(5)


           $HOME/%N

       2c- else, use the first file found in the following list:
           $HOME/%L/%N%C
           $HOME/%l/%N%C
           $HOME/%N%C
           $HOME/%L/%N
           $HOME/%l/%N
           $HOME/%N

       3a- use RESOURCEMANAGER property of the default root
           window, if defined

       3b- else, use $HOME/.Xdefaults

       4- use SCREENRESOURCES property of the requested screen

       5a- use the file specified by $XENVIRONMENT if defined

       5b- else, use $HOME/.Xdefaults-`hostname`

       6- Command line arguments.

HISTORY OF RESOURCES
       The following is a somewhat chronological account of the development
       of resource management for the X Window System.  Considerable
       editorial license has been taken to make it easy for the reader to
       understand.

       In the beginning (ie. X10) there were only command line arguments.
       Massive command line arguments, as in the case of xterm which has 52
       different command line options. It was soon realized another
       mechanism was needed for setting program options in a generic way.
       So the idea of an .Xdefaults file was born.  It would live in a
       user's home directory; therefore, different users could set different
       options according to their personal preference.  And it would contain
       option settings, one per line, in the following format:

       <application name>.<option name>:<value>

       This format would later be extended to include the widget class and
       hierarchy used in the X Toolkit Intrinsics (Xt).

       Since the X Window System is network based, all the clients a user
       has started are not necessarily executing on the same host system.
       This brings up a problem if a user's home directory is not accessible
       to all host systems, or if there is no concept of a user's home
       directory, such as on an MS-DOS system.  The solution was to invent
       the program xrdb(1) which loaded the RESOURCEMANAGER property
       attached to the root window of the display with the contents of the
       user's .Xdefaults file.  The function XGetDefault(3) was modified to
       look for the RESOURCEMANAGER property. If the property was not
       found, it would then read the user's .Xdefaults file, to be
       backwardly compatible with systems that did not have xrdb(1).



Licensed material--property of copyright holder(s)                         2




Xdefaults(5)                    X11 5.4R3.00                    Xdefaults(5)


       This backward compatibility has several unexpected side-effects.  By
       default xrdb(1) runs the .Xdefaults file through the C pre-processor
       before loading it into the RESOURCEMANAGER property. However, when
       XGetDefault(3) reads the .Xdefaults file it does not pre-process it.
       Fortunately the Xlib resource manager functions silently ignores any
       malformed resource specifications.  C-style comments, #ifdef's and
       #include's don't work as expected when the RESOURCEMANAGER property
       does not exist.  Although, in X11R5 a limited version of the #include
       directive is supported.

       The worst side-affect of xrdb(1) using the C pre-processor is the
       common misconception that all resource files are pre-processed. In
       fact, only the .Xdefaults file is pre-processed, and only when it is
       loaded into the RESOURCEMANAGER property by xrdb(1).

       Now that all resources are set on a network-wide basis with the
       RESOURCEMANAGER property, a need for setting host specific resources
       was needed. So the file .Xdefaults-<host> (where <host> is replaced
       by the hostname of the system) in a user's home directory was
       invented.  This file is read by XGetDefault(3) and is not pre-
       processed.  For systems without home directories, or if you want to
       override the above behavior, the environment variable XENVIRONMENT
       can be set to the pathname of a file containing the host specific
       resources.

       The X Toolkit Intrinsics was the dawn of a new era for resource
       management. No longer would mere mortals have to comprehend all of
       the vast possibilities available through this emerging technology.
       The current implementation of XGetDefault(3) is described above, the
       new functionality described below is only available through the X
       Toolkit Intrinsics.

       Application writers needed to distribute resources with their
       applications, but did not want to require the users to merge them
       with their .Xdefaults files.  The directory /usr/lib/X11/app-defaults
       was created.  In it would be a file for each application installed on
       the system. The name of the files would be the same as the class name
       of the application.  The convention of capitalizing the first
       character of the application name, except if it starts with an 'x',
       in which case the first two letters are capitalized, to form the
       class name of an application, is not always followed.  So while mwm
       and xterm have the class names Mwm and XTerm, xfd has the class name
       Xfd.

       The user's .Xdefaults file started to growing without bounds. With
       each new client up to 100 lines were added to a user's .Xdefaults
       file.  The solution was to bring the system app-defaults directory
       concept to the user level.  A user's home directory is searched for a
       file matching the class name of the application.  And for systems
       without home directories, or for those users who don't want cluttered
       home directories, the environment variable XAPPLRESDIR can be set to
       the pathname of a directory containing the user's application
       resource files.




Licensed material--property of copyright holder(s)                         3




Xdefaults(5)                    X11 5.4R3.00                    Xdefaults(5)


       Next came internationalization (I18N). The environment variable
       XFILESEARCHPATH would specify a colon separated list of files to
       search for a system default application resource file.  The default
       value is:

    /usr/lib/X11/%L/%T/%N%C%S:/usr/lib/X11/%l/%T/%N%C%S:/usr/lib/X11/%T/%N%C%S:
    /usr/lib/X11/%L/%T/%N%S:/usr/lib/X11/%l/%T/%N%S:/usr/lib/X11/%T/%N%S

       The "%" meta-notation is the same as used in with the catopen(3)
       library function. The default list of metacharacters is:

       %N The application's class name.
       %T The type of the file.
       %S The filename suffix.
       %C The value of the customization resource.
       %L The the value of the LANG environment variable.
       %l The language part of %L.
       %t The territory part of %L.
       %c The codeset part of %L.
       %% A single %

       The LANG environment variable should comply with the XPG language
       specification, which has three fields in the following order,
       language, territory and codeset. It has the form:

       LANG=language[_territory[.codeset]]

       The LANG environment variable can be overridden by the xnlLanguage
       resource (eg. "*xnlLanguage: french") in the user's default resources
       (RESOURCEMANAGER property or $HOME/.Xdefaults).  It can also be
       overridden on the command line with the -xnllanguage option, which
       takes precedence over the user default resources. The other resource
       sources, system/user application defaults, screen, and environment
       resources (1, 2, 4 & 5), are not searched for the xnlLanguage
       resource.

       XFILESEARCHPATH is used by XtResolvePathname(3) to retrieve data
       files (including resource files) used by an application.  Since this
       is a new function for X11R4, it is not used by all applications. Also
       applications can define more metacharacters than listed above.

       For application resource files the type (%T) is set to "app-
       defaults", and the suffix (%S) is empty. For example, if LANG is set
       to "Spanish_Mexico", xterm would use the following list of files, in
       the specified order, to find its system default application
       resources:

       /usr/lib/X11/Spanish_Mexico/app-defaults/XTerm
       /usr/lib/X11/Spanish/app-defaults/XTerm
       /usr/lib/X11/app-defaults/XTerm

       The search for user resource files was extended for I18N by defining,
       in addition to XAPPLRESDIR, a new environment variable
       XUSERFILESEARCHPATH.  Its default value depends on if XAPPLRESDIR is



Licensed material--property of copyright holder(s)                         4




Xdefaults(5)                    X11 5.4R3.00                    Xdefaults(5)


       set.  If so the search path for a user's resource file is as follows:

       $XAPPLRESDIR/%L/%N%C:$XAPPLRESDIR/%l/%N%C:$XAPPLRESDIR/%N:$HOME/%N%C:
       $XAPPLRESDIR/%L/%N:$XAPPLRESDIR/%l/%N:$XAPPLRESDIR/%N:$HOME/%N

       else if XAPPLRESDIR is not defined:

       $HOME/%L/%N%C:$HOME/%l/%N%C:$HOME/%N%C:$HOME/%L/%N:$HOME/%l/%N:$HOME/%N

       The customization meta character (%C), which is new for X11R5, is
       used in the default value of XFILESEARCHPATH and XUSERFILESEARCHPATH.
       It is intended to customize resources for color vs. monochrome
       systems.  Typically the customization is set in a user's .Xdefaults
       file as follows:

       #ifdef COLOR
       *Customization: -color
       #else
       *Customization: -mono
       #endif

       The different sources are actually combined in order of precedence.
       The command line arguments (source 7) are read first.  Therefore, the
       value of the customization meta character (%C), used to resolve the
       filename for the user application default resources (source 2), is
       set by the previously read sources.  Likewise the user app-defaults
       (source 2) can effect the filename resolution for the system app-
       defaults (source 1).

NOTE
       The environment variable XFILESEARCHPATH is used to search for more
       than just app-default files, such as bitmaps, and help files.
       Therefore, the file type and suffix meta characters (%T and %S)
       should always be used when setting XFILESEARCHPATH.

ENVIRONMENT
       HOME the user's home directory.

       LANG the user's preferred language.

       XENVIRONMENT a file to be read for the environment default
               resources, if not set $HOME/.Xdefaults-`hostname` is read.

       XAPPLRESDIR a directory containing the user's application
               default resource files, if not set $HOME is used.

       XFILESEARCHPATH a colon separated list of files used to get the
               system application default file.

       XUSERFILESEARCHPATH a colon separated list of files used to get
               the user's application default file.

SEE ALSO
       X(1), xrdb(1), XGetDefault(3), XrmGetResource(3), XtAppInitialize(3)



Licensed material--property of copyright holder(s)                         5




Xdefaults(5)                    X11 5.4R3.00                    Xdefaults(5)


FILES
       $HOME/.Xdefaults
       $HOME/.Xdefaults-`hostname`
       $HOME/app-defaults/%N
       $HOME/app-defaults/%N%C
       $HOME/%L/app-defaults/%N
       $HOME/%L/app-defaults/%N%C
       $HOME/%l/app-defaults/%N
       $HOME/%l/app-defaults/%N%C
       $XAPPLRESDIR/app-defaults/%N
       $XAPPLRESDIR/app-defaults/%N%C
       $XAPPLRESDIR/%L/app-defaults/%N
       $XAPPLRESDIR/%L/app-defaults/%N%C
       $XAPPLRESDIR/%l/app-defaults/%N
       $XAPPLRESDIR/%l/app-defaults/%N%C
       /usr/lib/X11/app-defaults/%N
       /usr/lib/X11/app-defaults/%N%C
       /usr/lib/X11/%L/app-defaults/%N
       /usr/lib/X11/%L/app-defaults/%N%C
       /usr/lib/X11/%l/app-defaults/%N
       /usr/lib/X11/%l/app-defaults/%N%C




































Licensed material--property of copyright holder(s)                         6


Typewritten Software • bear@typewritten.org • Edmonds, WA 98026