mwm - The Motif Window Manager
mwm [ options ]
The following sections describe the basic default behaviors of windows, icons, the icon box, input focus, and window stacking. The appearance and behavior of the window manager can be altered by changing the configuration of specific resources. Resources are defined under the heading X DEFAULTS.
By default, mwm manages only the single screen specified by the -display option or the DISPLAY environment variable (by default, screen 0). If the -multiscreen option is specified or if the multiScreen resource is True, mwm tries to manage all the screens on the display.
When mwm is managing multiple screens, the
-screens option can be used to give each screen a
unique resource name. The names are separated by blanks, for example,
-screens mwm0 mwm1. If there are more screens than
names, resources for the remaining screens will be retrieved using the
first name. By default, the screen number is used for the screen
name.
Windows
Default mwm window frames have distinct components with associated functions:
Selection | Accelerator | Description |
---|---|---|
Restore | Alt+F5 | Restores the window to its size before minimizing or maximizing |
Move | Alt+F7 | Allows the window to be moved with keys or mouse |
Size | Alt+F8 | Allows the window to be resized |
Minimize | Alt+F9 | Turns the window into an icon |
Maximize | Alt+F10 | Makes the window fill the screen |
Lower | Alt+F3 | Moves window to bottom of window stack |
Close | Alt+F4 | Causes client to terminate |
Icons are small graphic representations of windows. A window can be minimized (iconified) using the minimize button on the window frame. Icons provide a way to reduce clutter on the screen.
Pressing mouse button 1 when the pointer is over an icon causes the icon's window menu to pop up. Releasing the button (press + release without moving mouse = click) causes the menu to stay posted. The menu contains the following selections:
Selection | Accelerator | Description |
---|---|---|
Restore | Alt+F5 | Opens the associated window |
Move | Alt+F7 | Allows the icon to be moved with keys |
Size | Alt+F8 | Inactive (not an option for icons) |
Minimize | Alt+F9 | Inactive (not an option for icons) |
Maximize | Alt+F10 | Opens the associated window and makes it fill the screen |
Lower | Alt+F3 | Moves icon to bottom of icon stack |
Close | Alt+F4 | Removes client from mwm management |
Note that pressing button 3 over an icon also causes the icon's window menu to pop up. To make a menu selection, drag the pointer over the menu and release button 3 when the desired item is highlighted.
Double-clicking button 1 on an icon invokes the f.restore_and_raise function
and restores the icon's associated window to its previous state. For
example, if a maximized window is iconified, then double-clicking
button 1 restores it to its maximized state. Double-clicking button 1
on the icon box's icon opens the icon box and allows access to the
contained icons. (In general, double-clicking a mouse button is a
quick way to perform a function.) Pressing [Shift]
[Esc] or [Menu] (the pop-up menu
key) causes the icon window menu of the currently selected icon to pop
up.
Icon Box
When icons begin to clutter the screen, they can be packed into an icon box. (To use an icon box, mwm must be started with the icon box configuration already set.) The icon box is a mwm window that holds client icons. It includes one or more scroll bars when there are more window icons than the icon box can show at the same time.
Icons in the icon box can be manipulated with the mouse. The following table summarizes the behavior of this interface. Button actions apply whenever the pointer is on any part of the icon. Note that double-clicking an icon in the icon box invokes the f.restore_and_raise function.
Button Action | Description |
---|---|
Button 1 click | Selects the icon |
Button 1 double-click | Normalizes (opens) the associated window Raises an already open window to the top of the stack |
Button 1 drag | Moves the icon |
Button 3 press | Causes the menu for that icon to pop up |
Button 3 drag | Highlights items as the pointer moves across the menu |
Pressing mouse button 3 when the pointer is over an icon causes the menu for that icon to pop up.
Selection | Accelerator | Description |
---|---|---|
Restore | Alt+F5 | Opens the associated window (if not already open) |
Move | Alt+F7 | Allows the icon to be moved with keys |
Size | Alt+F8 | Inactive |
Minimize | Alt+F9 | Inactive |
Maximize | Alt+F10 | Opens the associated window (if not already open) and maximizes its size |
Lower | Alt+F3 | Inactive |
Close | Alt+F4 | Removes client from mwm management |
To pull down the window menu for the icon box itself, press button 1 with the pointer over the menu button for the icon box. The window menu of the icon box differs from the window menu of a client window: The "Close" selection is replaced with the "PackIcons Shift+Alt+F7" selection. When selected, PackIcons packs the icons in the box to achieve neat rows with no empty slots.
You can also post the window menu by pressing
[Shift] [Esc] or
[Alt] [Space]. Pressing
[Menu] (the pop-up menu key) causes the icon window
menu of the currently selected icon to pop up.
Input Focus
mwm supports (by default) a keyboard input focus policy of explicit selection. This means when a window is selected to get keyboard input, it continues to get keyboard input until the window is withdrawn from window management, another window is explicitly selected to get keyboard input, or the window is iconified. Several resources control the input focus. The client window with the keyboard input focus has the active window appearance with a visually distinct window frame.
The following tables summarize the keyboard input focus selection behavior:
Button Action | Object | Function Description |
---|---|---|
Button 1 press | Window/window frame | Keyboard focus selection |
Button 1 press | Icon | Keyboard focus selection |
Key Action | Function Description |
---|---|
[Alt][Tab] | Move input focus to next window in window stack (available only in explicit focus mode) |
[Alt][Shift][Tab] | Move input focus to previous window in window stack (available only in explicit focus mode) |
There are two types of window stacks: global window stacks and an application's local family window stack.
The global stacking order of windows may be changed as a result of setting the keyboard input focus, iconifying a window, or performing a window manager window stacking function. When keyboard focus policy is explicit the default value of the focusAutoRaise resource is True. This causes a window to be raised to the top of the stack when it receives input focus, for example, by pressing button 1 on the title bar. The key actions defined in the previous table will thus raise the window receiving focus to the top of the stack.
In pointer mode, the default value of focusAutoRaise is False, that is, the window stacking order is not changed when a window receives keyboard input focus. The following key actions can be used to cycle through the global window stack.
Key Action | Function Description |
---|---|
[Alt][ESC] | Place top window on bottom of stack |
[Alt][Shift][ESC] | Place bottom window on top of stack |
By default, a window's icon is placed on the bottom of the stack when the window is iconified; however, the default can be changed by the lowerOnIconify resource.
Transient windows (secondary windows such a dialog boxes) stay above their parent windows by default. However, an application's local family stacking order may be changed to allow a transient window to be placed below its parent top-level window. The following parameters show the modification of the stacking order for the f.lower function.
The parameters within and
freeFamily can also be used with f.raise and
f.raise_lower.
X Defaults
mwm is configured from its resource database. This database is built from the following sources. They are listed in order of precedence, low to high:
/usr/lib/X11/app-defaults/Mwm
$HOME/Mwm
RESOURCE_MANAGER
root window property or
$HOME/.Xdefaults
XENVIRONMENT
variable or
$HOME/.Xdefaults-host
The file names /usr/lib/X11/app-defaults/Mwm
and
$HOME/Mwm
represent customary locations for these files.
The actual location of the system-wide class resource file may depend
on the XFILESEARCHPATH
environment variable and the
current language environment. The actual location of the
user-specific class resource file may depend on the
XUSERFILESEARCHPATH
and XAPPLRESDIR
environment variables and the current language environment.
Entries in the resource database may refer to other resource files for specific types of resources. These include files that contain bitmaps, fonts, and mwm specific resources such as menus and behavior specifications (for example, button and key bindings).
Mwm is the resource class name of mwm and mwm is the default resource name used by mwm to look up resources. the -screens command line option specifies resource names, such as "mwm_b+w" and "mwm_color".) In the following discussion of resource specification, "Mwm" and "mwm" (and the aliased mwm resource names) can be used interchangeably, but "mwm" takes precedence over "Mwm".
mwm uses the following types of resources:
Component Appearance Resources:
These resources specify appearance attributes of window manager user interface components. They can be applied to the appearance of window manager menus, feedback windows (for example, the window reconfiguration feedback window), client window frames, and icons.
General Appearance and Behavior Resources:
These resources specify mwm appearance and behavior (for example, window management policies). They are not set separately for different mwm user interface components.
Client Specific Resources:
These mwm resources can be set for a particular client window or class of client windows. They specify client-specific icon and client window frame appearance and behavior.
Resource identifiers can be either a resource name (for example,
foreground) or a resource class (for example, Foreground). If the
value of a resource is a filename and if the filename is prefixed by
"~/", then it is relative to the path contained in the
HOME
environment variable (generally the user's home
directory).
The syntax for specifying component appearance resources that apply to window manager icons, menus, and client window frames is
Mwm*resource_id
For example, Mwm*foreground
is used to specify the
foreground color for mwm menus, icons, client window
frames, and feedback dialogs.
The syntax for specifying component appearance resources that apply to a particular mwm component is
Mwm*[menu|icon|client|feedback]*resource_id
If menu is specified, the resource is applied only to
mwm menus; if icon is specified, the
resource is applied to icons; and if client is specified, the
resource is applied to client window frames. For example,
Mwm*icon*foreground
is used to specify the foreground
color for mwm icons, Mwm*menu*foreground
specifies the foreground color for mwm menus, and
Mwm*client*foreground
is used to specify the foreground
color for mwm client window frames.
The appearance of the title area of a client window frame (including window management buttons) can be separately configured. The syntax for configuring the title area of a client window frame is
Mwm*client*title*resource_id
For example, Mwm*client*title*foreground
specifies the
foreground color for the title area. Defaults for title area
resources are based on the values of the corresponding client window
frame resources.
The appearance of menus can be configured based on the name of the menu. The syntax for specifying menu appearance by name is
Mwm*menu*menu_name*resource_id
For example, Mwm*menu*my_menu*foreground
specifies the
foreground color for the menu named my_menu. The
user can also specify resources for window manager menu components,
that is, the gadgets which comprise the menu. These may include for
example, a menu title, title separator, one or more buttons, and
separators. If a menu contains more than one instance of a class, such
as multiple PushButtonGadgets, the name of the first instance is
"PushButtonGadget1", the second is "PushButtonGadget2", and so on. The
following list identifies the naming convention used for window
manager menu components:
Refer to the man page for each class for a list of resources which can be specified.
The following component appearance resources that apply to all window manager parts can be specified:
Name | Class | Value Type | Default |
---|---|---|---|
background | Background | color | varies* |
backgroundPixmap | BackgroundPixmap | string** | varies* |
bottomShadowColor | Foreground | color | varies* |
bottomShadowPixmap | BottomShadowPixmap | string** | varies* |
fontList | FontList | string*** | "fixed" |
foreground | Foreground | color | varies* |
saveUnder | SaveUnder | T/F | F |
topShadowColor | Background | color | varies* |
topShadowPixmap | TopShadowPixmap | string** | varies* |
* The default is chosen based on the visual type of the screen.
** Image name. See XmInstallImage(3X).
***X11 X Logical Font Description
The following component appearance resources that apply to frame and icons can be specified:
Name | Class | Value Type | Default |
---|---|---|---|
activeBackground | Background | color | varies* |
activeBackgroundPixmap | BackgroundPixmap | string** | varies* |
activeBottomShadowColor | Foreground | color | varies* |
activeBottomShadowPixmap | BottomShadowPixmap | string** | varies* |
activeForeground | Foreground | color | varies* |
activeTopShadowColor | Background | color | varies* |
activeTopShadowPixmap | TopShadowPixmap | string** | varies* |
*The default is chosen based on the visual type of the screen.
**See XmInstallImage(3X).
The syntax for specifying general appearance and behavior resources is
Mwm*resource_id
For example, Mwm*keyboardFocusPolicy
specifies the
window manager policy for setting the keyboard focus to a particular
client window.
The following general appearance and behavior resources can be specified:
Name | Class | Value Type | Default |
---|---|---|---|
autoKeyFocus | AutoKeyFocus | T/F | T |
autoRaiseDelay | AutoRaiseDelay | millisec | 500 |
bitmapDirectory | BitmapDirectory | directory | /usr/include/X11/bitmaps |
buttonBindings | ButtonBindings | string | "DefaultButtonBindings" |
cleanText | CleanText | T/F | T |
clientAutoPlace | ClientAutoPlace | T/F | T |
colormapFocusPolicy | ColormapFocusPolicy | string | keyboard |
configFile | ConfigFile | file | .mwmrc |
deiconifyKeyFocus | DeiconifyKeyFocus | T/F | T |
doubleClickTime | DoubleClickTime | millisec. | multi-click time |
enableWarp | enableWarp | T/F | T |
enforceKeyFocus | EnforceKeyFocus | T/F | T |
fadeNormalIcon | FadeNormalIcon | T/F | F |
feedbackGeometry | FeedbackGeometry | string | center on screen |
frameBorderWidth | FrameBorderWidth | pixels | varies |
iconAutoPlace | IconAutoPlace | T/F | T |
iconBoxGeometry | IconBoxGeometry | string | 6x1+0-0 |
iconBoxName | IconBoxName | string | iconbox |
iconBoxSBDisplayPolicy | IconBoxSBDisplayPolicy | string | all |
iconBoxTitle | IconBoxTitle | XmString | Icons |
iconClick | IconClick | T/F | T |
iconDecoration | IconDecoration | string | varies |
iconImageMaximum | IconImageMaximum | wxh | 50x50 |
iconImageMinimum | IconImageMinimum | wxh | 16x16 |
iconPlacement | IconPlacement | string | left bottom |
iconPlacementMargin | IconPlacementMargin | pixels | varies |
interactivePlacement | InteractivePlacement | T/F | F |
keyBindings | KeyBindings | string | "DefaultKeyBindings" |
keyboardFocusPolicy | KeyboardFocusPolicy | string | explicit |
limitResize | LimitResize | T/F | T |
lowerOnIconify | LowerOnIconify | T/F | T |
maximumMaximumSize | MaximumMaximumSize | wxh (pixels) | 2X screen w&h |
moveThreshold | MoveThreshold | pixels | 4 |
moveOpaque | MoveOpaque | T/F | F |
multiScreen | MultiScreen | T/F | F |
passButtons | PassButtons | T/F | F |
passSelectButton | PassSelectButton | T/F | T |
positionIsFrame | PositionIsFrame | T/F | T |
positionOnScreen | PositionOnScreen | T/F | T |
quitTimeout | QuitTimeout | millisec. | 1000 |
raiseKeyFocus | RaiseKeyFocus | T/F | F |
resizeBorderWidth | ResizeBorderWidth | pixels | varies |
resizeCursors | ResizeCursors | T/F | T |
screens | Screens | string | varies |
showFeedback | ShowFeedback | string | all |
startupKeyFocus | StartupKeyFocus | T/F | T |
transientDecoration | TransientDecoration | string | menu title |
transientFunctions | TransientFunctions | string | -minimize -maximize |
useIconBox | UseIconBox | T/F | F |
wMenuButtonClick | WMenuButtonClick | T/F | T |
wMenuButtonClick2 | WMenuButtonClick2 | T/F | T |
/usr/include/X11/bitmaps
. The directory
/usr/include/X11/bitmaps
represents the customary
locations for this directory. The actual location of this directory
may vary on some systems. If the bitmap is not found in the specified
directory, XBMLANGPATH
is searched.
If the pathname begins with "~/", mwm considers it
to be relative to the user's home directory (as specified by the
HOME
environment variable). If the LANG
environment variable is set, mwm looks for
$HOME/$LANG/configFile
. If that file does not
exist or if LANG
is not set, mwm looks
for $HOME/configFile
.
If the configFile pathname does not begin with ~/, mwm considers it to be relative to the current working directory.
If the configFile resource is not specified or if
that file does not exist, mwm uses several default
paths to find a configuration file. If the LANG
environment variable is set, mwm looks for the
configuration file first in $HOME/$LANG/.mwmrc
. If that
file does not exist or if LANG
is not set,
mwm looks for $HOME/.mwmrc
. If that
file does not exist and if LANG
is set,
mwm next looks for the file system.mwmrc in the
$LANG
subdirectory of an implementation-dependent
directory. (The default for this directory, if not changed by the
implementation, is /usr/lib/X11.
) If that file does not
exist or if LANG
is not set, mwm looks
for the file system.mwmrc in the same implementation-dependent
directory.
[=]+-}xoffset{+-}yoffset]
[=][widthxheight][{+-}xoffset{<+-}yoffset]
If the offsets are not provided, the iconPlacement policy is used to determine the initial placement. The units for width and height are columns and rows.
The actual screen size of the icon box window depends on the iconImageMaximum (size) and iconDecoration resources. The + padding) high. The default value of the location is +0 -0.
primary_layout secondary_layout [tight]
The layout values are one of the following:
Value | Description |
---|---|
top | Lay the icons out top to bottom. |
bottom | Lay the icons out bottom to top. |
left | Lay the icons out left to right. |
right | Lay the icons out right to left. |
A horizontal (vertical) layout value should not be used for both the primary_layout and the secondary_layout (for example, don't use top for the primary_layout and bottom for the secondary_layout). The primary_layout indicates whether, when an icon placement is done, the icon is placed in a row or a column and the direction of placement. The secondary_layout indicates where to place new rows or columns. For example, top right indicates that icons should be placed top to bottom on the screen and that columns should be added from right to left on the screen. The default placement is left bottom (icons are placed left to right on the screen, with the first row on the bottom of the screen, and new rows added from the bottom of the screen to the top of the screen). A tight value places icons with zero spacing in between icons. This value is useful for aesthetic reasons, as well as X-terminals with small screens.
WM_COMMAND
property after mwm has sent
the WM_SAVE_YOURSELF
message. The default value of this
resource is 1000 (ms). (Refer to the f.kill
function description for additional information.)
The value for this resource is a list of names of the feedback options to be enabled or disabled; the names must be separated by a space. If an option is preceded by a minus sign, that option is excluded from the list. The sign of the first item in the list determines the initial set of options. If the sign of the first option is minus, mwm assumes all options are present and starts subtracting from that set. If the sign of the first decoration is plus (or not specified), mwm starts with no options and builds up a list from the resource.
The names of the feedback options are shown below:
Name | Description |
---|---|
all | Show all feedback (Default value) |
behavior | Confirm behavior switch |
kill | Confirm on receipt of KILL signal |
move | Show position during move |
none | Show no feedback |
placement | Show position and size during initial placement |
quit | Confirm quitting mwm |
resize | Show size during resize |
restart | Confirm mwm restart |
The following command line illustrates the syntax for showFeedback:
Mwm*showFeedback: placement resize behavior restart
This resource specification provides feedback for initial client placement and resize, and enables the dialog boxes to confirm the restart and set behavior functions. It disables feedback for the move function. The default value for this resource is all.
WM_TRANSIENT_FOR
property, which is added by the client to indicate a relatively
temporary window. The default value for this resource is menu title
(that is, transient windows have frame borders and a titlebar with a
window menu button).
An application can also specify which decorations mwm should apply to its windows. If it does so, mwm applies only those decorations indicated by both the application and the transientDecoration resource. Otherwise, mwm applies the decorations indicated by the transientDecoration resource. For more information see the description of XmNmwmDecorations on the VendorShell(3X) reference page.
An application can also specify which functions mwm should apply to its windows. If it does so, mwm applies only those functions indicated by both the application and the transientFunctions resource. Otherwise, mwm applies the functions indicated by the transientFunctions resource. For more information see the description of XmNmwmFunctions on the VendorShell(3X) reference page.
The syntax for specifying client specific resources is
Mwm*client_name_or_class*resource_idFor example,
Mwm*mterm*windowMenu
is used to specify the
window menu to be used with mterm clients. The syntax for specifying
client specific resources for all classes of clients is
Mwm*resource_id
Specific client specifications take precedence over the
specifications for all clients. For example,
Mwm*windowMenu
is used to specify the window menu to be
used for all classes of clients that don't have a window menu
specified.
The syntax for specifying resource values for windows that have an
unknown name and class (that is, windows that do not have a
WM_CLASS
property associated with them) is
Mwm*defaults*resource_idFor example,
Mwm*defaults*iconImage
is used to specify
the icon image to be used for windows that have an unknown name and
class.
The following client specific resources can be specified:
Name | Class | Value Type | Default |
---|---|---|---|
clientDecoration | ClientDecoration | string | all |
clientFunctions | ClientFunctions | string | all |
focusAutoRaise | FocusAutoRaise | T/F | varies |
iconImage | IconImage | pathname | (image) |
iconImageBackground | Background | color | icon background |
iconImageBottomShadowColor | Foreground | color | icon bottom shadow |
iconImageBottomShadowPixmap | BottomShadowPixmap | color | icon bottomshadow pixmap |
iconImageForeground | Foreground | color | varies |
iconImageTopShadowColor | Background | color | icon top shadow color |
iconImageTopShadowPixmap | TopShadowPixmap | color | icon top shadow pixmap |
matteBackground | Background | color | background |
matteBottomShadowColor | Foreground | color | bottom shadow color |
matteBottomShadowPixmap | BottomShadowPixmap | color | bottom shadow pixmap |
matteForeground | Foreground | color | foreground |
matteTopShadowColor | Background | color | top shadow color |
matteTopShadowPixmap | TopShadowPixmap | color | top shadow pixmap |
matteWidth | MatteWidth | pixels | 0 |
maximumClientSize | MaximumClientSize | wxh | fill the screen vertical horizontal |
useClientIcon | UseClientIcon | T/F | F |
usePPosition | UsePPosition | string | nonzero |
windowMenu | WindowMenu | string | DefaultWindowMenu" |
An application can also specify which decorations mwm should apply to its windows. If it does so, mwm applies only those decorations indicated by both the application and the clientDecoration resource. Otherwise, mwm applies the decorations indicated by the clientDecoration resource. For more information see the description of XmNmwmDecorations on the VendorShell(3X) reference page.
Name | Description |
---|---|
all | Include all decorations (default value) |
border | Window border |
maximize | Maximize button (includes title bar) |
minimize | Minimize button (includes title bar) |
none | No decorations |
resizeh | Border resize handles (includes border) |
menu | Window menu button (includes title bar) |
title | Title bar (includes border) |
Examples:
Mwm*XClock.clientDecoration: -resizeh -maximize
This removes the resize handles and maximize button from XClock windows.
Mwm*XClock.clientDecoration: menu minimize border
This does the same thing as above. Note that either menu or minimize implies title.
An application can also specify which functions mwm should apply to its windows. If it does so, mwm applies only those functions indicated by both the application and the clientFunctions resource. Otherwise, mwm applies the functions indicated by the clientFunctions resource. For more information see the description of XmNmwmFunctions on the VendorShell(3X) reference page.
Name | Description |
---|---|
all | Include all functions (default value) |
none | No functions |
resize | f.resize |
move | f.move |
minimize | f.minimize |
maximize | f.maximize |
close | f.kill |
If this resource is not specified, the maximum size from the
WM_NORMAL_HINTS
property is used if set. Otherwise the
default value is the size where the client window with window
management borders fills the screen. When the maximum client size is
not determined by the maximumClientSize resource, the
maximumMaximumSize resource value is used as a constraint on the
maximum size.
WM_NORMAL_HINTS
property in the absence of an user
specified position. Setting this resource to on, causes
mwm to always honor program specified
position. Setting this resource to off, causes mwm to
always ignore program specified position. Setting this resource to the
default value of nonzero cause mwm to honor program
specified position other than (0,0).
The MWM resource description file is a supplementary resource file
that contains resource descriptions that are referred to by entries in
the defaults files (.Xdefaults
,
app-defaults/Mwm
). It contains descriptions of resources
that are to be used by mwm, and that cannot be easily
encoded in the defaults files (a bitmap file is an analogous type of
resource description file). A particular mwm resource
descriptionfile can be selected using the
configFile resource.
The following types of resources can be described in the mwm resource description file:
The mwm resource description file is a standard text file that contains items of information separated by blanks, tabs, and newline characters. Blank lines are ignored. Items or characters can be quoted to avoid special interpretation (for example, the comment character can be quoted to prevent it from being interpreted as the comment character). A quoted item can be contained in double quotes ("). Single characters can be quoted by preceding them by the backslash character (\). All text from an unquoted # to the end of the line is regarded as a comment and is not interpreted as part of a resource description. If ! is the first character in a line, the line is regarded as a comment. If a line ends in a backslash character (\), the next line is considered a continuation of that line. Window manager functions can be accessed with button and key bindings, and with window manager menus. Functions are indicated as part of the specifications for button and key binding sets, and menu panes. The function specification has the following syntax:
function =~function_name [function_args] function_name =~window manager function function_args =~{quoted_item | unquoted_item}
The following functions are supported. If a function is specified that isn't one of the supported functions, then it is interpreted by mwm as f.nop.
WM_DELETE_WINDOW
protocol is set up, the client is sent a
client message event, indicating that the client window should be
deleted. If the WM_SAVE_YOURSELF
protocol is set up, the
client is sent a client message event, indicating that the client
needs to prepare to be terminated. If the client does not have the
WM_DELETE_WINDOW
or WM_SAVE_YOURSELF
protocol set up, this function causes a client's X connection to be
terminated (usually resulting in termination of the client). Refer to
the description of the quitTimeout resource and the
WM_PROTOCOLS
property.
The client argument indicates the name or class of a client to lower. If the client argument is not specified, the context that the function was invoked in indicates the window or icon to lower.
Specifying within lowers the secondary window within the family (staying above the parent) but does not lower the client family in the global window stack.
Specifying freeFamily lowers the window to the bottom of the global windows stack from its local family stack.
The client argument indicates the name or class of a client to lower. If the client is not specified, the context that the function was invoked in indicates the window or icon to lower.
Specifying within raises the secondary window within the family but does not raise the client family in the global window stack.
Specifying freeFamily raises the window to the top of its local family stack and raises the family to the top of the global window stack.
Specifying within raises a secondary window within the family (staying above the parent window), if it is partially obscured by another window in the application's family; otherwise, it lowers the window to the bottom of the family stack. It has no effect on the global window stacking order.
Specifying freeFamily raises the window to the top of its local family stack, if obscured by another window, and raises the family to the top of the global window stack; otherwise, it lowers the window to the bottom of its local family stack and lowers the family to the bottom of the global window stack.
The screen_number argument indicates the screen number that the pointer is to be warped. Screens are numbered starting from screen 0.
Specifying next cause the pointer to warp to the next managed screen (skipping over any unmanaged screens).
Specifying prev cause the pointer to warp to the previous managed screen (skipping over any unmanaged screens).
Specifying back cause the pointer to warp to the last visited screen.
_MOTIF_WM_MESSAGES
with the message_type
indicated by the message_number function argument. The
client message is sent only if message_number is included in
the client's _MOTIF_WM_MESSAGES
property. A menu item
label is grayed out if the menu item is used to do f.send_msg of a message that is not
included in the client's _MOTIF_WM_MESSAGES
property.
Each function may be constrained as to which resource types can specify the function (for example, menu pane) and also what context the function can be used in (for example, the function is done to the selected client window). Function contexts are
If a function's context has been specified as icon|window and the function is invoked in an icon box, the function applies to the icon box, not to the icons inside.
If a function is specified in a type of resource where it is not supported or is invoked in a context that does not apply, the function is treated as f.nop. The following table indicates the resource types and function contexts in which window manager functions apply.
Function | Context | Resources |
---|---|---|
f.beep | root, icon, window | button, key, menu |
f.circle_down | root, icon, window | button, key, menu |
f.circle_up | root, icon, window | button, key, menu |
f.exec | root, icon, window | button, key, menu |
f.focus_color | root, icon, window | button, key, menu |
f.focus_key | root, icon, window | button, key, menu |
f.kill | icon, window | button, key, menu |
f.lower | icon, window | button, key, menu |
f.maximize | icon, window(normal) | button, key, menu |
f.menu | root, icon, window | button, key, menu |
f.minimize | window | button, key, menu |
f.move | icon, window | button, key, menu |
f.nop | root, icon, window | button, key, menu |
f.normalize | icon, window(maximized) | button, key, menu |
f.normalize_and_raise | icon, window | button, key, menu |
f.pack_icons | root, icon, window | button, key, menu |
f.pass_keys | root, icon, window | button, key, menu |
f.post_wmenu | root, icon, window | button, key |
f.prev_cmap | root, icon, window | button, key, menu |
f.prev_key | root, icon, window | button, key, menu |
f.quit_mwm | root, icon, window | button, key, menu (root only) |
f.raise | icon, window | button, key, menu |
f.raise_lower | icon, window | button, key, menu |
f.refresh | root, icon, window | button, key, menu |
f.refresh_win | window | button, key, menu |
f.resize | window | button, key, menu |
f.restore | icon, window | button, key, menu |
f.restore_and_raise | icon, window | button, key, menu |
f.restart | root, icon, window | button, key, menu (root only) |
f.screen | root, icon, window | button, key, menu |
f.send_msg | icon, window | button, key, menu |
f.separator | root, icon, window | menu |
f.set_behavior | root, icon, window | button, key, menu |
f.title | root, icon, window | menu |
Events are indicated as part of the specifications for button and key-binding sets, and menu panes.
Button events have the following syntax:
button=[modifier_list]<button_event_name> modifier_list=modifier_name {modifier_name}
All modifiers specified are interpreted as being exclusive (this means that only the specified modifiers can be present when the button event occurs). The following table indicates the values that can be used for modifier_name. The [Alt] key is frequently labeled [Extend] or [Meta]. Alt and Meta can be used interchangeably in event specification.
Modifier | Description |
---|---|
Ctrl | Control Key |
Shift | Shift Key |
Alt | Alt/Meta Key |
Meta | Meta/Alt Key |
Lock | Lock Key |
Mod1 | Modifier1 |
Mod2 | Modifier2 |
Mod3 | Modifier3 |
Mod4 | Modifier4 |
Mod5 | Modifier5 |
The following table indicates the values that can be used for button_event_name.
Button | Description |
---|---|
Btn1Down | Button 1 Press |
Btn1Up | Button 1 Release |
Btn1Click | Button 1 Press and Release |
Btn1Click2 | Button 1 Double-Click |
Btn2Down | Button 2 Press |
Btn2Up | Button 2 Release |
Btn2Click | Button 2 Press and Release |
Btn2Click2 | Button 2 Double-Click |
Btn3Down | Button 3 Press |
Btn3Up | Button 3 Release |
Btn3Click | Button 3 Press and Release |
Btn3Click2 | Button 3 Double-Click |
Btn4Down | Button 4 Press |
Btn4Up | Button 4 Release |
Btn4Click | Button 4 Press and Release |
Btn4Click2 | Button 4 Double-Click |
Btn5Down | Button 5 Press |
Btn5Up | Button 5 Release |
Btn5Click | Button 5 Press and Release |
Btn5Click2 | Button 5 Double-Click |
Key events that are used by the window manager for menu mnemonics and for binding to window manager functions are single key presses; key releases are ignored. Key events have the following syntax:
key =[modifier_list]<Key>key_name modifier_list =modifier_name {modifier_name}
All modifiers specified are interpreted as being exclusive (this
means that only the specified modifiers can be present when the key
event occurs). Modifiers for keys are the same as those that apply to
buttons. The key_name is an X11 keysym name. Keysym names
can be found in the keysymdef.h
file (remove the
XK_ prefix).
The buttoBindings resource value is the name of a set of button bindings that are used to configure window manager behavior. A window manager function can be done when a button press occurs with the pointer over a framed client window, an icon, or the root window. The context for indicating where the button press applies is also the context for invoking the window manager function when the button press is done (significant for functions that are context sensitive).
The button binding syntax is
Buttons bindings_set_name { button context function button context function . . button context function }
The syntax for the context specification is
context=object[ |context] object=root|icon|window|title|frame|border|app
The context specification indicates where the pointer must be for the button binding to be effective. For example, a context of window indicates that the pointer must be over a client window or window management frame for the button binding to be effective. The frame context is for the window management frame around a client window (including the border and titlebar), the border context is for the border part of the window management frame (not including the titlebar), the title context is for the title area of the window management frame, and the app context is for the application window (not including the window management frame).
If an f.nop function is specified for a button binding, the button binding is not done.
The keyBindings resource value is the name of a set of key bindings that are used to configure window manager behavior. A window manager function can be done when a particular key is pressed. The context in which the key binding applies is indicated in the key binding specification. The valid contexts are the same as those that apply to button bindings.
The key binding syntax is
Keys bindings_set_name
{ key context function key context function . . key context function }
If an f.nop function is specified for a key binding, the key binding is not done. If an f.post_wmenu or f.menu function is bound to a key, mwm will automatically use the same key for removing the menu from the screen after it has been popped up.
The context specification syntax is the same as for button bindings. For key bindings, the frame, title, border, and app contexts are equivalent to the window context. The context for a key event is the window or icon that has the keyboard input focus (root if no window or icon has the keyboard input focus).
Menus can be popped up using the f.post_wmenu and f.menu window manager functions. The context for window manager functions that are done from a menu is root, icon or window depending on how the menu was popped up. In the case of the window menu or menus popped up with a key binding, the location of the keyboard input focus indicates the context. For menus popped up using a button binding, the context of the button binding is the context of the menu.
The menu pane specification syntax is
Menu menu_name { label [mnemonic] [accelerator] function label [mnemonic] [accelerator] function . . label [mnemonic] [accelerator] function }
Each line in the Menu specification identifies the label for a menu item and the function to be done if the menu item is selected. Optionally a menu button mnemonic and a menu button keyboard accelerator may be specified. Mnemonics are functional only when the menu is posted and keyboard traversal applies.
The label may be a string or a bitmap file. The label specification has the following syntax:
label = text | bitmap_file bitmap_file = @file_name text = quoted_item | unquoted_item
The string encoding for labels must be compatible with the menu font that is used. Labels are greyed out for menu items that do the f.nop function or an invalid function or a function that doesn't apply in the current context.
A mnemonic specification has the following syntax
mnemonic = _character
The first matching character in the label is underlined. If there is no matching character in the label, no mnemonic is registered with the window manager for that label. Although the character must exactly match a character in the label, the mnemonic does not execute if any modifier (such as Shift) is pressed with the character key.
The accelerator specification is a key event specification with the same syntax as is used for key bindings to window manager functions.
mwm uses the environment variable
HOME
specifying the user's home directory.
mwm uses the environment variable
LANG
specifying the user's choice of language for the
mwm message catalog and the mwm
resource description file.
mwm uses the environment variables
XFILESEARCHPATH
, XUSERFILESEARCHPATH
,
XAPPLRESDIR
, XENVIRONMENT
,
LANG
, and HOME
in determining search paths
for resource defaults files. mwm may also use
XBMLANGPATH
to search for bitmap files.
mwm reads the $HOME/.motifbind
file
if it exists to install a virtual key bindings property on the root
window. For more information on the content of the
.motifbind
file, see VirtualBindings(3X).
mwm uses the environment variable
MWMSHELL
(or SHELL
, if MWMSHELL
is not set), specifying the shell to use when executing commands via
the f.exec function.
/usr/lib/X11/$LANG/system.mwmrc
/usr/lib/X11/system.mwmrc
/usr/lib/X11/app-defaults/Mwm
$HOME/Mwm
$HOME/.Xdefaults
$HOME/$LANG/.mwmrc
$HOME/.mwmrc
$HOME/.motifbind