Skip to content Accesskey=4Skip to sub-navigation Accesskey=3View our Accessibility Options MIT Information Systems Home About IS&T Contact IS&T Site Map Search Advanced Search
Getting StartedGetting Services by Topic or Alphabetically Getting Help

On This Page

[Help]

  

Quick Links

Top Level

Related Links

Ask OLC a question

Athena Consulting Homepage

Helpdesk Stock Answers (for Mac/PC questions)


How to use X RESOURCES

		       WHAT IS AN X-RESOURCES FILE?

Users can customize the look of programs that use an X interface with
entries in an X resources file.  On Athena, this file is named
.Xresources, and needs to reside at the top level of a user's home
directory in order for it to work.  Examples of customizations include
changing the geometry and size of an application, or the colors that the
program uses.


		WHAT DO I NEED TO KNOW TO USE X RESOURCES?

To specify resources for a program using your .Xresources file, you first
must know the resource you want to specify, and the program's instance or
class.

You can find the resources for a program by checking the X manual page,
for standard resources that are used by programs written with the X
Toolkit Intrinsics, and by checking that program's manual page, for
resources specific to that program.  For example, to find the resources
for the program "xterm," you would type:

	man xterm

By convention, the default instance for an X program is just its name, and
the class is just its name with the first letter capitalized, unless the
first letter is an "X," in which case the first two letters are
capitalized.  For example, the "xterm" program's instance is "xterm" and
its class is "XTerm," and the program "mwm" has "mwm" as an instance, and
"Mwm" as a class.  

The unfortunate thing about finding out the class and instance of a
given program is that by convention, many X programmers are
unconventional.  If this is the case, just start up the X program in
question, type "xprop" at a unix prompt, and then click in the window
of the X program.  This will give you the class and instance of the
program.  For example, using xprop on an "xterm" window gives:

	WM_CLASS(STRING) = "xterm", "XTerm"


		      HOW DO I USE X RESOURCES?

Entries in the .Xresources file have a variety of different, but
similar, forms.  Explaining them all here would be take too much
detail.  If you need more information than what is here, please read
the X manual page.

Generally, the forms entries take on are:

	class*resource: value
	instance*resource: value
	class.resource: value
	instance.resource: value

The first element in a resource specification is either a "class" or
an "instance".  A class consists of ALL the invocations of a
particular program.  An instance is a process which is given a
particular name.

For example, XTerm is a class.  All xterms you start up, no matter how
they are started up fall under this class (and as such all the
resources starting with this class will apply to it).  However, you
can also start up an xterm like this:

	xterm -name xterm-big

This process will have a class of XTerm, but an instance of xterm-big.
So, you could create resources like this:

	XTerm*reverseVideo:   	    on
	xterm*VT100.geometry:       80x24
	xterm-big*VT100.geometry:   80x48
	xterm-small*VT100.geometry: 80x10

where EVERY xterm you start up will have reverse video on, but one
started with the '-name xterm-big' option will have one geometry, one
started with the '-name xterm-small' option will have another, and one
started with no specific name will default to the name 'xterm' and
have yet a different geometry. (The VT100 designation is used to
indicate that the geometry is for the main text window, and not the
menus or subwindows.)

The resource name (e.g. 'geometry' in your above example) is a
particular aspect of an X program.  Be careful when spelling resource
names.  Only particular spellings of resources are correct.  Example:
'reverseVideo' and 'ReverseVideo' will function correctly as xterm
resources, but not other spellings.

Other examples are:

	oneko*tora: true

	matlab*reverseVideo: false   ! matlab windows in "reverse video"

	emacs*Font: 8x13             ! emacs with 8x13 font, 80 columns
	emacs*geometry: 80x48+0+0    !   wide, 48 columns high

	XTerm*scrollBar: on	     ! Xterms with a scrollbar that
	XTerm*saveLines: 250	     !   keep track of last 250 lines

	XTerm*VT100.geometry:80x48+0+0  ! Make only the main xterm
					!   window be 80x48


In these examples, the difference between the "*" (a loose binding)
and the "." (a tight binding) is that the * causes the resource to be
applied to all the children windows within the top-level window (such
as menus), whereas the dot causes the resource to be applied only to
the top-level window of the program.


		      MISCELLANEOUS INFORMATION
				     
-The exclamation mark (!), is used to comment a line in the .Xresources
 file.
 
-Instance names are considered more specific than class names.  If you
 use both the class and instance names of a program to specify a
 resource with different values, the instance resource value will be
 used.  For example:

	xterm*Background: blue

 will be used, instead of:

	XTerm*Background: green

-To re-read your .Xresources file, and throw away your old resources,
 you can type:
 
 	xrdb ~/.Xresources
 
-To re-read your .Xresources file, and keep your old resources, type:
 
 	xrdb -merge ~/.Xresources
 
-This will merge any new resources you've put in with the current
 resources you're using.
 
-For Athena programs, the default resources for programs with an X
 interface are kept in the directory /usr/athena/lib/X11/app-defaults.
 
-You don't actually need the class or instance name of a program to
 make a customization.  For example, if you wanted to make the same
 customization for all X-driven programs, you put an entry of the form:
 
	*resource: value
 
 in your .Xresources file.

-Avoid blank spaces at the beginning and end of lines in the
 .Xresources file.

-You can find sample Xresources files by typing "attach dotfiles" and
 looking in the directory /mit/dotfiles/Xresources.

-You can change the instance of many X programs by starting them with
 the -name option.  For example, if you start an xterm window by
 typing "xterm -name XT1", then you can specify resources for it in
 your .Xresources file with "XT1,", like this:

	XT1*Background: yellow

MIT Home | Getting Started | Getting Services | Getting Help | About IS&T | Accessibility
Ask a technology question or send a comment about this web page.