Table of Contents
uwm - a window manager for X
uwm [-display display] [-f filename]
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/X11R6/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.
- -f filename
- Names an alternate file as a uwm
startup file.
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.
- borderwidth=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.
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.
- 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.
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.
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.
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.
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 (:).
- 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.
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.
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/X11R6/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.
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
}
The color specifications have no effect on a monochrome
system.
/usr/X11R6/lib/X11/uwm/system.uwmrc
$HOME/.uwmrc
X(1)
, Xserver(1)
, xset(1)
, xlsfonts(1)
COPYRIGHT 1985,
1986, 1987, 1988DIGITAL 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.
M. Gancarz, DEC
Ultrix Engineering Group, Merrimack, New Hampshire, using some algorithms
originally by Bob Scheifler, MIT Laboratory for Computer Science.
Table of Contents