Next: , Previous: Text Terminal Colors, Up: Frames

29.22 X Resources

This section describes some of the functions and variables for querying and using X resources, or their equivalent on your operating system. See X Resources, for more information about X resources.

— Function: x-get-resource attribute class &optional component subclass

The function x-get-resource retrieves a resource value from the X Window defaults database.

Resources are indexed by a combination of a key and a class. This function searches using a key of the form ‘instance.attribute’ (where instance is the name under which Emacs was invoked), and using ‘Emacs.class’ as the class.

The optional arguments component and subclass add to the key and the class, respectively. You must specify both of them or neither. If you specify them, the key is ‘instance.component.attribute’, and the class is ‘Emacs.class.subclass’.

— Variable: x-resource-class

This variable specifies the application name that x-get-resource should look up. The default value is "Emacs". You can examine X resources for application names other than “Emacs” by binding this variable to some other string, around a call to x-get-resource.

— Variable: x-resource-name

This variable specifies the instance name that x-get-resource should look up. The default value is the name Emacs was invoked with, or the value specified with the ‘-name’ or ‘-rn’ switches.

To illustrate some of the above, suppose that you have the line:

     xterm.vt100.background: yellow

in your X resources file (whose name is usually ~/.Xdefaults or ~/.Xresources). Then:

     (let ((x-resource-class "XTerm") (x-resource-name "xterm"))
       (x-get-resource "vt100.background" "VT100.Background"))
          ⇒ "yellow"
     (let ((x-resource-class "XTerm") (x-resource-name "xterm"))
       (x-get-resource "background" "VT100" "vt100" "Background"))
          ⇒ "yellow"
— Variable: inhibit-x-resources

If this variable is non-nil, Emacs does not look up X resources, and X resources do not have any effect when creating new frames.