You've probably dealt with X resources before, like the following ones from an OLC stock answer: xterm.Foreground: white 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 Often, the forms entries take on are: program*resource: value program.resource: value In widget programming this concept is expanded to program.widgetname.resource: value program.widgetname1.widgetname2.resource: value program.widgetname1.widgetname2.widgetname3.resource: value etc. wherewidget3 is inside widget2 is inside widget1. You could abbreviate that last one as *widgetname3.resource: value The * acts as a wildcard. If you peruse the Motif man pages, you'll see that widgets have resources that control just about everything about them. Their colors, fonts, position within other widgets. A great example of a file with this type of resource is /usr/athena/lib/X11/app-defaults/Olh The Athena on-line-help program is a motif application. It has lines in it like: *banner.topAttachment: ATTACH_FORM *banner.leftAttachment: ATTACH_FORM You could put that second one in your .Xresources file and change it to *banner.rightAttachment: ATTACH_FORM and olh would show up with its banner right-justified. You see, app-defaults files are just a special kind of X resource file. With X resources, you can totally specify the layout of your user interface. The only thing you can't normally do in X resources are specify what widgets are created. But with the Widget Creation library, you can. Today we'll look at a very short, simple motif program called Mri that pops up a user interface specified entirely in X resources. In the next class you'll start writing C to put functionality behind the interface.