D.1 X Resources
Programs running under the X Window System organize their user
options under a hierarchy of classes and resources. You can specify
default values for these options in your X resource file,
usually named ~/.Xdefaults
or ~/.Xresources
. Changes in
this file do not take effect immediately, because the X server stores
its own list of resources; to update it, use the command
xrdb
—for instance, ‘ xrdb ~/.Xdefaults
’.
Settings specified via X resources in general override the equivalent settings in Emacs init files (see The Emacs Initialization File), in particular for parameters of the initial frame (see Frame Parameters).
(MS-Windows systems do not support X resource files; on such systems,
Emacs looks for X resources in the Windows Registry, first under the
key ‘ HKEY_CURRENT_USER\SOFTWARE\GNU\Emacs
’, which affects only
the current user and override the system-wide settings, and then under
the key ‘ HKEY_LOCAL_MACHINE\SOFTWARE\GNU\Emacs
’, which affects
all users of the system. The menu and scroll bars are native widgets
on MS-Windows, so they are only customizable via the system-wide
settings in the Display Control Panel. You can also set resources
using the ‘ -xrm
’ command line option, as explained below.)
Each line in the X resource file specifies a value for one option or for a collection of related options. The order in which the lines appear in the file does not matter. Each resource specification consists of a program name and a resource name. Case distinctions are significant in each of these names. Here is an example:
emacs.cursorColor: dark green
The program name is the name of the executable file to which the
resource applies. For Emacs, this is normally ‘ emacs
’. To
specify a definition that applies to all instances of Emacs,
regardless of the name of the Emacs executable, use ‘ Emacs
’.
The resource name is the name of a program setting. For instance,
Emacs recognizes a ‘ cursorColor
’ resource that controls the color
of the text cursor.
Resources are grouped into named classes. For instance, the
‘ Foreground
’ class contains the ‘ cursorColor
’,
‘ foreground
’ and ‘ pointerColor
’ resources (see Table of X Resources for Emacs). Instead of using a resource name, you can use a class
name to specify the default value for all resources in that class,
like this:
emacs.Foreground: dark green
Emacs does not process X resources at all if you set the variable
inhibit-x-resources
to a non- nil
value. If you invoke
Emacs with the ‘ -Q
’ (or ‘ --quick
’) command-line option,
inhibit-x-resources
is automatically set to t
(see Initial Options).
In addition, you can use the following command-line options to override the X resources file:
‘ -name name
’ ¶‘ --name=name
’
This option sets the program name of the initial Emacs frame to name. It also sets the title of the initial frame to name. This option does not affect subsequent frames.
If you don’t specify this option, the default is to use the Emacs executable’s name as the program name.
For consistency, ‘ -name
’ also specifies the name to use for other
resource values that do not belong to any particular frame.
The resources that name Emacs invocations also belong to a class,
named ‘ Emacs
’. If you write ‘ Emacs
’ instead of
‘ emacs
’, the resource applies to all frames in all Emacs jobs,
regardless of frame titles and regardless of the name of the
executable file.
‘ -xrm resource-value
’ ¶‘ --xrm=resource-value
’
This option specifies X resource values for the present Emacs job.
resource-value should have the same format that you would use
inside a file of X resources. Several ‘ -xrm
’ options are
possible to include multiple resource specifications. You can also
use ‘ #include "filename"
’ as resource-value to
include a file full of resource specifications. Resource values
specified with ‘ -xrm
’ take precedence over all other resource
specifications.