AWM(1) User Commands AWM(1)

NAME


awm - Window Manager X Client Application

SYNOPSIS


awm [ -f filename ] [ -e execfile ] [ -b ] [ -i ]

DESCRIPTION


The awm command is a window manager client application of the window
server. It is heavily based on an earlier work by M. Gancarz of
Digital Equipment Corporation (see the end of this document for
appropriate acknowledgments).

When awm is invoked, it traces a predefined search path to locate any
awm startup files. If no startup files exist, awm initializes itself
from a built-in default file.

If startup files exist in any of the following locations, their
contents are merged together to create awm's configuration. In the
case of contention, the bindings in the last file found override
previous specifications. Files in the awm search path are:
$LIBDIR/awm/system.awmrc (where $LIBDIR is defined in awm's Makefile)
$HOME/.awmrc

To use only the settings defined in a single startup file, include
the variables, resetbindings, resetmenus and resetgadgets at the top
of that specific startup file.

OPTIONS


-f filename
Names an alternate file as an awm startup file.

-e execfile
Names a file to exec (typically a shell script invoking other
clients) after all startup files have been loaded. This is
useful for minimizing the number of map/unmaps that occur when
titlebars are added.

-b Causes awm to ignore the system startup file.

-i Causes awm to ignore $HOME/.awmrc.

STARTUP FILE VARIABLES


Variables are typically entered first, at the top of the startup
file. Because of a merge with the resource manager, very few
variables are set here now. The directives resetbindings, resetmenus
and resetgadgets are still allowed, as are gadget declarations of the
form:
gadget[n]=expr

Where n is a positive integer indicating the gadget to initialize and
expr is one of the following:

string or "string" [ ^ attributes ]
Set the name of the gadget to string. The name will be painted
in the gadget box with the gadget.font resource or an
overriding font attribute (see below). string may contain
embedded non-alphanumeric characters in the form of \# where #
is one or more decimal digits (i.e. \54) or \c where c is a
character in the standard C string literal set (i.e. n, r, t,
f). This is useful if you've specified a gadget font with
glyphs in it (such as cursor) and you want to paint a specific
glyph from it in a gadget box. Many such glyphs are not
represented by ascii characters.

(string) [ ^ attributes ]
Load a pixmap from the file named by string and tile the
gadget with it (see also: path).

Additional attributes may be specified after a '^' (caret) character
in the form:

offset|gravity|foreground|background|font
Any omitted parameters will be set to default values.

offset is an integer specifying how far to place this gadget
from its nearest neighbor (or an edge). Default offset is
gadget.pad, or 2 if gadget.pad is not defined.

gravity is one of NoGravity, LeftGravity, RightGravity or
CenterGravity. NoGravity specifies that the gadget is to be
placed opposite of wherever the last gadget was placed.
LeftGravity specifies that the gadget should stick to the left
of the title bar, RightGravity to the right and CenterGravity
to the center.

foreground and background specify the colors used to tile the
gadget or draw the text.

font is the name of the font you want the gadget's name drawn
in. This overrides the gadget.font setting for this gadget.

The default values for attributes are 0, NoGravity, black
(reverse: white) and white (reverse: black), the setting of
gadget.font.

It is important to note that in the absence of a gravity
specification (i.e. we've defaulted to NoGravity), the window manager
will automatically place a gadget on the side opposite of the last
gadget placed. If it's the first gadget placed, it will go to the
right. Thus in the absence of any gravity (or offset)
specifications, the window manager will place gadgets in a right-
left-right fashion until all gadgets have been placed.

For example:
gadget[0] = "die"
gadget[1] = (resize.b) ^ 2 | red | orange
gadget[2] = (iconbox.b) ^ | LeftGravity
gadget[3] = "\56" ^ | LeftGravity | green | black | cursor

These declarations will create 4 gadget boxes, situated in the
following manner:

The first gadget box will be created wide enough to print the word
"die" in it (in whatever gadget font has been defined) and will be
placed on the right side (since it hasn't chosen a gravity) against
the edge (since it hasn't chosen an offset). Background and
foreground colors will be black and white (assignment depending on
whether reverse is set).

The second gadget box will be tiled with the contents of the file
"resize.b" (assuming that it's a valid bitmap file) and will go on
the left side (since it also has no gravity and the last one went on
the right). It will be offset from the edge by 2 pixels since there
was an offset for it. Foreground will be red, background will be
orange.

The third gadget will be tiled with the contents of "iconbox.b" and
will be placed against the second gadget on the left hand side since
we specified a gravity. Colors will be black and white (depending on
reverse).

The fourth gadget will display glyph #56 from the cursor font in
green and black (it's gumby of course).

IMPORTANT: Gadgets may be declared in any order, but you are not
allowed to leave gaps, i.e..it's perfectly acceptable to declare
gadgets in the order 0, 2, 3, 1, but not legal to declare gadgets in
the order 0, 3, 2, 4 as gadget #1 has been omitted. This restriction
may be removed in the future, but for now you'll get a diagnostic and
awm will exit.

All other variables controlling window manager behavior are described
in the X DEFAULTS section of this man page.

BINDING SYNTAX


Mouse buttons may be bound to particular window manager functions
with:
"function=[modifier key(s)]:[context]:mouse events:" menu name "
or
"function=[modifier key(s)]:[context]:mouse events:" text action "

Function and mouse events are the only required fields. The menu
name is required with the f.menu function definition only.
Similarly, text action is required only with the f.action function
definition.

Function
f.action
Invokes a text action. `text' should be in quotes with a
preceding "action" character (one of '^', '!' or '|'). The
syntax is identical to menu text actions which are discussed
in greater detail under the Menus section of this document.
f.action=[modifier key(s)]:[context ]:mouse events:action" text "

f.beep emits a beep from the keyboard. Loudness is
determined by the volume variable.

f.circledown causes the top window that is obscuring another window
to drop to the bottom of the stack of windows.

f.circleup exposes the lowest window that is obscured by other
windows.

f.continue releases the window server display action after you
stop action with the f.pause function.

f.destroy calls XKillClient on the selected window. Use with
caution!! Binding it to naked mouse buttons is
probably not a good idea!

f.exit exits the window manager. If you've started awm from
xinit (actually sort of useful now that the -e flag
has been added), this will also exit the window
system.

f.focus directs all keyboard input to the selected window. To
reset the focus to all windows, invoke f.focus from
the root window.

f.iconify When implemented from a window, this function converts
the window to its respective icon. When implemented
from an icon, f.iconify converts the icon to its
respective window.

f.lock locks the screen by displaying random (and somewhat
pretty) patterns. The lock can be exited by typing in
your password or pulling the power cord for your
system out of its socket.

f.lower lowers a window that is obstructing a window below it.

f.menu invokes a menu. Enclose `menu name' in quotes if it
contains blank characters or parentheses.
f.menu=[modifier key(s)]:[context ]:mouse events:" menu name "

f.move moves a window or icon to a new location, which
becomes the default location.

f.moveopaque moves a window or icon to a new screen location. When
using this function, the entire window or icon is
moved to the new screen location. The grid effect is
not used with this function.

f.neaten neatens the desktop using the RTL neaten package. See
the X DEFAULTS for the resources necessary to
customize this somewhat complex feature. This
function only works if awm has been compiled with the
-DNEATEN flag (which compiles in the neaten package).
Invoking this function without this is a noop (though
a warning diagnostic is printed to stderr). See the
INSTALLATION section of the README document for more
details.

f.newiconify allows you to create a window or icon and then
position the window or icon in a new default location
on the screen.

f.pause temporarily stops all display action. To release the
screen and immediately update all windows, use the
f.continue function.

f.pushdown moves a window down. The distance of the push is
determined by the push variables.

f.pushleft moves a window to the left. The distance of the push
is determined by the push variables.

f.pushright moves a window to the right. The distance of the push
is determined by the push variables.

f.pushup moves a window up. The distance of the push is
determined by the push variables.

f.raise raises a window that is being obstructed by a window
above it.

f.refresh results in exposure events being sent to the window
server clients for all exposed or partially exposed
windows. The windows will not refresh correctly if
the exposure events are not handled properly.

f.resize resizes an existing window. Note that some clients,
notably editors, react unpredictably if you resize the
window while the client is running.

f.restart causes the window manager application to restart,
retracing the awm search path and initializing the
variables it finds.

f.[no]decorate adds or removes "decorations" on the selected window.
What decorations are added (or deleted) depends on the
settings of various booleans and client-specific
resources (see: SPECIAL RESOURCES).

The booleans titles, gadgets and borderContext.width
currently influence awm's choice of default
decorations.

Modifier Keys
It is preferable to use meta as a modifier key for awm (or any other
window manager, for that matter), but one may also use ctrl, shift,
lock, or null (no modifier key). Modifier keys must be entered in
lower case, and can be abbreviated as: c, l, m, s for ctrl, lock,
meta, and shift, respectively. It's also permissible to refer to the
the modifier keys directly as "mod1, mod2, mod3, mod4 or mod5". A
mouse button with no modifier key(s) is often referred to as a
"naked" mouse button.

You may bind any number of modifier keys to a function, use the bar
(|) character to combine them.

Context
The context refers to the screen location of the cursor when a
command is initiated. When you include a context entry in a binding,
the cursor must be in that context or the function will not be
activated. The window manager recognizes the following seven
contexts: icon, window, root, title, gadget[n] (where n is the gadget
number), border and (null).

The icon context refers to any icon and may be safely bound without
interfering with window events.

The window context refers to application windows and should be used
carefully to avoid usurping button events that applications may want
for their own purposes.

The root context refers to the root, or background window.

The title context refers to the titlebar area of a window, if one
exists.

The gadget context (with mandatory index) specifies a given gadget
box. Binding to a gadget that's undefined (not initialized to
anything) is an error.

The border context refers to the artificial border area created when
the resource borderContext.width is defined (see borderContext.width
under X DEFAULTS). Using this context when no border area exists
(i.e. borderContext.width is not defined) is a noop.

A (null) context is indicated when the context field is left blank,
and allows a function to be invoked from any screen location. This is
basically equivalent to specifying all the possible contexts.

Combine contexts using the bar (|) character.

Mouse Buttons
Any of the following mouse buttons are accepted (in lower case) and
may be abbreviated as l, m, or r, respectively: left, middle, right.

With the specific button, you must identify the action of that
button. Mouse actions can be:

down function occurs when the specified button is pressed down.

up function occurs when the specified button is released.

delta indicates that the mouse must be moved the number of pixels
specified with the delta variable before the specified
function is invoked. The mouse can be moved in any
direction to satisfy the delta requirement.

MENU DEFINITION


After binding a set of function keys and a menu name to f.menu, you
must define the menu to be invoked, using the following syntax:
menu = (string) " menu name " {
"item name" : "action"
.
.
.
}

The string in parenthesis is an optional argument which names a
pixmap file (see also: path) to use as the menu title rather than
just using the name of the menu. This is generally only useful if
you're using pixmaps for the menu panes as well (see below). Though
the menu name isn't displayed when you specify string, you still need
to specify one for awm to use when looking up the binding to it.

Enter the menu name exactly the way it is entered with the f.menu
function or the window manager will not recognize the link. If the
menu name contains blank strings, tabs or parentheses, it must be
quoted here and in the f.menu function entry. If you haven't chosen
to display a pixmap title in string, the menu name will be displayed
at the top of the menu in whatever font has been chosen for
menu.boldFont (or its default).

You can enter as many menu items as your screen is long. You cannot
scroll within menus.

Any menu entry that contains quotes, special characters, parentheses,
tabs, or strings of blanks must be enclosed in double quotes. Follow
the item name by a colon (:).

A special case is an item surrounded by parenthesis, which designates
the item name as the name of a pixmap file to tile the menu pane
with. Given a pixmap for the menu title as well (see above), it's
possible to create menus that are totally pictorial in nature. There
are, however, two caveats. Due to the fact that it's easier to do,
the pixmaps are used as backgrounds for the menu panes rather than
painting them on whenever a given pane in exposed. This has rather
ugly consequences if one of the pixmaps (or a line of text if a pane
is textual) is larger than the others. Since the server replicates
pixmaps over the entire window, it results in a "wallpaper" effect on
the smaller pixmaps. The solution is to make all the pixmaps the same
size and/or not mix in any text items that will need a wider pane.

The second problem is that the check marks and pull-right indicators
are always displayed in fixed positions on the right and left edges
of menu panes. If your pixmaps try to use this real-estate, they may
be partially covered by a check mark or pull-right pixmap. Design
your menus with this in mind.

Menu Action
Window manager functions
Any function previously described, e.g., f.move or f.iconify.
Using f.menu results in a pull-right pane which you can use to
"walk" between menus (see below). A "walk" can be done by
moving the cursor onto the pull-right arrow displayed at the
right edge of the pane, or by clicking another button in the
pane while holding the original one down.

Walking menus
Select the function f.menu and separate it from the menu name
with a colon (:) i.e.
menu = "foo" {
Walking Menu: f.menu: "NextMenu"
}

Text actions
There are two kinds of special "actions" involving arbitrary
strings of text. These are:

Shell commands
Begin with an exclamation point (!) and set to run in
background. You cannot include a new line character within a
shell command.

Text strings
Text strings are placed in the window server's cut buffer. The
strings must be preceded by one of:

A carat (^), which is stripped off, signifies that the string
will automatically be followed by a newline (I.E using '^'
causes one to be added at the end).

A vertical bar (|), also stripped off, signifies the the
string should not end with a newline.

Booleans
Any boolean variable previously described, e.g., reverse or
autoraise. The current state of a boolean variable in a menu
will be indicated with a check mark (a check mark means the
boolean is set to true). Note that the boolean is *not*
preceded by "awm." as it is in the resource database.

SPECIAL NOTE:

Menus bound to title bars, gadget boxes or borders cause (where
logical) the selected menu action to occur automatically on the
client window as opposed to having to select a window for the action.
However, actions requiring mouse tracking (i.e. move, resize) will
usually not work well in this context. While this limitation will be
eliminated in the near future, it is suggested that you use this
feature to do things that do not require mouse tracking, such as
raise, lower, iconify, etc.

Color Defaults
Colors default to the colors of the root window under any of the
following conditions:

1) If you run out of color map entries, either before or during
an invocation of awm.

2) If you specify a foreground or background color that does not
exist in the RGB color database ($LIBDIR/rgb.txt).

3) If you omit a foreground or background color.

4) If you specify no colors in the resource database.

X DEFAULTS


A number of variables that used to be specified in the .uwmrc file
(of uwm, for those familiar with it) are now retrieved from the
resource database. When a value cannot be found, a default (compiled
into awm) is substituted. A much wider range of options can be
specified this way and it is suggested that you read the following
section carefully before bringing up awm.

In the descriptions below, variable names are listed in boldface,
their type in parenthesis, and their default value in double quotes.
All resources are preceded by an implied "awm.", as is the standard.
I.E. "autoraise" would be specified as: "awm.autoraise: ..." in the
resource database.


autoraise (boolean) ``off''
Automatically raise a window to the top when it gains the
input focus. See also: raiseDelay

autoselect (boolean) ``off''
Specifies that the pointer be placed over the first item in a
menu, rather than the title, when the menu is popped up.

background (string)
The default background color for all other color choices in
awm. If reverse is not set, this defaults to white, otherwise
it defaults to black. References to background in this
document refer to this resource.

border.foreground (boolean) ``foreground''
Specifies the border color to use for all windows (this color
may be drawn solid or stippled, depending on the window focus
and the setting of border.hilite).

border.hilite (boolean) ``on''
Specifies whether or not window border colors are to be
changed on focus changes. On focus in, the window border is
changed to solid border.foreground. On focus out, it is
changed to a "gray" stipple.

borderContext.background (string) ``background''
Background color to use for border context pixmap. Value is
meaningless if borderContext.width and borderContext.pixmap
are undefined.

borderContext.boldPixmap (string) ``none''
The name of a pixmap file to load and tile the border context
area with when the focus is in. If this is defined, and hilite
is set, focus changes will cause the border context background
to alternate between borderContext.pixmap and
borderContext.boldPixmap. If borderContext.boldPixmap is
defined, but borderContext.pixmap is not, a blank pixmap will
be used in place of borderContext.pixmap.

borderContext.cursor (int) ``XC_cross''
Glyph (in decimal) to retrieve from cursor font for use in
border context.

borderContext.foreground (string) ``foreground''
Foreground color to use for border color pixmap. Value is
meaningless if borderContext.width and borderContext.pixmap
are undefined.

borderContext.pixmap (string) ``background
Pixmap to display as border context area background. Value is
meaningless is borderContext.width is undefined (or set to
zero). Used exclusively as the background unless
borderContext.boldPixmap and hilite are defined.

borderContext.width (int) ``0''
Number of pixels wide to make the border context. Though
functions may be bound to the border context (see: Context)
without setting this, they will be impossible to invoke due to
the fact that there will be nothing to click on. The border
context should not be confused with the actual window border.
It is an artificial area around each window that resembles a
border.

delta (int) ``1''
Number of pixels that must be moved over before a "delta"
action is taken (see: BINDING SYNTAX).

foreground (string)
The default foreground color for all other color choices in
awm. If reverse is not set, this defaults to black, otherwise
it defaults to white. References to foreground in this
document refer to this resource.

frameFocus (boolean) ``off''
[De]highlight when the pointer [leaves] enters the "frame" of
the window (the frame includes the client window, title bar
and border context areas, if present). Setting this option
also causes the focus to follow the pointer so that keyboard
input will go the the client regardless of where the pointer
is in the "frame".

freeze (boolean) ``off''
Lock out all other clients during certain window manager
tasks, such as move and resize.

gadget.border (int) ``1''
The width of all gadget borders in pixels.

gadget.font (string) ``fixed''
Which font to use for (textual) gadget labels.

gadget.pad (int) ``3''
The number of pixels to pad a gadget from its neighbor if it
has no offset defined.

gadgets (boolean) ``off''
Display gadgets in title bars, if any are declared.

grid (boolean) ``off''
Display a finely ruled grid when positioning or resizing
windows/icons.

hilite (boolean) ``off''
Causes the following actions to occur when a window gains the
input focus:
1. If showName is on:

1a. If title.boldFont is defined, the window name is redrawn
in this font.

1b. If it's not, then the window name is redrawn in reverse video.

2. If title.boldPixmap is defined, the background of the title bar
is set to it.

3. If borderContext.boldPixmap is defined, the background of the border
context area is set to it.

On focus out, the window name is redrawn in title.font the
title background to title.pixmap and the border context to
borderContext.pixmap, respectively.

If border.hilite is undefined, this variable will set it
automatically.

Note that most icon variables only affect icons owned by awm. Except
for foreground and background colors, client created icons are left
alone.

icon.background (string) ``background''
Icon (pixmap) background color.

icon.backpixmap (string) ``grey''
Pixmap to display as icon background for text icons. Note
that this pixmap is only used for "text" icons, I.E. icons in
the uwm style of a line of editable text. This should
typically be cross hatch pattern or some similar background
weave that will be displayed surrounding the text. For
"pictorial" icons, use icon.defpixmap. See also: path,
icon.foreground, icon.background, icon.defpixmap.

icon.border (string) ``icon.foreground''
Color to use for icon borders.

icon.borderWidth (int) ``2''
Width of icon border in pixels.

icon.defpixmap (string) ``xlogo''
For windows that don't specify their own pixmaps, use this
image. This is only useful if icon.labels is turned on.

icon.font (string) ``8x13''
Which font to use for icon text.

icon.foreground (string) ``foreground''
Icon (pixmap) foreground color.

icon.hPad (int) ``2''
Number of pixels to pad icon text horizontally.

icon.labels (boolean) ``off''
Specifies that icons should be displayed in the "twm" style.
I.E. The icon pixmap (or icon.defpixmap if the window has no
icon pixmap) with the icon name displayed underneath (or
above, if icon.labelTop is set).

icon.labelTop (boolean) ``off''
Specifies that "labeled" icons should have the text portion
displayed on top, rather than the bottom. Only useful if
icon.labels is set.

icon.vPad (int) ``2''
Number of pixels to pad icon text vertically.

icon.text.background (string) ``icon.background''
Background color to use for icon text.

icon.text.foreground (string) ``icon.foreground''
Foreground color to use for icon text.

installColormap (boolean) ``false''
Install a given window's colormap when the pointer enters it.
When the pointer leaves, the default colormap is installed.

menu.background (string) ``background''
Menu background color.

menu.boldFont (string) ``8x13bold''
Which font to use for (textual) menu panes. Currently, the
only pane using this font is the title pane (unless, of
course, it's a pixmap).

menu.border (string) ``foreground''
Menu border color.

menu.borderWidth (int) ``2''
Width of menu border in pixels.

menu.delta (int) ``20''
Number of pixels to move on a "pull-right" pane before the
submenu attached to it is popped up.

menu.font (string) ``8x13''
Which font to use in (textual) menu panes.

menu.foreground (string) ``foreground''
Menu foreground color.

menu.itemBorder (int) ``1''
Width of individual (menu) item borders.

menu.pad (int) ``2''
Number of pixels to pad menu text/pixmaps vertically.

The following resources pertain only to the RTL Neaten package and
are ignored if awm has not been compiled with that option (see the
INSTALLATION file).

neaten.absMinWidth (int) ``64''
Indicates the amount of space in pixels, that is used as the
absolute minimum width of a window during the neaten
operation.

neaten.absMinHeight (int) ``64''
Indicates the amount of space in pixels, that is used as the
absolute minimum height of a window during the neaten
operation.

neaten.retainSize (boolean) ``true''
Forces to windows to be at least their current size. Windows
may overlap as a side effect.

neaten.fill (boolean) ``true''
Allows windows to grow to their maximum size during the neaten
operation. Normally a window will grow only to the maximum of
its desired (based on the WM_NORMAL_HINTS property) and
current size.

neaten.fixTopOfStack (boolean) ``true''
Fixes the size and location of the window at the top of the
window hierarchy. If necessary, this window will overlap
even other windows which can not be tiled.

neaten.keepOpen (boolean) ``true''
Constrains all windows to remain open during the neaten
operation. No windows will be iconized. This operation may
cause windows to overlap.

neaten.usePriorities (boolean) ``true''
Assigns the windows priorities based on their stacking order
(windows closer to the top in the stacking order are given
higher priorities). Priorities are used when determining size
and location of windows on the screen.

neaten.primaryIconPlacement (string) ``Top''
Selects the side of the screen where icons are first placed.
Legal values are: Top, Left, Bottom, Right and Closest (to its
current position).

neaten.secondaryIconPlacement (string) ``Left''
Determines where along the specified primary side the icon
should be placed. Legal values are those for
neaten.primaryIconPlacement plus Center. Not used if
neaten.primaryIconPlacement is Closest

normali (boolean) ``on''
Make sure that icons created with f.newiconify stay wholly
within the root window (on screen), regardless of attempted
placement. If off, put icons wherever the cursor is placed.

normalw (boolean) ``on''
Make sure that windows mapped with f.newiconify are placed on-
screen, regardless of cursor position. If off, put windows
wherever the cursor is placed.

path (string) ``null''
A number of items (titles, menus, etc) now allow you to
specify a pixmap file, rather than just a text string to
display. Since it would be tedious to type in full pathnames
for these files if they all lived in the same places, the
directory(s) named by path are searched if the pixmap file's
pathname does not begin with a slash (/) or tilde (~) and is
not found in the current directory.

path is a white-space separated list of one or more
directories to search, much like that used by the Unix C-
shell. The ~ notation used to designate your (or someone
else's) home directory is supported, but wildcards are not.

popup.background (string) ``background''
Background color to use for pop-up text.

popup.borderWidth (int) ``2''
Width of pop-up window border in pixels.

popup.font (string) ``9x15''
Which font to use for popup window text.

popup.foreground (string) ``
Foreground color to use for pop-up text.

popup.pad (int) ``4''
Number of pixels to pad pop-up text horizontally.

pushRelative (boolean) ``on''
When a window is pushed, push 1/push of the window. If off,
move window push pixels.

raiseDelay (int) ``100''
Amount of time in milliseconds to wait (while window has
focus) before raising. If pointer leaves window before time
elapses, raise is not performed.

reverse (boolean) ``on''
Reverse background/foreground colors for titles, menus, gadget
windows, popup windows, etc. In the absence of any color
specifications, this results in black-on-white.

rootResizeBox (boolean) ``on''
Put the resize (popup) window in the upper left corner of the
root window, rather than on the window being resized. This
saves a potentially expensive refresh that would occur when
the popup was unmapped. If your server supports save-unders,
it's generally (but not always) better to turn saveUnder on
instead.

saveUnder (boolean) ``off''
Use save-unders for menus and pop-up windows. If the server
does not support save-unders, this action does nothing.

showName (boolean) ``on''
Display the window name in a title (assuming that the window
is titled in the first place).

title.background (string) ``background''
Background color to use for title pixmap.

title.boldFont (string) ``none''
Which font to use for titlebar labels if focus is and hilite
is enabled. If this isn't set, and hilite is, the title text
will be displayed with title.font in reverse video.

title.boldPixmap (string) ``none''
The name of a pixmap file to load and tile titlebars with when
the focus is in. If this is defined, and hilite is set, focus
changes will cause title backgrounds to alternate between
title.pixmap and title.boldPixmap. If title.boldPixmap is
defined, but title.pixmap is not, a blank pixmap will be used
in place of title.pixmap.

title.cursor (int) ``XC_left_ptr''
Glyph (in decimal) to retrieve from cursor font for use in
title bar.

title.font (string) ``vtsingle''
Which font to use for titlebar labels. Used exclusively unless
title.boldFont and hilite are set.

title.foreground (string) ``foreground''
Foreground color to use when drawing background (both normal
and bold) pixmaps.

title.pad (int) ``2''
Number of pixels to pad title bar text vertically.

title.pixmap (string) ``none''
The name of a pixmap file to load and tile titlebars with.
This background is use exclusively unless the title.boldPixmap
is defined and hilite is set.

title.text.background (string) ``title.background''
Background color to use when drawing title bar text.

title.push (boolean) ``false''
When adding a title bar or border context to a window, put the
border or title bar area at the current x, y position and
"push" the window down to make room. For windows with an upper
edge at or near the top of the screen, this gives the most
asthetically pleasing results. For windows near the bottom, it
does not. If set to false, the title bar/border will be added
"on top" and the window will not be moved down. Note that the
setting of this resource also affects how the window is
manipulated during resizes, title removals, etc.

title.text.foreground (string) ``title.foreground''
Foreground color to use when drawing title bar.

titles (boolean) ``off''
Put title bars on all windows (both existing windows and new
ones as they're created. See also: f.title

volume (int) ``2''
Specifies the bell volume (delta on volume set with xset).

wall (boolean) ``off''
Restrict window movement to edges of screen (rootwindow).
This feature is fairly handy and should probably be bound to a
menu so that it can readily be turned on and off.

warpOnDeIconify (boolean) ``off''
Warp pointer to upper right corner of window on de-iconify.

warpOnIconify (boolean) ``off''
Warp pointer to center of icon on iconify.

warpOnRaise (boolean) ``off''
Warp pointer to upper left corner of window on raise.

windowName.offset (int) ``0''
Number of pixels from the right or left edge of a titlebar to
print the window name (assuming that showName is set). If
this value is negative, the name will be offset nameOffset
(plus the name length) pixels from the right edge. If the
value is positive, then the name will be offset nameOffset
pixels from the left edge. If the value is zero, the name will
be centered. Since the length of a window name can vary
dynamically, this value will be adjusted, when necessary, to
ensure that the name is visible in the title bar.

zap (boolean) ``off''
Causes ghost lines to follow the window or icon from its
previous location to its new location during a move, resize or
iconify operation.

SPECIAL RESOURCES


name.wm_option.autoRaise (boolean)

name.wm_option.borderContext (boolean)

name.wm_option.gadgets (boolean)

name.wm_option.icon.labels (boolean)

name.wm_option.title (boolean)

name.wm_option.foreground (string)

name.wm_option.background (string)

These resources determine whether or not a given application
really wants a title, gadgets, border context area, to be
auto-raised etc etc.. The application's CLASS and NAME (in
the WM_CLASS property) are checked against the string supplied
for name (for example: Xclock*wm_option.title: off).

Specifying one of these resources overrides any other boolean
settings (I.E. awm.titles or awm.gadgets) and may be used to
turn things on and off at the application and/or class level
for applications, regardless of awm's settings.

Note: Both class and name resources are checked, and in that
order. Thus specific applications may override settings for
their class, if desired.

These resources are ``special'' as they are checked for under
the application's name, not awm's; I.E.
xclock.wm_option.autoRaise is not
awm.xclock.wm_option.autoRaise as one might think.

The resources wm_option.foreground and wm_option.background
are only meaningful if awm has been compiled with -DRAINBOW.
They allow the border color to be specified for individual
applications/classes.

EXAMPLES


The following sample startup file shows the default window manager
options:
# Global variables
#
resetbindings
resetmenus
#
# Mouse button/key maps
#
# FUNCTION KEYS CONTEXT BUTTON MENU(if any)
# ======== ==== ======= ====== ============
f.menu = meta : :left down :"WINDOW OPS"
f.menu = meta : :middle down :"EXTENDED WINDOW OPS"
f.move = meta :w|i :right down
f.circleup = meta :root :right down
#
# Menu specifications
#
menu = "WINDOW OPS" {
"(De)Iconify": f.iconify
Move: f.move
Resize: f.resize
Lower: f.lower
Raise: f.raise
}

menu = "EXTENDED WINDOW OPS" {
Create Window: !"xterm &"
Iconify at New Position: f.lowericonify
Focus Keyboard on Window: f.focus
Freeze All Windows: f.pause
Unfreeze All Windows: f.continue
Circulate Windows Up: f.circleup
Circulate Windows Down: f.circledown
}

RESTRICTIONS


The color specifications have no effect on a monochrome system.
There's currently no way to specify a keysym in place of a button
(up/down/delta) specification. This restriction will be removed in
the near future.

FILES


$LIBDIR/rgb.txt
$LIBDIR/font
/usr/skel/.awmrc
$LIBDIR/awm/system.awmrc
$HOME/.awmrc

SEE ALSO


Xserver(1)

AUTHOR


Copyright 1988
Ardent Computer Corporation
Sunnyvale, Ca

All Rights Reserved Permission to use, copy, modify, and distribute
this software and its documentation for any purpose and without fee
is hereby granted, provided that the above copyright notice appear in
all copies and that both that copyright notice and this permission
notice appear in supporting documentation, and that the name of
Ardent Computer Corporation or the author not be used in advertising
or publicity pertaining to distribution of the software without
specific, written prior permission.

COPYRIGHT 1985, 1986
DIGITAL EQUIPMENT CORPORATION
MAYNARD, MASSACHUSETTS
ALL RIGHTS RESERVED.

THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE
AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
CORPORATION. DIGITAL MAKES NO REPRESENTATIONS ABOUT THE SUITABILITY
OF THIS SOFTWARE FOR ANY PURPOSE. IT IS SUPPLIED "AS IS" WITHOUT
EXPRESS OR IMPLIED WARRANTY.

IF THE SOFTWARE IS MODIFIED IN A MANNER CREATING DERIVATIVE COPYRIGHT
RIGHTS, APPROPRIATE LEGENDS MAY BE PLACED ON THE DERIVATIVE WORK IN
ADDITION TO THAT SET FORTH ABOVE.

Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted,
provided that the above copyright notice appear in all copies and
that both that copyright notice and this permission notice appear in
supporting documentation, and that the name of Digital Equipment
Corporation not be used in advertising or publicity pertaining to
distribution of the software without specific, written prior
permission.

M. Gancarz, DEC Ultrix Engineering Group, Merrimack, New Hampshire,
using some algorithms originally by Bob Scheifler, MIT Laboratory for
Computer Science

J. Hubbard, U.C. Berkeley, Berkeley, Ca. Ardent Computer, Sunnyvale,
Ca. Various modifications and enhancements using code developed by M.
Gancarz and Digital Equipment Corp.

X Version 11 23 July 1988 AWM(1)

tribblix@gmail.com :: GitHub :: Privacy