Xrdb is used to get or set
the contents of the RESOURCE_MANAGER property on the root window of screen
0, or the SCREEN_RESOURCES property on the root window of any or all screens,
or everything combined. You would normally run this program from your X
startup file.

Most X clients use the RESOURCE_MANAGER and SCREEN_RESOURCES
properties to get user preferences about color, fonts, and so on for applications.
Having this information in the server (where it is available to all clients)
instead of on disk, solves the problem in previous versions of X that required
you to maintain defaults files on every machine that you might use. It
also allows for dynamic changing of defaults without editing files.

The
RESOURCE_MANAGER property is used for resources that apply to all screens
of the display. The SCREEN_RESOURCES property on each screen specifies
additional (or overriding) resources to be used for that screen. (When there
is only one screen, SCREEN_RESOURCES is normally not used, all resources
are just placed in the RESOURCE_MANAGER property.)

The file specified by
filename (or the contents from standard input if - or no filename is given)
is optionally passed through the C preprocessor with the following symbols
defined, based on the capabilities of the server being used:

the vendor release
number for the server. The interpretation of this number will vary depending
on VENDOR.

REVISION=num

the X protocol minor version supported by this server
(currently 0).

VERSION=num

the X protocol major version supported by this
server (should always be 11).

VENDOR="vendor"

a string literal specifying
the vendor of the server.

VNDR_name

the VENDOR name string turned into a
legal identifier. For example, "MIT X Consortium" becomes VNDR_MIT_X_Consortium.

EXT_name

A symbol is defined for each protocol extension supported by the
server. Each extension string name is turned into a legal identifier. For
example, "X3D-PEX" becomes EXT_X3D_PEX.

NUM_SCREENS=num

the total number
of screens.

SCREEN_NUM=num

the number of the current screen (from zero).

BITS_PER_RGB=num

the number of significant bits in an RGB color specification.
This is the log base 2 of the number of distinct shades of each primary
that the hardware can generate. Note that it usually is not related to
PLANES.

CLASS=visualclass

one of StaticGray, GrayScale, StaticColor, PseudoColor,
TrueColor, DirectColor. This is the visual class of the root window.

CLASS_visualclass=visualid

the visual class of the root window in a form you can #ifdef on. The value
is the numeric id of the visual.

COLOR

defined only if CLASS is one of StaticColor,
PseudoColor, TrueColor, or DirectColor.

CLASS_visualclass_depth=num

A symbol
is defined for each visual supported for the screen. The symbol includes
the class of the visual and its depth; the value is the numeric id of the
visual. (If more than one visual has the same class and depth, the numeric
id of the first one reported by the server is used.)

HEIGHT=num

the height
of the root window in pixels.

WIDTH=num

the width of the root window in
pixels.

PLANES=num

the number of bit planes (the depth) of the root window.

X_RESOLUTION=num

the x resolution of the screen in pixels per meter.

Y_RESOLUTION=num

the y resolution of the screen in pixels per meter.

SRVR_name, CLNT_name,
VNDR_name, and EXT_name identifiers are formed by changing all characters
other than letters and digits into underscores (_).

Lines that begin with
an exclamation mark (!) are ignored and may be used as comments.

Note that
since xrdb can read from standard input, it can be used to the change the
contents of properties directly from a terminal or from a shell script.

This option (or
any unsupported option) will cause a brief description of the allowable
options and parameters to be printed.

-display display

This option specifies
the X server to be used; see X(7)
. It also specifies the screen to use for
the -screen option, and it specifies the screen from which preprocessor
symbols are derived for the -global option.

-all

This option indicates that
operation should be performed on the screen-independent resource property
(RESOURCE_MANAGER), as well as the screen-specific property (SCREEN_RESOURCES)
on every screen of the display. For example, when used in conjunction with
-query, the contents of all properties are output. For -load, -override and
-merge, the input file is processed once for each screen. The resources
which occur in common in the output for every screen are collected, and
these are applied as the screen-independent resources. The remaining resources
are applied for each individual per-screen property. This the default mode
of operation.

-global

This option indicates that the operation should only
be performed on the screen-independent RESOURCE_MANAGER property.

-screen

This option indicates that the operation should only be performed on the
SCREEN_RESOURCES property of the default screen of the display.

-screens

This option indicates that the operation should be performed on the SCREEN_RESOURCES
property of each screen of the display. For -load, -override and -merge, the
input file is processed for each screen.

-n

This option indicates that changes
to the specified properties (when used with -load, -override or -merge) or
to the resource file (when used with -edit) should be shown on the standard
output, but should not be performed.

-quiet

This option indicates that warning
about duplicate entries should not be displayed.

-cpp filename

This option
specifies the pathname of the C preprocessor program to be used. Although
xrdb was designed to use CPP, any program that acts as a filter and accepts
the -D, -I, and -U options may be used.

-nocpp

This option indicates that xrdb
should not run the input file through a preprocessor before loading it
into properties.

-symbols

This option indicates that the symbols that are
defined for the preprocessor should be printed onto the standard output.

-query

This option indicates that the current contents of the specified
properties should be printed onto the standard output. Note that since
preprocessor commands in the input resource file are part of the input
file, not part of the property, they won't appear in the output from this
option. The -edit option can be used to merge the contents of properties
back into the input resource file without damaging preprocessor commands.

-load

This option indicates that the input should be loaded as the new value
of the specified properties, replacing whatever was there (i.e. the old contents
are removed). This is the default action.

-override

This option indicates
that the input should be added to, instead of replacing, the current contents
of the specified properties. New entries override previous entries.

-merge

This option indicates that the input should be merged and lexicographically
sorted with, instead of replacing, the current contents of the specified
properties.

-remove

This option indicates that the specified properties
should be removed from the server.

-retain

This option indicates that the
server should be instructed not to reset if xrdb is the first client. This
never be necessary under normal conditions, since xdm and xinit always
act as the first client.

-edit filename

This option indicates that the contents
of the specified properties should be edited into the given file, replacing
any values already listed there. This allows you to put changes that you
have made to your defaults back into your resource file, preserving any
comments or preprocessor lines.

-backup string

This option specifies a suffix
to be appended to the filename used with -edit to generate a backup file.

-Dname[=value]

This option is passed through to the preprocessor and is
used to define symbols for use with conditionals such as

-Uname

This option
is passed through to the preprocessor and is used to remove any definitions
of this symbol.

-Idirectory

This option is passed through to the preprocessor
and is used to specify a directory to search for files that are referenced
with #include.