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 resources file, usually named
~/.Xdefaults.
Each line in the file specifies a value for one option or for a
collection of related options, for one program or for several programs
(optionally even for all programs).
MS-Windows systems don't support ~/.Xdefaults files, but
Emacs compiled for Windows looks for X resources in the Windows
Registry, under the keys HKEY_CURRENT_USER\SOFTWARE\GNU\Emacs
and HKEY_LOCAL_MACHINE\SOFTWARE\GNU\Emacs.
Programs define named resources with particular meanings. They also
define how to group resources into named classes. For instance, in
Emacs, the internalBorder resource controls the width of the
internal border, and the borderWidth resource controls the width
of the external border. Both of these resources are part of the
BorderWidth class. Case distinctions are significant in these
names.
In ~/.Xdefaults, you can specify a value for a single resource
on one line, like this:
emacs.borderWidth: 2
Or you can use a class name to specify the same value for all resources
in that class. Here's an example:
emacs.BorderWidth: 2
If you specify a value for a class, it becomes the default for all
resources in that class. You can specify values for individual
resources as well; these override the class value, for those particular
resources. Thus, this example specifies 2 as the default width for all
borders, but overrides this value with 4 for the external border:
emacs.BorderWidth: 2
emacs.borderWidth: 4
The order in which the lines appear in the file does not matter.
Also, command-line options always override the X resources file.
The string emacs in the examples above is also a resource
name. It actually represents the name of the executable file that you
invoke to run Emacs. If Emacs is installed under a different name, it
looks for resources under that name instead of emacs.
-name name
--name=name
- Use name as the resource name (and the title) for the initial
Emacs frame. This option does not affect subsequent frames, but Lisp
programs can specify frame names when they create frames.
If you don't specify this option, the default is to use the Emacs
executable's name as the resource name.
-xrm resource-values
--xrm=resource-values
- Specify X resource values for this Emacs job (see below).
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; its
name is 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. Here is an example:
Emacs.BorderWidth: 2
Emacs.borderWidth: 4
You can specify a string of additional resource values for Emacs to
use with the command line option -xrm resources. The text
resources should have the same format that you would use inside a file
of X resources. To include multiple resource specifications in
resources, put a newline between them, just as you would in a file.
You can also use #include "filename" to include a file full
of resource specifications. Resource values specified with -xrm
take precedence over all other resource specifications.
The following table lists the resource names that designate options
for Emacs, each with the class that it belongs to:
background (class Background)
- Background color name.
bitmapIcon (class BitmapIcon)
- Use a bitmap icon (a picture of a gnu) if
on, let the window
manager choose an icon if off.
borderColor (class BorderColor)
- Color name for the external border.
borderWidth (class BorderWidth)
- Width in pixels of the external border.
cursorColor (class Foreground)
- Color name for text cursor (point).
font (class Font)
- Font name for text (or fontset name, see Fontsets).
foreground (class Foreground)
- Color name for text.
geometry (class Geometry)
- Window size and position. Be careful not to specify this resource as
emacs*geometry, because that may affect individual menus as well
as the Emacs frame itself.
If this resource specifies a position, that position applies only to the
initial Emacs frame (or, in the case of a resource for a specific frame
name, only that frame). However, the size, if specified here, applies to
all frames.
iconName (class Title)
- Name to display in the icon.
internalBorder (class BorderWidth)
- Width in pixels of the internal border.
lineSpacing (class LineSpacing)
- Additional space (leading) between lines, in pixels.
menuBar (class MenuBar)
- Give frames menu bars if
on; don't have menu bars if off.
toolBar (class ToolBar)
- Number of lines to reserve for the tool bar. A zero value suppresses
the tool bar. If the value is non-zero and
auto-resize-tool-bars is non-nil, the tool bar's size
will be changed automatically so that all tool bar items are visible.
minibuffer (class Minibuffer)
- If
none, don't make a minibuffer in this frame.
It will use a separate minibuffer frame instead.
paneFont (class Font)
- Font name for menu pane titles, in non-toolkit versions of Emacs.
pointerColor (class Foreground)
- Color of the mouse cursor.
reverseVideo (class ReverseVideo)
- Switch foreground and background default colors if
on, use colors as
specified if off.
screenGamma (class ScreenGamma)
- Gamma correction for colors, equivalent to the frame parameter
screen-gamma.
selectionFont (class Font)
- Font name for pop-up menu items, in non-toolkit versions of Emacs. (For
toolkit versions, see Lucid Resources, also see LessTif Resources.)
synchronous (class Synchronous)
- Run Emacs in synchronous mode if
on. Synchronous mode is
useful for debugging X problems.
title (class Title)
- Name to display in the title bar of the initial Emacs frame.
verticalScrollBars (class ScrollBars)
- Give frames scroll bars if
on; don't have scroll bars if
off.
Here are resources for controlling the appearance of particular faces
(see Faces):
- face
.attributeFont
- Font for face face.
- face
.attributeForeground
- Foreground color for face face.
- face
.attributeBackground
- Background color for face face.
- face
.attributeUnderline
- Underline flag for face face. Use
on or true for
yes.
- face
.attributeFamily
- Font family for face face.
- face
.attributeWidth
- Relative proportional width of the font to use for face face.
It should be one of
ultra-condensed, extra-condensed,
condensed, semi-condensed, normal,
semi-expanded, expanded, extra-expanded, or
ultra-expanded.
- face
.attributeHeight
- Height of the font to use for face face: either an integer
specifying the height in units of 1/10pt, or a floating point
number that specifies a scale factor to scale the underlying face's
default font, or a function to be called with the default height which
will return a new height.
- face
.attributeWeight
- A weight to use for the face face. It must be one of
ultra-bold, extra-bold, bold,
semi-bold, normal, semi-light, light,
extra-light, ultra-light.
- face
.attributeSlant
- The slant to use for the font of face face. It must be one of
italic, oblique, normal,
reverse-italic, or reverse-oblique.
- face
.attributeStrikeThrough
- Whether the face face should be drawn with a line striking
through the characters.
- face
.attributeOverline
- Whether the characters in the face face should be overlined.
- face
.attributeBox
- Whether to draw a box around the characters in face face.
- face
.attributeInverse
- Whether to display the characters in face face in inverse
video.
- face
.attributeStipple
- The name of a pixmap data file to use for the stipple pattern, or
false to not use stipple for the face face.
- face
.attributeBackgroundPixmap
- The background pixmap for the face face. Should be a name of a
pixmap file or
false.
- face
.attributeBold
- Whether to draw the characters in the face face as bold.
- face
.attributeItalic
- Whether to draw the characters in the face face as italic.
|