UWM(1) BSD UWM(1)
NAME
uwm - a window manager for X
SYNTAX
uwm [-display display] [-f filename]
DESCRIPTION
The uwm program is a window manager for X.
When uwm is invoked, it searches a predefined search path to locate any
uwm startup files. If no startup files exist, uwm initializes its
built-in default file.
If startup files exist in any of the following locations, it adds the
variables to the default variables. In the case of contention, the
variables in the last file found override previous specifications. Files
in the uwm search path are:
/usr/lib/X11/uwm/system.uwmrc
$HOME/.uwmrc
To use only the settings defined in a single startup file, include the
variables resetbindings, resetmenus, resetvariables at the top of that
specific startup file.
OPTIONS
-f filename
Names an alternate file as a uwm startup file.
STARTUP FILE VARIABLES
Variables are typically entered first, at the top of the startup file.
By convention, resetbindings, resetmenus, and resetvariables head the
list.
autoselect/noautoselect
places the menu cursor in the first menu item. If
unspecified, the menu cursor is placed in the menu header
when the menu is displayed.
background=color
specifies the default background color for popup sizing
windows, menus, and icons. The default is to use the
WhitePixel for the current screen.
bordercolor=color
specifies the default border color for popup sizing
windows, menus, and icons. The default is to use the
BlackPixel for the current screen.
borderwidth=pixels
specifies the default width in pixels for borders around
popup sizing windows, menus, and icons. The default is 2.
delta=pixels indicates the number of pixels the cursor is moved before
the action is interpreted by the window manager as a
command. (Also refer to the delta mouse action.)
foreground=color
specifies the default foreground color for popup sizing
windows, menus, and icons. The default is to use the
BlackPixel for the current screen.
freeze/nofreeze
locks all other client applications out of the server
during certain window manager tasks, such as move and
resize.
grid/nogrid displays a finely-ruled grid to help you position an icon
or window during resize or move operations.
hiconpad=pixels
indicates the number of pixels to pad an icon
horizontally. The default is five pixels.
hmenupad=pixels
indicates the amount of space in pixels that each menu
item is padded to the left and to the right of the text.
iborderwidth=pixels
indicates the width in pixels of the border surrounding
icons.
iconfont=fontname
names the font that is displayed within icons. Font names
for a given server can be obtained using xlsfonts(1).
maxcolors=number
limits the number of colors the window manager can use in
a given invocation. If set to zero, or not specified, uwm
assumes no limit to the number of colors it can take from
the color map. maxcolors counts colors as they are
included in the file.
mborderwidth=pixels
indicates the width in pixels of the border surrounding
menus.
normali/nonormali
places icons created with f.newiconify within the root
window, even if it is placed partially off the screen.
With nonormali the icon is placed exactly where the cursor
leaves it.
normalw/nonormalw
places window created with f.newiconify within the root
window, even if it is placed partially off the screen.
With nonormalw the window is placed exactly where the
cursor leaves it.
push=number moves a window number pixels or 1/number times the size of
the window, depending on whether pushabsolute or
pushrelative is specified. Use this variable in
conjunction with f.pushup, f.pushdown, f.pushright, or
f.pushleft.
pushabsolute/pushrelative
pushabsolute indicates that the number entered with push
is equivalent to pixels. When an f.push (left, right, up,
or down) function is called, the window is moved exactly
that number of pixels.
pushrelative indicates that the number entered with the
push variable represents a relative number. When an
f.push function is called, the window is invisibly divided
into the number of parts you entered with the push
variable, and the window is moved one part.
resetbindings, resetmenus, and resetvariables
resets all previous function bindings, menus, and variable
entries, specified in any startup file in the uwm search
path, including those in the default environment. By
convention, these variables are entered first in the
startup file.
resizefont=fontname
identifies the font of the indicator that displays
dimensions in the corner of the window as you resize
windows. See xlsfonts(1) for obtaining font names.
resizerelative/noresizerelative
indicates whether or not resize operations should be done
relative to moving edge or edges. By default, the dynamic
rectangle uses the actual pointer location to define the
new size.
reverse/noreverse
defines the display as black characters on a white
background for the window manager windows and icons.
viconpad=pixels
indicates the number of pixels to pad an icon vertically.
Default is five pixels.
vmenupad=pixels
indicates the amount of space in pixels that the menu is
padded above and below the text.
volume=number increases or decreases the base level volume set by the
xset(1) command. Enter an integer from 0 to 7, 7 being
the loudest.
zap/nozap causes ghost lines to follow the window or icon from its
previous default location to its new location during a
move or resize operation.
BINDING SYNTAX
function=[control key(s)]:[context]:mouse events:" menu name "
Function and mouse events are required input. Menu name is required with
the f.menu function definition only.
Function
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.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.kill kills the client that created a window.
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=[control 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.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 unobscured or partially obscured 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 uwm search path and initializing the
variables it finds.
Control Keys
By default, the window manager uses meta as its control key. It can also
use ctrl, shift, lock, or null (no control key). Control keys must be
entered in lower case, and can be abbreviated as: c, l, m, s for ctrl,
lock, meta, and shift, respectively.
You can bind one, two, or no control keys to a function. Use the bar (|)
character to combine control keys.
Note that client applications other than the window manager use the shift
as a control key. If you bind the shift key to a window manager
function, you can not use other client applications that require this
key.
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 four contexts: icon, window,
root, (null).
The root context refers to the root, or background window, A (null)
context is indicated when the context field is left blank, and allows a
function to be invoked from any screen location. Combine contexts using
the bar (|) character.
Mouse Buttons
Any of the following mouse buttons are accepted in lower case and can 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 = " menu name " {
"item name" : "action"
.
.
.
}
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. 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 (:).
Menu Action
Window manager functions
Any function previously described. E.g., f.move or f.iconify.
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.
Strings starting with an up arrow (^) will have a new line
character appended to the string after the up arrow (^) has
been stripped from it.
Strings starting with a bar character (|) will be copied as is
after the bar character (|) has been stripped.
Color Menus
Use the following syntax to add color to menus:
menu = "menu name" (color1:color2:color3:color4) {
"item name" : (color5 :color6) : " action "
.
.
.
}
color1 Foreground color of the header.
color2 Background color of the header.
color3 Foreground color of the highlighter, the horizontal band of
color that moves with the cursor within the menu.
color4 Background color of the highlighter.
color5 Foreground color for the individual menu item.
color6 Background color for the individual menu item.
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 uwm.
2) If you specify a foreground or background color that does not exist
in the RGB color database of the server (see /usr/lib/X11/rgb.txt for a
sample) both the foreground and background colors default to the root
window colors.
3) If you omit a foreground or background color, both the foreground and
background colors default to the root window colors.
4) If the total number of colors specified in the startup file exceeds
the number specified in the maxcolors variable.
5) If you specify no colors in the startup file.
EXAMPLES
The following sample startup file shows the default window manager
options:
# Global variables
#
resetbindings;resetvariables;resetmenus
autoselect
delta=25
freeze
grid
hiconpad=5
hmenupad=6
iconfont=oldeng
menufont=timrom12b
resizefont=9x15
viconpad=5
vmenupad=3
volume=7
#
# 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.
FILES
/usr/lib/X11/uwm/system.uwmrc
$HOME/.uwmrc
SEE ALSO
X(1), Xserver(1), xset(1), xlsfonts(1)
COPYRIGHT
COPYRIGHT 1985, 1986, 1987, 1988
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 SUITIBILITY 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.
AUTHOR
M. Gancarz, DEC Ultrix Engineering Group, Merrimack, New Hampshire, using
some algorithms originally by Bob Scheifler, MIT Laboratory for Computer
Science.