NAME
olwm - OPEN LOOK window manager for OpenWindows

SYNOPSIS
olwm [ options ]

DESCRIPTION
olwm is a window manager for the X Window System that imple-
ments parts of the OPEN LOOK graphical user interface. It
is the standard window manager for Sun’s OpenWindows pro-
duct, but it will work properly with any X11 system.

OPTIONS
Most command-line options have counterparts in the resource
database. A command-line option will override any setting
from the resource database.

-2d Use two-dimensional look. This is the default for
monochrome systems.

-3d Use three-dimensional look. This is the default for
color systems. This option is ignored for monochrome
systems.

-bd, -bordercolor
Specifies the border color. See the description of the
BorderColor resource.

-bg, -background
Specifies the background color. See the description of
the Background resource.

-c, -click
Use click-to-focus mode. This is the default focus
mode.

-depth depth
Specifies the depth of the visual in which olwm is to
run. See the discussion in the Screen Resources sec-
tion.

-display display-string
Specify the name of the display to manage. Overrides
the DISPLAY environment variable, if any. In addition,
the display string is exported to olwm’s environment,
so processes forked from olwm will inherit this value.

-f, -follow
Use focus-follows-mouse mode. Default mode is click-
to-focus.

-fn font-name, -font font-name
Set the font for window titles.

-fg, -foreground
Specifies the foreground color. See the description of
the ForegroundColor resource.

-multi
Manage windows on all screens that a display supports.
This is the default.

-name resource-name
Use resource-name to look up resources in the resource
database.

-xrm resource-string
Specify resources on the command-line. Resources
specified here will override resources found in
resource files.

-single
Manage windows for a single screen only, using the
default screen for the specified display. Overrides
the -multi option.

-syncpid process-id
When olwm has completed its initialization, it will
send a signal (SIGALRM by default) to process-id. The
signal will be sent only if this option is present.
This is useful for running olwm from shell scripts
(such as .xinitrc) in such a way that the script waits
for olwm to finish its initialization, while leaving
olwm as a child process of the shell script. This can
be done using the following sh(1) construct:

sleep 15 & pid=$!
olwm -syncpid $pid &
wait $pid

-syncsignal signal
Specifies the signal to send instead of SIGALRM. The
signal is specified as a number, not symbolically.

-visual visual-class
Specifies the class of the visual in which olwm is to
run. See the discussion in the Screen Resources sec-
tion.

DEBUGGING OPTIONS
The following options are strictly for debugging. They are
not recommended for general use. Don’t use them unless you
know what you are doing.

-all Print a message for every event received.

-debug
Equivalent to turning on all debugging options.

-orphans
Print orphaned events. Orphaned events are events that
are associated with a window or frame that has no entry
in the frame hash table, or events that are not handled
by the various event handlers.

-synchronize
Run the window manager in synchronous mode.

INTERNATIONALIZATION OPTIONS
-basiclocale locale-name
Specify the basic OPEN LOOK locale category setting.
This category will be the base for other locale
categories, therefore there are certain restrictions
applied to other locale categories (see the following
locale handling sections).

-displaylang locale-name
Specify the display language OPEN LOOK locale category.
This category affects the contents of workspace menu,
window menu and notice messages.

-numeric locale-name
Specify the numeric format OPEN LOOK locale category.
This category affects the numeric format displayed in
any message that contains numerics.

LOCALE HANDLING
Locale is the language and cultural conventions used in the
program. Locale will control the language-dependent part of
olwm’s behavior. The OPEN LOOK international extensions
have defined several OPEN LOOK locale categories as follows:

Basic Locale
This is the basic setting for the entire locale mechan-
ism. This category specifies internal character han-
dling behavior.

Display Language
This category specifies the language used for display-
ing menus, notice messages and error messages.

Input Language
This category specifies the language used for text
input. This category has no affect on olwm, because it
does not accept text input from the keyboard.

Date Format
This category specifies the format of date and time.
This category has no affect on olwm, because it does
not display any date and time information.

Numeric Format
This category specifies the format of displayed numeric
data.

Since the Basic Locale setting defines the character han-
dling of olwm, certain restrictions have been placed on com-
bining the locale category settings.

1. If basic setting is set to other than "C" locale, then
all other locale categories must be the same as basic
setting or "C".

2. If basic setting is set to "C" locale, then all other
locale categories must be in "C" locale.

The following methods are available to inform olwm, the
locale settings, and they are listed in order of priority:

1. Command line options (such as -basiclocale).

2. by resource database.

3. setlocale(3) function defaults (for example: LANG
environment variable).

If command line options are not used to specify locale set-
tings, olwm will pick up the new locale settings from
workspace property (per changes to the resource database);
and change the locale settings dynamically (for example, to
change the language of workspace and window menus). All
pinned workspace menus will be unpinned during this locale
switching operation.

INPUT FOCUS
The input focus

is the window that will receive keystrokes. olwm has two
different input focus modes, which are different ways of
transferring the input focus from one window to another. By
default, olwm uses "click-to-focus" (also known as "click-
to-type") mode. This means that you must click on the win-
dow in order to get the focus to it. While a window has the
input focus, the mouse can be anywhere on the screen; the
keyboard events will still go to that window. You can set
the input focus to a window and simultaneously raise it to
the top by clicking the left mouse button in the window’s
title bar or border.

olwm has another focus mode called "focus-follows-mouse."
In this mode, whatever window the mouse is pointing to will
receive the input focus. To switch the input focus from one
window to another, you simply move the mouse to the other
window; you don’t have to click at all. Note, however, that
to transfer the focus amongst subwindows of a single top-
level window, you must click in the subwindow, or you must
use focus transfer function keys (if available from the
application).

The input focus mode can be controlled with command-line
options or by entries in the resource database. Neither
focus mode has inherent advantages. Which one you choose is
a matter of personal preference.

MOUSE BUTTONS
OPEN LOOK defines three mouse button functions: SELECT,
ADJUST, and MENU. These functions are mapped to mouse but-
tons 1, 2, and 3, respectively. On systems with only two
mouse buttons, the MENU function can be obtained by pressing
buttons 1 and 2 simultaneously. This technique is referred
to as mouse button chording. The exact behavior of each of
these functions depends on what object is under the pointer.

MANIPULATING WINDOWS AND ICONS
Window Title Bar and Borders.

Clicking SELECT selects the window, raises it above other
windows, and deselects any other objects. In click-focus
mode, the focus is also transferred to this window. Press-
ing and holding SELECT and then dragging the mouse will move
windows without raising them or setting the focus. If this
window is selected, it and all other selected windows are
moved simultaneously. Otherwise, just this window is moved,
and it is not selected. If you hold down the Control key
while you are moving a window, motion is constrained to be
either vertical or horizontal, depending on whether you’ve
moved farther in a vertical or horizontal direction.
Double-clicking SELECT on the window is the same as select-
ing the Full Size (or Restore Size) menu item. Clicking
ADJUST will toggle the selected state of this window. If
other windows or icons are already selected, they remain
selected. ADJUST is useful for selecting several windows
and icons. Pressing MENU will bring up the window menu.
See the Window Menu section for further details. If the Alt
key is held down, the mouse button functions become accessi-
ble anywhere over the window, not just over the title bar
and borders. The modifier used can be changed; see the
description of the WMGrab resource in the section on Modif-
ier Customization.

Resize Corners.

You can resize a window by pressing the left mouse button
over any of the resize corners and dragging it to the new
location. Releasing the mouse button will set the new size
of the window. If you hold down the Control key while you
are dragging, the resize operation is contrained to resize
vertically or horizontally, depending on whether you’ve
moved the mouse farther in the horizontal or vertical direc-
tion.

Window Button.

The Window Button is the small box with a downward-pointing
triangle near the left end of the title bar. Pressing MENU
over the window button will bring up the Window Menu.
Clicking SELECT over the left mouse button on the Window
Button will execute the window menu’s default action. This
will usually close the window into an icon. You can change
the window menu’s default action by holding down the Control
key while manipulating the window menu.

Pushpin.

OPEN LOOK pop-up windows have a pushpin instead of a window
button. If the pushpin is out of its hole, pressing a com-
mand button within the window will cause the window to be
taken down ("dismissed") after the command is executed. If
you click SELECT on the pushpin, it will move into its hole.
In this state, pressing a command button will execute the
command without dismissing the window. Clicking SELECT over
the pin will pull it out of the hold. This will dismiss the
window without executing any commands. Some windows come up
with the pin already in the hole.

Icons.

An icon represents a closed window. You can still do most
of the same operations as with an open window. Moving and
selecting icons with SELECT and ADJUST is exactly the same
as for open windows. A similar version of the Window Menu
is available on an icon by pressing MENU. Double-clicking
SELECT will open the icon. Icons cannot be resized.

NONRECTANGULAR WINDOWS
The X11 Non-Rectangular Window Shape Extension (commonly
referred to simply as the Shape extension) allows windows to
have arbitrary shapes. Olwm will handle these windows by
giving them no decoration whatsoever. Shaped windows can be
manipulated by using the WMGrab modifier (Alt by default)
with the mouse buttons. (See the section on Modifier Cus-
tomization for further details.) Shaped windows can be
moved, resized, closed, opened, etc. like ordinary windows.
The selection feedback for shaped windows is the presence of
resize corners floating at the corners of the bounding rec-
tangle of the window’s shape.

SELECTIONS ON THE WORKSPACE
You can select a group of windows and icons by using the
left or middle mouse buttons over the Workspace (the area of
the screen outside of all windows and icons, commonly known
as the "root window"). Pressing either SELECT or ADJUST and
dragging the mouse will define a rubber-band rectangle.
When you release the mouse button, the set of windows and
icons enclosed by this rectangle will be operated on. If
you created the rectangle using SELECT, the windows and
icons within will be selected, and all other objects will be
deselected. If you used ADJUST, the objects within will
have their selected state toggled, and any other windows and
icons already selected will remain selected.

WORKSPACE MENU
Pressing MENU over the workspace brings up the Workspace
Menu. This menu is customizable, but it typically contains
at least the following items. (The items may appear in a
different language depending on the current locale setting.)

Programs
This button has a sub-menu that allows you to invoke
applications. The default Programs sub-menu contains
all of the programs in the OpenWindows DeskSet. How-
ever, users typically customize this menu to contain
many more programs and to contain nested submenus. See
the section on Menu Customization for further informa-
tion.

Utilities
This button has a sub-menu that contains several util-
ity functions for the workspace, including Refresh
(redisplay all windows on the screen), Lock Screen, and
Save Workspace.

Properties...
This item brings up the Workspace Properties window,
which allows you to view and customize settings of the
OpenWindows environment.

Help...
Brings up the table of contents of the Help Handbooks.

Desktop Intro...
Brings up a tutorial introduction to the Sun Desktop.

Exit Shuts down all applications and exits the window sys-
tem. A confirmation notice is popped up first to give
you a chance to cancel the operation.

WINDOW MENU
The window menu of most windows has the following items.
(The items may appear in a different language depending on
the current locale setting.)

Close
Close the window to an icon. Any OPEN LOOK pop-up win-
dows are closed into this icon as well. They will
reappear when the icon is opened. This item is "Open"
if you bring up the menu on an icon.

Full Size
Expand the window to the full height of the screen. If
this has already done, the button is Normal Size
instead of Full Size. Normal Size restores the window
to the size it was before you did the Full Size opera-
tion. If the application has specified a maximum size
for the window, this size is used for Full Size instead
of the full screen height.

Move Starts the keyboard-based form of moving the window.
Appears only if OPEN LOOK Mouseless Mode is enabled.

Resize
Starts the keyboard-based form of resizing the window.
Appears only if OPEN LOOK Mouseless Mode is enabled.

Back Move the window behind all other windows.

Refresh
Clear and redisplay the window.

Quit Kill the program running in the window and remove the
window. If the application has elected to participate
in the WM_DELETE_WINDOW protocol, olwm sends a
WM_DELETE_WINDOW ClientMessage instead of killing that
window.

OPEN LOOK pop-up windows (as opposed to base windows) have a
smaller window menu. It lacks the Close, Full Size, and
Quit items, but it has two new items:

Dismiss
Causes the window to be dismissed. This button has a
submenu with two items: This Window, which dismisses
just this window, and All Pop-ups, which dismisses all
pop-up windows owned by this application.

Owner?
Raises and flashes the title bar of the base window
that "owns" this pop-up window.

MENU CUSTOMIZATION FILES
You can customize olwm’s Workspace Menu by putting a menu
description into a file that olwm will read. When it starts
up, olwm will first look for a file named by the OLWMMENU
environment variable. If this variable does not exist, or
if the file is not readable, olwm will then look in the file
named ".openwin-menu" in your home directory. If this file
is not present or is unreadable, olwm will fall back on the
system default menu file. If, for some reason, the system
default menu file cannot be found, olwm will use a minimal,
built-in menu. The menu file that is read can also be modi-
fied by the display language locale setting. The locale
name is used as a suffix for the filename. If a localized
menu file is found, it is used in preference to the non-
localized menu file. For example, if the display language
local is "japanese", the file ".openwin-menu.japanese" will
take precedence over the file ".openwin-menu".

Olwm will automatically re-read its menu file whenever the
menu file changes. This lets you make many small changes to
a menu file, trying out the modified menu after each change.
The automatic re-reading can be controlled with the
AutoReReadMenuFile resource.

If olwm encounters a syntax error during the reading of any
menu file, a message is printed to the standard error, and
the reading of this menu file is considered to have failed.
Olwm will then attempt to read the next file in the sequence
as described above.

MENU SPECIFICATION SYNTAX
The menu specification language has a number of keywords,
all of which are in all upper case letters. The keywords
are not translated into the language specified by the the
locale category settings. Keywords are always in English.

Each line typically specifies one menu button. There are
three fields on each line: a label, the optional keyword
"DEFAULT", and a command. The label is either a single word
or a string enclosed in double quotes. This is the label
that appears in the menu button. If the optional keyword
"DEFAULT" appears next, this menu item becomes the default
item for this menu. The rest of the line (excluding leading
whitespace) is considered to be a command. It is executed
by sending it to sh(1). Any shell metacharacters will be
passed through to the shell unchanged. A line containing
only the keyword "SEPARATOR" will add extra space before the
next item.

A sub-menu is specified using the special keyword "MENU" in
place of a command. A button is added to the current menu,
and clicking or pulling right on this button will bring up
the sub-menu. Subsequent lines in the menu file define but-
tons for the sub-menu, until a line that has the special
keyword "END" in the command field is encountered. The
label of the MENU line must match the label on the END line,
otherwise an error is signaled. Sub-menus can be nested
arbitrarily, bracketed by MENU and END lines with matching
labels. To make a sub-menu pinnable, add the special key-
word "PIN" after the END keyword on the line that ends the
sub-menu definition.

A sub-menu can be specified in a different file by putting
the pathname of the file after the MENU keyword. In this
case, the file so named is assumed to contain lines that
specify menu buttons. The sub-menu file need not have any
MENU or END lines (unless it has sub-menus itself). The
current file need not have a matching END line if the sub-
menu is read from another file.

By default, the label in a menu button is used as the title
of the submenu. This can be overridden by specifying a line
that has the special keyword TITLE in the command field.
The label from this line will be used as the sub-menu’s
title. This line can appear anywhere in the sub-menu defin-
ition. It does not add an item to the menu.

The following keywords can be used in the command field of a
menu item. They specify functions that are internal to
olwm, that are not invoked by running a shell.

BACK_SELN
Move the selected windows and icons behind other win-
dows.

EXIT
Kills all applications and exits the window manager
after getting confirmation from the user. This is use-
ful for exiting the entire window system.

EXIT_NO_CONFIRM
Like EXIT but skips the confirmation notice.

FLIPDRAG
Toggle the state of the DragWindow resource.

FLIPFOCUS
Toggle the state of the SetInput resource.

FULL_RESTORE_SIZE_SELN
Toggle the full-sized/normal-sized states of the
selected windows and icons.

NOP
No operation; don’t do anything.

OPEN_CLOSE_SELN
Toggle the opened/closed states of the selected windows
and icons.

QUIT_SELN
Quit the selected windows and icons.

POSTSCRIPT
Open up a connection to NeWS using psh(1) and send the
rest of the line to it.

PROPERTIES
Bring up Workspace Properties.

REFRESH
Refresh causes all windows on the screen to be
repainted.

REREAD_MENU_FILE
Force an immediate rereading of the workspace menu cus-
tomization file. Olwm will start a complete search for
a menu file (as described in the Menu Customization
section) and use the first valid file it finds.

RESTART
Restart the window manager by issuing an exec(2) on
argv. This shouldn’t affect any running applications,
nor should it cause the server to shut down.

SAVE_WORKSPACE
Take a snapshot of the set of currently running appli-
cations, and put the command lines so obtained into the
file ".openwin-init" in the user’s home directory.
This runs the command
"owplaces -silent -multi -script -output
$HOME/.openwin-init".

WMEXIT
Exit the window manager without killing any applica-
tions.

Here is an example root menu specification.

"My Custom Menu" TITLE

Programs MENU
"Command Tool" DEFAULT cmdtool
"Text Editor" textedit
Mail mailtool
"File Manager" filemgr
Other MENU
"Other Tools" TITLE
"Shell Tool" shelltool
"Icon Editor" iconedit
Clock clock
"Perf Meter" DEFAULT perfmeter
Other END
Programs END PIN

"Repaint Screen" REFRESH

"Properties ..." PROPERTIES

Exit EXIT

COLORMAP INSTALLATION
Olwm will handle colormap installation for windows that have
colormaps other than the default colormap. There are two
colormap focus modes: "color-follows-mouse" and "color-
locked". They are roughly analogous to the corresponding
modes for input focus. However, colormap focus mode can be
completely independent of input focus. The mode in which
the system starts up is determined by the ColorFocusLocked
resource (see the Resources section below).

Olwm keeps track of a set of windows that are eligible to
have their colormaps installed. This set includes all top-
level windows of clients. If any clients have specified
other windows in a WM_COLORMAP_WINDOWS property, these win-
dows are included in the set as well.

In color-follows-mouse mode, olwm keeps track of the loca-
tion of the pointer and always keeps installed the colormap
of the eligible window underneath the pointer. Thus, you
can install the colormap of a particular window simply by
sliding the pointer into it. The default colormap will be
restored if you move the pointer back out into a window
frame or into the workspace. In this mode, the
WM_COLORMAP_WINDOWS properties are tracked for changes, but
only to change the set of eligible windows. Changes to
these properties only cause colormaps to be installed if the
eligible window under the pointer has changed as a result of
the set of eligible windows changing. In this mode, no win-
dow is considered to have the colormap focus; colormap
installation entirely is under control of the user.

In color-locked mode, colormaps are not installed based on
pointer motion. Instead, a particular window is considered
to have the colormap focus. When a window has the colormap
focus, colormaps will not be installed and uninstalled based
on pointer motion. If a client program changes the contents
of the WM_COLORMAP_WINDOWS property on the top-level window
with the colormap focus, olwm will respond by installing the
colormap of the first window named in this property. In
this way, the application whose window has the colormap
focus can control colormap installation by altering the con-
tents of the WM_COLORMAP_WINDOWS property.

Note that, according to the ICCCM, if WM_COLORMAP_WINDOWS
does not include the top-level window, it is assumed to
occur first in the list. If you want your program to
request colormap installation via changes to
WM_COLORMAP_WINDOWS, you must make sure that the top-level
window appears somewhere in this property. Otherwise, olwm
will always install the colormap of the top-level window.

The colormap focus may be given to a window in one of
several ways. The user can assign the colormap focus to a
window by pressing the Color-Lock key while the pointer is
over the window. If the AutoColorFocus resource is set, new
windows will be given the colormap focus automatically. If
the ColorTracksInputFocus resource is set, the colormap
focus will always be given to the window that has the input
focus.

In addition to setting the colormap focus, the Color-Lock
key has some additional effects. When you press the Color-
Lock key, if the pointer is within a subwindow named in the
WM_COLORMAP_WINDOWS property, that subwindow’s colormap will
be installed. If the pointer isn’t within a window named in
the WM_COLORMAP_WINDOWS property, or if the pointer is over
the window title bar or border, the colormap of the first
entry of the WM_COLORMAP_WINDOWS property will be installed.
You can use the Color-Lock key to install the colormap of a
particular subwindow no matter where it resides in the
WM_COLORMAP_WINDOWS list. If there is no
WM_COLORMAP_WINDOWS property, pressing the Color-Lock key
will simply install the colormap of the top-level window.

If you press the Color-Lock key over the workspace, the
default colormap will be installed, and any window with the
colormap focus will lose it. The root window will have the
colormap focus.

At any time, you can revert to color-follows-mouse mode by
pressing the Color-Unlock key. Any window with the colormap
focus will lose it.

SPOT HELP
Olwm provides spot help for frames, icons, the Workspace and
Window menus, window buttons, resize corners, pushpins, and
the Workspace itself. This is done via a separate slave
program, olwmslave(1). The slave program is forked automat-
ically when olwm starts up. The forking of the slave pro-
gram can be controlled by the RunSlaveProcess resource.

MULTIPLE SCREENS
By default, olwm will manage windows on all screens of the
display server. Most operations are unchanged from single
screen operation. A window exists on a particular screen
for its entire lifetime. The window cannot be moved from
one screen to another, nor can it be resized to cross a
screen boundary. Windows invoked from the Workspace menu
will appear on the same screen as the menu. Spot help will
appear on the same screen as the pointer when the Help key
is pressed.

Previous releases required modifications to the user’s .xin-
itrc script to start multiple instances of olwm, one for
each screen. These modifications are no longer necessary.
The default Xinitrc (which contains a single invocation of
olwm) works for both single and multiple screen situations.

GLOBAL RESOURCES
Global resources in olwm consist of two resource components.
The first component in the resource name is taken from the
trailing pathname component of argv[0]. This value is typi-
cally ‘olwm’. This name can be altered by using the -name
command-line argument. The second resource component names
the global attribute being set. It should be one of the
names from the following list. Thus, to set the AutoColor-
Focus attribute, one would use "olwm.AutoColorFocus" as the
resource specification.

Some resources are also interpreted by XView (see XView(7))
and are set by the Workspace Properties program (see
props(1)). For these resources, olwm will also accept the
string ‘OpenWindows’ as the first resource component. These
resources are marked with an asterisk ‘*’.

Colors can be specified using the formats parsed by the Xlib
XParseColor() function. Common formats are color names (see
showrgb(1)) and explicit red, green, and blue values in
hexadecimal, preceded by a ‘#’. For example, a bright
magenta would be specified with "#ff00ff".

Boolean values can be specified with the words "true",
"false", "on", "off", "yes", "no", "1", "0", "t", and "nil".

AutoColorFocus (boolean)
Indicates whether newly appearing windows are to be
given the colormap focus automatically. See the sec-
tion on Colormap Installation for further details.
Default value: false.

AutoInputFocus (boolean)
Indicates whether newly appearing windows are to be
given the input focus automatically. Default value:
false.

AutoRaise (boolean)
Raise windows automatically when they receive the
focus. This is useful in click-to-focus if you always
like to type into the topmost window. This is useful
in focus-follow-mouse when the AutoRaiseDelay resource
is set to a reasonable value. Default value: false.

AutoRaiseDelay (integer)
Amount of time to delay, in microseconds, between a
window receiving the focus and raising it above other
windows. Effective only when the value of the
AutoRaise resource is true. Default value: 0.

AutoReReadMenuFile (boolean)
Specifies whether the menu file is to be re-read when-
ever it changes. Default value: true.

Background (color)
Specifies the background color. This is used for the
background of masked icons. Note: it is not used for
the backgrounds of icon windows such as those used by
XView (see XView(7)). This resource is also distinct
from the WindowColor resource. Default value: white.

BasicLocale (locale name)
Specifies the basic OPEN LOOK locale category setting.
See the section on Locale Handling for more details.

Beep (enumeration) *
Specifies the circumstances under which olwm should
beep. Permissible values are the strings "always",
"never", and "notices". The string "never" means that
olwm should never beep, "notices" means that olwm
should beep only when a notice appears, and "always"
means that olwm will beep whenever it is appropriate.
Default value: always.

BorderColor (color)
Specifies the color used for window and icon borders.
Default value: black.

ButtonFont (font name)
Font to be used for buttons in menus and notices.
Default value: Lucida-Sans.

ClickMoveThreshold (integer)
This value is used when bringing up a menu. If the
mouse moves more than this amount while the menu button
is down, the menu is considered to be in press-drag-
release mode. Otherwise, the menu is in click-move-
click mode. Default value: 5.

ColorTracksInputFocus (boolean)
If true, indicates that the colormap focus is to be set
automatically to any window that receives the input
focus. See the section on Colormap Installation for
further details. Default value: false.

ColorFocusLocked (boolean)
Specifies the initial state of the colormap focus pol-
icy. If true, the default colormap is locked into the
hardware. If false, the colormap of the window under
the mouse is kept installed. See the section on Color-
map Installation for further details. Default value:
false.

CursorFont (font name)
Specifies the font to be used for cursors. It is prob-
ably not useful to change this unless you have an
alternate cursor font with the same encoding as the
OPEN LOOK cursor font. Default value: -sun-open look
cursor-*-*-*-*-*-120-*-*-*-*-*-*.

DefaultIconImage (filename)
Specifies a file containing a bitmap to be used as the
default icon image.

DefaultIconMask (filename)
Specifies a file containing a bitmap to be used as the
default icon mask.

DefaultTitle (string)
Specifies the string to be used in the title bar of
windows that have not provided a string in the WM_NAME
property. Default value: No Name.

DisplayLang (locale name)
Specifies the display language OPEN LOOK locale
category. See the section on Locale Handling for more
details.

DragRightDistance (integer) *
The number of pixels you must drag the mouse to the
right in a menu item to bring up a submenu. The sub-
menu always comes up when you move over the menu mark
(the right-pointing triangle), regardless of the drag-
right distance. Default value: 100.

DragThreshold (integer) *
This is the number of pixels the mouse must move while
a mouse button is down in order to have the action be
considered a drag. If the mouse moves fewer than this
number of pixels while the button is down, it is con-
sidered to be click instead of a drag. Default value:
5.

DragWindow (boolean)
If true, drags the entire image of the window when you
move it. Otherwise, just drags the window outline.
Default value: false.

EdgeMoveThreshold (integer)
Specifies the amount of "hysteresis" provided when mov-
ing windows past the edge of the screen. When you move
a window or an icon, it will pause when it touches the
edge of the screen. This is to allow you to easily
position windows right up against the edge of the
screen. If you move farther, the window or icon will
continue to move past the edge. You can prevent win-
dows from ever lapping off the screen by setting an
extremely large value (say, 10000) for this resource,
and you can disable this feature entirely by specifying
a value of zero. Default value: 10.

FlashCount (integer)
Number of times the title bar is flashed when the "Own-
ers?" menu item is activated. Default value: 6.

FlashTime (integer)
Amount of time, in microseconds, for which the title
bar is flashed when the "Owner?" menu item is
activated. Default value: 100000.

FocusLenience (boolean)
If this is set to true, olwm will not enforce the ICCCM
requirement that windows must have the input hint set
in order to receive the input focus. This option is
useful if you run clients that aren’t ICCCM-compliant,
like many X11R3-based clients. Default value: false.

Foreground (color)
Specifies the foreground color. This color is used
mainly for the text of window and icon titles and in
menus. Default value: black.

GlyphFont (font name)
Glyph font used for drawing OPEN LOOK graphics. Chang-
ing this font is mainly useful for changing its size.
Specifying a different font, such as a text font, will
result in undesirable behavior. Default value:
-sun-open look glyph-*-*-*-*-*-120-*-*-*-*-*-*.

IconFlashCount (integer)
Number of times to flash the open/close "zoom" lines.
Default value: 3.

IconFlashOffTime (integer)
Amount of time to pause while open/close "zoom" lines
are not visible. Default value: 1.

IconFlashOnTime (integer)
Amount of time to pause while open/close "zoom" lines
are visible. Default value: 20000.

IconFont (font name)
Font used for icon names. Default: Lucida-Sans.

IconLocation (enumeration) *
One of the words "top-lr", "top-rl", "bottom-lr",
"bottom-rl", "left-tb", "left-bt", "right-tb", or
"right-bt". These specify that icons should be
arranged along a particular edge of the screen, ordered
from left to right or top to bottom as appropriate.
The words "top", "bottom", "left", and "right" are
synonyms for "top-lr", "bottom-lr", "left-tb", and
"right-tb", respectively. Default value: top.

InvertFocusHighlighting (boolean)
In click-to-focus, the input focus is normally indi-
cated by a solid rectangle in the title bar. In
focus-follows-mouse, focus is normally indicated with
two lines in the title bar. If this resource is true,
the style of highlighting is inverted with respect to
the focus style. This results in two lines for click-
to-focus and a solid bar for focus-follows-mouse.
Default value: false.

KeepTransientsAbove (boolean)
Specifies whether olwm should attempt to keep transient
windows above their owner window. Default value: true.

KeyboardCommands (enumeration) *
Permissible values for this resource are SunView1,
Basic, and Full. Values are case-sensitive. In Full
mode, all OPEN LOOK Mouseless commands implemented by
the window manager are active. See the section on Key
Binding for further information. In Basic mode, the
keys active are Open, Front, Help, and the colormap
keys. In SunView1 mode, the only keys active are Open
and Front. Default value: Basic.

MinimalDecor (list of strings)
Specifies a list of windows that are to be decorated
minimally. Decoration on such windows includes only a
thin border and resize corners, with no title bar or
window button. The value should be a whitespace-
separated list of strings. Each string should specify
an applications class or instance name, as passed in
the WM_CLASS property. Most applications set this pro-
perty based on the name of the executable (i.e.
argv[0]). For example, to specify that the clock and
the calculator should be decorated minimally, you would
use the following resource:

olwm.MinimalDecor: calctool clock

Many applications will allow you to override the value
of the WM_CLASS property using the -name option on the
command line. Default value: (null).

MouseChordTimeout (integer)
Specifies the amount of time, in milliseconds, that
olwm is to wait for subsequent events to disambiguate
chorded mouse button event sequences.

MultiClickTimeout (integer) *
The time, in tenths of a second, that differentiates a
double-click from two single clicks. Default value: 5.

Numeric (locale name)
Specifies the numeric format OPEN LOOK locale category.
See the section on Locale Handling for more details.

PaintWorkspace (boolean)
If true, olwm will use the WorkspaceColor resource to
set the workspace (root window) background color. If
false, olwm will not change the root window background.
This is useful If you prefer to set your own workspace
color using xsetroot(1) or a similar program. Default
value: true.

PPositionCompat (boolean)
Turns on backward compatibility for older applications
that have a habit of always setting the PPosition flag
in the WM_NORMAL_HINTS property, even when they haven’t
set a position. This most often occurs with X11R3-
based clients. Without backward compatibility, these
windows will always appear in the upper-left corner of
the screen. With backward compatibility, these windows
will be positioned according to the default OPEN LOOK
window placement policy, along the diagonal of the
screen. This option will not affect windows that have
a geometry specified on the command line. Default
value: false.

PopupJumpCursor (boolean) *
Specifies whether to warp the cursor to popup windows.
Default value: true.

RaiseOnActivate (boolean)
Specifies whether a window is to be raised when it is
activated via a Mouseless command. Default value:
true.

RefreshRecursively (boolean)
Determines how the Refresh menu items on the window and
workspace menus operate. If the value is true, olwm
will walk the window hierarchy and send exposure events
to every window. This is useful for refreshing windows
that have backing store. If the value is false, olwm
will map a window and then unmap it, causing all win-
dows underneath that do not have backing store get get
exposures. When this feature is on, the Refresh opera-
tion generates a large amount of client-server traffic.
It may be useful to turn this feature off if the con-
nection transport has low bandwidth or long latency.
Default value: true.

ReverseVideo (boolean)
If true, reverses the sense of black and white on mono-
chrome screens. Ignored for color screens. Default
value: false.

RubberBandThickness (integer)
Specifies the thickness of the "rubber-band" line that
is drawn when a window is resized, when a group of win-
dows is selected by dragging a rectangle on the root,
and when a window is moved and the value of the
DragWindow resource is false.

RunSlaveProcess (boolean)
If false, disables the running of olwmslave(1) at
startup time. If the slave process is not running,
Spot Help will not be available on objects owned by
olwm such as pushpins and resize corners. Default
value: true.

SaveWorkspaceTimeout (integer)
Number of seconds to wait while the Save Workspace
operation is in progress. If all applications haven’t
responded with this amount of time, the operation is
considered to have failed. Default value: 30.

SelectDisplaysMenu (boolean) *
If true, pressing the SELECT mouse button will bring up
a menu item’s submenu (if any) instead of executing the
submenu’s default action. Default value: false.

SelectionFuzz (integer)
Number of pixels of "fuzz" to be applied when selecting
windows and icons by dragging a rectangle on the
workspace. Consider an object that lies almost
entirely within the selection rectangle, but that laps
outside the rectangle by a few pixels. The object will
be considered to be within the selection rectangle if
it laps outside by fewer than or equal to "fuzz" pix-
els. Default value: 1.

SelectToggleStacking (boolean)
If true, double-clicking on a window will push it to
the back instead of zooming it to its full size.
Default value: false.

SelectWindows (boolean)
If false, the SELECT mouse button will not select win-
dows and icons. Its other functions are unaffected.
The ADJUST mouse button can still be used to select
windows and icons. Default value: true.

ServerGrabs (boolean)
Controls whether olwm grabs the server while menus and
notices are up. Default value: true.

SetInput (enumeration) *
This controls the input focus mode. If the value is
"select", it means click-to-focus. If the value is
"followmouse", it means focus-follows-mouse. Default
value: select.

ShowMoveGeometry (boolean)
Indicates whether the geometry box should be shown
while moving windows and icons. Default value: false.

ShowResizeGeometry (boolean)
Indicates whether the geometry box should be shown
while resizing windows. Default value: false.

SnapToGrid (boolean)
Determines whether icons will snap to a grid when they
are moved. Default value: false.

TextFont (font name)
Font used in the text of notices. Default: Lucida-
Sans.

TitleFont (font name)
Font used in title bars atop windows and menus.
Default: Lucida-Sans Bold.

TransientsSaveUnder (boolean)
Specifies whether the save-under attribute of transient
windows is to be forced on. Default value: true.

TransientsTitled (boolean)
Specifies whether transient windows should have title
bars. Normally, transient windows have a title bar and
resize corners, but no window button or pushpin. Set-
ting this resource to false will remove the title bar
from transient windows. Default value: true.

Use3D (boolean)
Specifies whether to use 3D OPEN LOOK when possible.
If false, 3D look is never used. If true, 3D is used
unless the display hardware cannot support it. Default
value: true.

Use3DFrames (boolean)
Specifies whether to use a 3D look for the frame bord-
ers. If true, the frames will be given a 3D look;
otherwise, they have the same thick border as in 2D
look. Some people prefer the look of 3D frames, but it
is more difficult to distinguish selected from
unselected windows with this option turned on. Default
value: false.

Use3DResize (boolean)
Specifies whether the window resize corners are to be
in the 2D or 3D look. Default value: false.

WindowColor (color) *
Specify the color of windows. This is the "BG1" color
for 3D OPEN LOOK. It is used for the backgrounds of
windows, menus, and notices. Other the 3D effect is
achieved by using highlight and shadow colors derived
from this color. Default value: #ccc.

This specifies a 20% gray value.

WorkspaceColor (color) *
Specify the color for the workspace (root window). On
startup, olwm will set the root window’s background
color to the color specified by this resource, and it
will restore the deafult background on shutdown. To
turn off this behavior, see the description of the
PaintWorkspace resource. Default value: #40a0c0.

SCREEN RESOURCES
In addition to the global resources described above, olwm
also uses screen-specific resources. The first component of
the resource specification is the trailing pathname com-
ponent of argv[0]. The second component is the screen
number appended to the string ‘screen’. The third component
of the resource name is the name of the resource itself.
For example,

olwm.screen1.ReverseVideo: true

enables reverse video on screen number 1 for olwm. To affect
all screens, you can use resource wildcarding. For example,
‘olwm*ReverseVideo: true’ will set reverse video for all
screens olwm manages.

The following resources are available both globally and on a
per-screen basis. A screen-specific resource overrides the
corresopnding global setting for that screen. Note that
screen specific settings for WorkspaceColor and WindowColor
will only affect olwm; this may cause clashes with XView
clients which only use the global setting.

Background
BorderColor
Foreground
ReverseVideo
WindowColor
WorkspaceColor

The following resources allow the selection of visuals other
than the screen’s default. Available visuals may be listed
with the xdpyinfo(1) command.

Depth (integer)
Specify the visual depth to be used when searching for
visuals. Default value: none.

Visual (enumeration)
Specify the visual class to be used when searching for
visuals. Valid visual classes are StaticGray, GrayS-
cale, StaticColor, PseudoColor, TrueColor, and
DirectColor. Names are case-sensitive. Default value:
none.

VisualID (id)
Specify the visual ID to be used. Note: specifying a
visual by its ID is not portable, as IDs may vary from
server to server and even from one invocation of a
server to the next. Default value: none.

MOUSELESS OPERATION
Olwm implements OPEN LOOK Mouseless operation. This is a
set of functions bound to keys that enable one to use the
window system entirely without a pointing device. Some
Mouseless functions are also useful for "cross-over" users,
who may want to use them as accelerators for mouse-based
operations.

One can navigate from window to window using the Next Appli-
cation, Previous Application, Next Window, and Previous Win-
dow functions, bound by default to Alt-n, Alt-Shift-n, Alt-
w, and Alt-Shift-w, respectively. (See the section on Key
Binding for more detailed information.) You can bring up
both the window and the workspace menu using Alt-m and Alt-
Shift-m, respectively. Once a menu is up, you can navigate
through it by using the arrow keys or by pressing the first
letter of the menu item you want to go to. You can execute
the current item by pressing Return, or you can cancel the
menu using Stop or Escape.

You can also move and resize windows use Mouseless func-
tions. This can be accomplished by selecting the Move or
Resize items on the window menu. (Keyboard acclerators for
these items are Alt-F6 and Alt-F7, respectively.) In Move
mode, you can use the arrow keys to move the window in the
desired direction. You can also hold down the Control key
to "jump" the window by a larger distance each time you
press an arrow key. In Resize mode, the first arrow key
selects the edge you are moving, and subsequent arrow keys
move that edge. For example, to shrink a window from the
right (that is, to move it right edge to the left) you would
first enter resize mode using Alt-F7, press the right arrow
key to select the right edge, and then press the left arrow
key to move the edge to the left. As in move mode, you can
hold down Control to "jump" the edge by a greater increment.
You can press Return to accept the new size or location, and
you can press Escape or Stop to abort the move or resize
operation.

KEY BINDING
Key bindings are specified using resources. There is one
resource per function, and the value of the resources are
the keys to which the function is bound. The resource value
consists of a comma-separated list of key specifications.
Each key specification consists of a keysym optionally fol-
lowed by modifier keysyms; the modifier keysyms are
separated by ‘+’ signs. For example, to bind a function to
F2, control-F3, and alt-shift-F4, one would use the value:

F2,F3+Control,F4+Shift+Alt

Any keysym whose key is in the modifier mapping may be used
as a modifier. The following can also be used as aliases
for common modifier keysyms: Shift, Lock, Control, Ctrl,
Ctl, Meta, Alt, Super, and Hyper.

Resource names are prefixed with the trailing pathname com-
ponent of argv[0], followed by KeyboardCommand (note that
this is singular, not to be confused with the KeyboardCom-
mands resource), followed by a resource from the following
list. For example, the resource specification for setting
the Stop function would typically be:

olwm.KeyboardCommand.Stop

Each item in this list is followed by its default keyboard
binding and a description of what the function does. Items
marked with an asterisk ‘*’ involve keyboard grabs. Other
items are active only while olwm is in a mode, such as when
a menu is up. Note: most of the functions that require
grabs are active only when the KeyboardCommands resource is
set to Full. See the description of this resource in the
section on Global Resources.

Stop (L1, Escape)
Abort the current mode or action.

DefaultAction (Return, Meta-Return, Enter)
Execute the default action for the current menu or
notice.

Select (space)
Select the current button.

Adjust (Alt-Insert)
Toggle the selected state of the current object.

Menu (Alt-space)
Bring up a menu on the current object.

InputFocusHelp (?, Control-?)
Bring up Help on the object with the input focus.

Up (up-arrow)
Move up one item.

Down (down-arrow)
Move down one item.

Left (left-arrow)
Move left one item.

Right (right-arrow)
Move right one item.

JumpUp (Control up-arrow)
Move up ten items.

JumpDown (Control down-arrow)
Move down ten items.

JumpLeft (Control left-arrow)
Move left ten items.

JumpRight (Control right-arrow)
Move right ten items.

RowStart (Home, R7)
Move to the start of the current row.

RowEnd (End, R13)
Move to the end of the current row.

DataStart (Control-Home)
Move to the start of the data.

DataEnd (Control-End)
Move to the end of the data.

FirstControl (Control-[)
Move to the first item.

LastControl (Control-])
Move to the last item.

NextElement (Tab, Control-Tab)
Move to the next item.

PreviousElement (Shift-Tab, Control-Shift-Tab)
Move to the previous item.

Open (Alt-L7) *
Open the object with the input focus.

Help (Help) *
Bring up Spot Help on the object under the pointer.

LockColormap (Control-L2) *
Install the colormap of the subwindow under the
pointer, and give the colormap focus to the top-level
window containing the pointer. See Colormap Installa-
tion

for further details.

UnlockColormap (Control-L4) *
Revert to color-follows-mouse mode, and unset colormap
focus. See Colormap Installation

for further details.

Front (Alt-L5) *
Bring the object with the input focus to the front.

FocusToPointer (Alt-Shift-j) *
Set the focus to the window under the pointer.

NextApp (Alt-n) *
Move the focus to the next base window. Windows are
ordered clockwise starting at the top. Icons come
after all windows, also in a clockwise fashion. Order
proceeds from the last icon on a screen to the first
window of the next screen. After the last screen, the
order wraps back around to the first screen.

PreviousApp (Alt-Shift-n) *
Move the focus to the previous base window. See Nex-
tApp for details about the window traversal order.

ToggleInput (Alt-t) *
Move the input focus to the previous window that had
the input focus.

NextWindow (Alt-w) *
Move to the next window in the family of windows con-
sisting of a base window and a set of popups. Windows
are ordered clockwise, starting at the top of the
screen.

PreviousWindow (Alt-Shift-w) *
Move to the previous window in the family of windows
consisting of a base window and a set of popups. Win-
dows are ordered clockwise, starting at the top of the
screen.

TogglePin (Meta-Insert) *
Toggle the state of the pin of the window with the
input focus.

SuspendMouseless (Alt-z) *
Temporarily suspend all key grabs associated with
Mouseless operation.

ResumeMouseless (Alt-Shift-z) *
Resume grabs after temporary suspension.

QuoteNextKey (Alt-q) *
Pass the next key sequence to the application with the
focus, ignoring any grabs.

Refresh (Alt-F8) *
Repaint the window with the focus.

Back (Alt-F5) *
Move the focus window behind other windows.

OpenClose (Alt-F2) *
Toggle the open/clos state of the window with the
focus.

FullRestore (Alt-F3) *
Toggle the full-sized/normal-sized state of the window
with the focus.

Quit (Alt-F9) *
Quit the window with the focus.

Owner (Alt-F10) *
Flash the owner of the popup window with the focus.

WorkspaceMenu (Alt-Shift-m) *
Bring up the workspace menu.

WindowMenu (Alt-m) *
Bring up the window menu on the window with the focus.

Move (Alt-F6) *
Move the window with the focus.

Resize (Alt-F7) *
Resize the window with the focus.

OpenClosePointer (L7) *
Toggle the open/close state of the window or icon under
the pointer.

RaiseLower (L5) *
Raise the window under the pointer if obscured by other
windows. Otherwise, lower the window if it obscures
other windows.

MODIFIER CUSTOMIZATION
Olwm will alter the operation of certain mouse-based func-
tions based on the state of the modifier keys. The rela-
tionship between the alteration and the associated modifier
keys is controlled by a set of resources. Resource names
are prefixed with the trailing pathname component of
argv[0], followed by Modifier, followed by a resource from
the list below. For example, the resource specification to
bind the Reduce modifier would typically be

olwm.Modifier.Reduce

The value of each resource is a comma-separated list of
modifier keysyms. Each item in this list is followed by its
default modifier and a description of what it does.

Constrain (Control)
Constrain a move or resize operation to be only on a
horizontal or vertical direction.

Ignore (Lock, NumLock, mod5, Mode_switch)
The set of modifiers to be ignored when processing
mouse events. This resource should contain the set of
locking modifiers, so that mouse actions are still
interpreted properly even while locking modifiers are
in effect.

Invert (Shift)
When moving windows, temporarily invert the sense of
the DragWindow resource. When resizing a window, tem-
porarily move the window as long as this modifier is
held down. Return to resizing when the modifier is
released.

Reduce (Meta)
When moving windows, reduce the amount of mouse motion
by a factor of ten.

SetDefault (Control)
Sets the default item for a menu.

WMGrab (Alt)
Using the WMGrab modifier allows access to the mouse
button functions anywhere over the window, not just
over the window’s title bar and border.

ENVIRONMENT
DISPLAY
Specifies the X11 server to which to connect.

LANG, LC_CTYPE, LC_MESSAGE, LC_TIME
These variables specify which locale to use when other
methods of locale announcement are not available. (See
the section on Locale Handling for more details.)

OLWMMENU
Specifies a file to use for the Workspace Menu.

FILES
$HOME/.openwin-menu.localename

$HOME/.openwin-menu
Contains the user-customized Workspace Menu
specification.

$OPENWINHOME/lib/openwin-menu.localename

$OPENWINHOME/lib/openwin-menu
Contains the default Workspace Menu specification.

$HOME/.openwin-init
Stores the command lines obtained during the Save
Workspace operation.

TRADEMARKS
OPEN LOOK is a trademark of AT&T.
The X Window system is a trademark of the Massachusetts
Institute of Technology.
OpenWindows is a trademark of Sun Microsystems, Inc.

REFERENCES
Rosenthal, David S.H. Inter-Client Communication Conven-
tions Manual for X11. Copyright 1989 by the Massachusetts
Institute of Technology. This document is commonly known as
the ICCCM. It is an X Consortium Standard that specifies
conventions to which all X11 clients must adhere.

OPEN LOOK Graphical User Interface Functional Specification.
Copyright 1989 by Sun Microsystems, Inc. Addison-Wesley
Publishing Company, Inc. ISBN 0-201-52365-5.

OPEN LOOK Graphical User Interface International Extensions
Functional Specification. Draft 1.1 (May 10, 1990). Copy-
right 1990 by Unix International.

setlocale(3).

BUGS
The resource names do not follow any classing structure.
There is no general way to specify resources on a per-client
basis.

There is no way to reconfigure the mouse buttons. This
makes it impossible to use olwm on a system that has a one-
button mouse with no provision for simulating a second or
third mouse button. (It is possible to use olwm with a
two-button mouse. See the section on Mouse Buttons.)

The Exit menu item on the Workspace Menu doesn’t really shut
down the server. It kills off all clients being managed by
the window manager, and then it exits the window manager
itself. This works properly if some outside agent such as
xinit(1) or xdm(1) is waiting for the window manager or a
client to exit. The outside agent will take care of shut-
ting down the server or reinitializing it. If you’ve
started up the server a different way, this option may not
work. Instead, the server will be left running with no
clients and no window manager running, and you will have to
login from elsewhere to kill the server. An alternative for
users of X11/NeWS is to add the following entry to the root
menu:

Exit POSTSCRIPT shutdownserver
sp
This will shut down the server immediately, with no confir-
mation whatsoever.

Olwm is fairly simplistic about how it manages its keyboard
bindings. For example, if you bind a function to control-
F2, olwm will grab F2 with the Control modifier and with all
combinations of the Lock and NumLock modifiers. If another
locking modifier is in effect, olwm’s passive grab will not
be activated, and thus the function will not work.

Olwm cannot manage multiple locales at one time, therefore
all clients should be running in the same locale. The "C"
locale is the exception. Applications using the "C" locale
(such as non-internationalized applications) can be mixed
with applications using one other locale.

Olwm does not handle different sizes of the glyph fonts
well. Each locale can define a different size for the
default font (for example, the default glyph font size is 12
for the "C" locale and is 14 for the "japanese" locale).
Olwm does not re-position the window decorations after
switching locale, therefore the window decorations may
appear to be wrong. To remedy this problem partially, olwm
will not change the font when locale is switching from non-
"C" locale to the "C" locale (fonts for non-"C" locales are
always supersets of the font for "C" locale).

There is no input focus feedback for nonrectangular windows.
The title string of nonrectangular windows cannot be
displayed.

Olwm will not dynamically track screen-specific resources.
Only changes to global resources are applied.

The interaction of the AutoColorFocus, ColorFocusLocked, and
ColorTracksInputFocus resources and the color locking and
unlocking keys is overly complex.