I want to customize the look and feel of my xterm and have read that the way to do it is creating a .Xresources file and saving there the desired configuration. I've also learned that this file can control so much more than just the look of xterm, for example the screensaver and the mouse, among other things. My question would then be: if I create a .Xresources file and just write the settings for xterm, what happens to my screensaver, mouse and other stuff controled by .Xresources?


Only the values you explicitly define in your $HOME/.Xresources will override the system defaults.

So you could specify some settings as sugested by the Arch Wiki, and they would apply to any instances of xterm opened by your user, but all other settings would remain unchanged.


In a .Xresources file, settings consist of a resource name and a value. A resource name has several components separated by a dot. The first component is the name of the application, subsequent components are widgets in the application, and the last component is a setting of the widget.

A component name that starts with a capital letter is a class. For an application, that's the application name (e.g. XTerm for Xterm, unless overridden with the -class command line option). For a widget or individual setting, that's the type of widget or setting.

A component name that starts with a lowercase letter is an instance. For an application, that's the name of the executable (e.g. xterm, unless executed under a different name such as uxterm or overridden with -name).

You can also use the wildcard ? as a component name, and * to mean any sequence of subcomponents (so * means . or .?. or .?.?. or …).

Any resource specification that doesn't start with a wildcard will only apply to the specified application. (In practice, you can't really make useful non-application-specific resource specifications, as there's no unification in widget names.)

Any resource specification in .Xresources (or loaded otherwise) overrides the application's built-in defaults for that resource. (If wildcards are involved, complex precedence rules apply.) Other resources are not affected. Thus you don't need to copy any of the default settings, just write the ones you want to overwrite.

There's one exception of sorts: if you define key bindings, these are all specifies in a single resource (in the Translations class), so your set of bindings replaces the default set. To augment the default set instead, start the translation table with #override. Appendix B of the Xt Intrinsics documentation has all the details of the translation table syntax, but you don't need to read that, the examples in the Xterm man page are enough to grasp the useful bits.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.