X resources
Xresources is a user-level configuration dotfile, typically located at ~/.Xresources
. It can be used to set X resources, which are configuration parameters for X client applications.
They can do many operations, including:
- defining terminal colours
- configuring terminal preferences
- setting DPI, antialiasing, hinting and other X font settings
- changing the Xcursor theme
- theming xscreensaver
- altering preferences on low-level X applications (xclock (xorg-xclock), xpdf, rxvt-unicode, etc.)
Installation
Install the xorg-xrdb package.
Usage
Load resource file
Resources are stored in the X server, so have to only be read once. They are also accessible to remote X11 clients (such as those forwarded over SSH).
Load a resource file (such as the conventional .Xresources
), replacing any current settings:
$ xrdb ~/.Xresources
Load a resource file, and merge with the current settings:
$ xrdb -merge ~/.Xresources
xinitrc
If you are using a copy of the default xinitrc as your .xinitrc
it already merges ~/.Xresources
.
If you are using a custom .xinitrc
add the following line:
[[ -f ~/.Xresources ]] && xrdb -merge -I$HOME ~/.Xresources
Default settings
To see the default settings for your installed X11 apps, look in /usr/share/X11/app-defaults/
.
Detailed information on program-specific resources is usually provided in the man page for the program. xterm's man page is a good example, as it contains a list of X resources and their default values.
To see the current loaded resources:
xrdb -query -all
Xresources syntax
Basic syntax
The syntax of an Xresources file is as follows:
name.Class.resource: value
and here is a real world example:
xscreensaver.Dialog.headingFont: -*-fixed-bold-r-*-*-*-100-*-*-*-*-iso8859-1
- name
- The name of the application, such as xterm, xpdf, etc
- class
- The classification used to group resources together. Class names are typically uppercase.
- resource
- The name of the resource whose value is to be changed. Resources are typically lowercase with uppercase concatenation.
- value
- The actual value of the resource. This can be 1 of 3 types:
- Integer (whole numbers)
- Boolean (true/false, yes/no, on/off)
- String (a string of characters) (for example a word (
white
), a color (#ffffff
), or a path (/usr/bin/firefox
))
- delimiters
- A dot (
.
) is used to signify each step down into the hierarchy — in the above example we start at name, then descend into Class, and finally into the resource itself. A colon (:
) is used to separate the resource declaration from the actual value.
Wildcard matching
The asterisk can be used as a wildcard, making it easy to write a single rule that can be applied to many different applications or elements.
Using the previous example, if you want to apply the same font to all programs (not just XScreenSaver) that contain the class name Dialog
which contains the resource name headingFont
, you would write:
*Dialog.headingFont: -*-fixed-bold-r-*-*-*-100-*-*-*-*-iso8859-1
If you want to apply this same rule to all programs that contain the resource headingFont
, regardless of its class, you would write:
*headingFont: -*-fixed-bold-r-*-*-*-100-*-*-*-*-iso8859-1
Commenting
To add a comment to your Xresources file, simply prefix it with an exclamation mark (!
), for example:
! The following rule will be ignored because it has been commented out !Xft.antialias: true
Include files
To use different files for each application, use #include
in the main file. For example:
~/.Xresources
#include ".Xresources.d/xterm" #include ".Xresources.d/rxvt-unicode" #include ".Xresources.d/fonts" #include ".Xresources.d/xscreensaver"
If files fail to load, specify the directory to xrdb with the -I
parameter. For example:
~/.xinitrc
xrdb -I$HOME ~/.Xresources
Sample usage
The following samples should provide a good understanding of how application settings can be modified using an Xresources file. See [2] for more examples. Refer to the man page of the application in question otherwise.
Terminal colors
See Color output in console#Terminal emulators.
Xcursor
See Cursor themes#X resources.
Xft
See Font configuration#Applications without fontconfig support.
Xterm
See Xterm#Configuration.
rxvt-unicode
See Rxvt-unicode#Configuration.
Xpdf
See Options
in man xpdf.
Troubleshooting
Parsing errors
Display managers such as GDM may use the --nocpp
argument for xrdb.
See also
- Using the Xdefaults File - An in-depth article on how X interprets the Xdefaults file