mwmrc(4)
NAME
mwmrc -- the Motif Window Manager Resource Description
File
DESCRIPTION
- The mwmrc file is a supplementary resource file that con
trols much of the behavior of the Motif window manager
mwm. It contains descriptions of resources that cannot
easily be written using standard X Window System, Version
11 resource syntax. The resource description file contains
entries that are referred to by X resources in defaults
files (for example, /usr/X11R6/lib/X11/app-defaults/Mwm) or in the RESOURCE_MANAGER property on the root window. For example, the resource description file enables you to
specify different types of window menus; however, an X
resource is used to specify which of these window menus
mwm should use for a particular window. - Location
- The window manager searches for one of the following
resource description files, where $LANG is the value of
the language environment on a per-user basis: - $HOME/$LANG/.mwmrc
$HOME/.mwmrc
/usr/X11R6/lib/X11/$LANG/system.mwmrc
/usr/X11R6/lib/X11/system.mwmrc - The first file found is the first used. If no file is
found, a set of built-in specifications is used. A partic
ular resource description file can be selected using the
configFile resource. The following shows how a different resource description file can be specified from the com
mand line: - /usr/X11R6/bin/X11/mwm -xrm "mwm*configFile: mymwmrc"
- Resource Types
- The following types of resources can be described in the
mwm resource description file: - Buttons Window manager functions can be bound (associ
ated) with button events.
- Keys Window manager functions can be bound (associ
- ated) with key press events.
- Menus Menu panes can be used for the window menu and
- other menus posted with key bindings and button
bindings.
MWM RESOURCE DESCRIPTION FILE SYNTAX
- The mwm resource description file is a standard text file
that contains items of information separated by blanks,
tabs, and new lines characters. Blank lines are ignored.
Items or characters can be quoted to avoid special inter
pretation (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 back-slash character . If a line
ends with a back-slash, the next line is considered a con
tinuation of that line. All text from an unquoted # to the
end of the line is regarded as a comment and is not inter
preted as part of a resource description. If ! is the
first character in a line, the line is regarded as a com
ment. - Window Manager Functions
- 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. - f.beep This function causes a beep.
- f.circle_down [ icon | window]
This function causes the window or icon that is
on the top of the window stack to be put on the
bottom of the window stack (so that it is no
longer obscuring any other window or icon). This
function affects only those windows and icons
that are obscuring other windows and icons, or
that are obscured by other windows and icons.
Secondary windows (that is, transient windows)
are restacked with their associated primary win
dow. Secondary windows always stay on top of the
associated primary window and there can be no
other primary windows between the secondary win
dows and their primary window. If an icon func
tion argument is specified, then the function
applies only to icons. If a window function argument is specified then the function applies
only to windows. - f.circle_up [ icon | window]
- This function raises the window or icon on the
bottom of the window stack (so that it is not
obscured by any other windows). This function
affects only those windows and icons that are
obscuring other windows and icons, or that are
obscured by other windows and icons. Secondary
windows (that is, transient windows) are
restacked with their associated primary window.
If an icon function argument is specified then
the function applies only to icons. If an window function argument is specified then the function
applies only to windows. - f.exec command (or ! command)
- This function causes command to be executed
(using the value of the $MWMSHELL or $SHELL
environment variable if set; otherwise, /bin/sh
). The ! notation can be used in place of the
f.exec function name. - f.focus_color
- This function sets the colormap focus to a
client window. If this function is done in a
root context, then the default colormap (setup
by the X Window System for the screen where mwm
is running) is installed and there is no spe
cific client window colormap focus. This func
tion is treated as f.nop if colormapFocusPolicy is not explicit. - f.focus_key
- This function sets the keyboard input focus to a
client window or icon. This function is treated
as f.nop if keyboardFocusPolicy is not explicit or the function is executed in a root context. - f.kill This function is used to close application win
- dows. The actual processing that occurs depends
on the protocols that the application observes.
The application lists the protocols it observes
in the WM_PROTOCOLS property on its top level window. If the application observes the
WM_DELETE_WINDOW protocol, it is sent a message that requests the window be deleted. If the
application observes both WM_DELETE_WINDOW and WM_SAVE_YOURSELF, it is sent one message requesting the window be deleted and another
message advising it to save its state. If the
application observes only the WM_SAVE_YOURSELF protocol , it is sent a message advising it to
save its state. After a delay (specified by the
resource quitTimeout), the application's connec tion to the X server is terminated. If the
application observes neither of these protocols,
its connection to the X server is terminated. - f.lower [- client | within | freeFamily]
- This function lowers a primary window to the
bottom of the global window stack (where it
obscures no other window) and lowers the sec
ondary window (transient window or dialog box)
within the client family. The arguments to this
function are mutually exclusive. The client argument indicates the name or class of a client
to lower. The name or class of a client appears
in the WM_CLASS property on the client's toplevel window. 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 par
ent) but does not lower the client family in the
global window stack. Specifying freeFamily low ers the window to the bottom of the global win
dows stack from its local family stack. - f.maximize
- This function causes a client window to be dis
played with its maximum size. Refer to the maxi_
mumClientSize, maximumMaximumSize, and limitRe_ size resources in mwm(1). - f.menu menu_name
- This function associates a cascading (pullright) menu with a menu pane entry or a menu
with a button or key binding. The menu_name function argument identifies the menu to be
used. - f.minimize
- This function causes a client window to be mini
mized (iconified). When a window is minimized
with no icon box in use, and if the lowerOnI_ conify resource has the value True (the default), the icon is placed on the bottom of
the window stack (such that it obscures no other
window). If an icon box is used, then the
client's icon changes to its iconified form
inside the icon box. Secondary windows (that is,
transient windows) are minimized with their
associated primary window. There is only one
icon for a primary window and all its secondary
windows. - f.move This function initiates an interactive move of a
- client window.
- f.next_cmap
- This function installs the next colormap in the
list of colormaps for the window with the col
ormap focus. - f.next_key [ icon | window | transient]
- This function sets the keyboard input focus to
the next window/icon in the set of windows/icons
managed by the window manager (the ordering of
this set is based on the stacking of windows on
the screen). This function is treated as f.nop
if keyboardFocusPolicy is not explicit. The key board input focus is only moved to windows that
do not have an associated secondary window that
is application modal. If the transient argument is specified, then transient (secondary) windows
are traversed (otherwise, if only window is specified, traversal is done only to the last
focused window in a transient group). If an icon
function argument is specified, then the func
tion applies only to icons. If a window function argument is specified, then the function applies
only to windows. - f.nop This function does nothing.
- f.normalize
- This function causes a client window to be dis
played with its normal size. Secondary windows
(that is, transient windows) are placed in their
normal state along with their associated primary
window. - f.normalize_and_raise
- This function causes a client window to be dis
played with its normal size and raised to the
top of the window stack. Secondary windows (that
is, transient windows) are placed in their nor
mal state along with their associated primary
window. - f.pack_icons
- This function is used to relayout icons (based
on the layout policy being used) on the root
window or in the icon box. In general this
causes icons to be "packed" into the icon grid. - f.pass_keys
- This function is used to enable/disable (toggle)
processing of key bindings for window manager
functions. When it disables key binding process
ing all keys are passed on to the window with
the keyboard input focus and no window manager
functions are invoked. If the f.pass_keys func tion is invoked with a key binding to disable
key binding processing the same key binding can
be used to enable key binding processing. - f.post_wmenu
- This function is used to post the window menu.
If a key is used to post the window menu and a
window menu button is present, the window menu
is automatically placed with its top-left corner
at the bottom-left corner of the window menu
button for the client window. If no window menu
button is present, the window menu is placed at
the top-left corner of the client window. - f.prev_cmap
- This function installs the previous colormap in
the list of colormaps for the window with the
colormap focus. - f.prev_key [ icon | window | transient]
- This function sets the keyboard input focus to
the previous window/icon in the set of win
dows/icons managed by the window manager (the
ordering of this set is based on the stacking of
windows on the screen). This function is treated
as f.nop if keyboardFocusPolicy is not explicit. The keyboard input focus is only moved to win
dows that do not have an associated secondary
window that is application modal. If the tran_
sient argument is specified, then transient
(secondary) windows are traversed (otherwise, if
only window is specified, traversal is done only to the last focused window in a transient
group). If an icon function argument is speci
fied then the function applies only to icons. If
an window function argument is specified then the function applies only to windows. - f.quit_mwm
- This function terminates mwm (but NOT the X win
dow system). - f.raise [-client | within | freeFamily]
- This function raises a primary window to the top
of the global window stack (where it is obscured
by no other window) and raises the secondary
window (transient window or dialog box) within
the client family. The arguments to this func
tion are mutually exclusive. The client argument indicates the name or class of a client to
lower. If the client is not specified, the con
text 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. - f.raise_lower [ within | freeFamily]
- This function raises a primary window to the top
of the global window stack if it is partially
obscured by another window; otherwise, it lowers
the window to the bottom of the window stack.
The arguments to this function are mutually
exclusive. Specifying within raises a secondary window within the family (staying above the par
ent window), if it is partially obscured by
another window in the application's family; oth
erwise, 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. - f.refresh This function causes all windows to be redrawn.
- f.refresh_win
- This function causes a client window to be
redrawn. - f.resize This function initiates an interactive resize of
- a client window.
- f.restore This function restores the previous state of an
- icon's associated window. If a maximized window
is iconified, then f.restore restores it to its maximized state. If a normal window is iconi
fied, then f.restore restores it to its normal ized state. - f.restore_and_raise
- This function restores the previous state of an
icon's associated window and raises the window
to the top of the window stack. If a maximized
window is iconified, then f.restore_and_raise restores it to its maximized state and raises it
to the top of the window stack. If a normal win
dow is iconified, then f.restore_and_raise restores it to its normalized state and raises
it to the top of the window stack. - f.restart This function causes mwm to be restarted (effec
- tively terminated and re-executed). Restart is
necessary for mwm to incorporate changes in both
the mwmrc file and X resources. - f.screen [ next | prev | back | screen_number]
- This function causes the pointer to be warp to a
specific screen number or to the next, previous, or last visited (back) screen. The arguments to
this function are mutually exclusive. The
screen_number argument indicates the screen num ber that the pointer is to be warped. Screens
are numbered starting from screen 0. Specifying
next cause the pointer to warp to the next man
aged 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. - f.send_msg message_number
- This function sends an XClientMessageEvent of
type _MOTIF_WM_MESSAGES with message_type set to
message_number. 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. - f.separator
- This function causes a menu separator to be put
in the menu pane at the specified location (the
label is ignored). - f.set_behavior
- This function causes the window manager to
restart with the default behavior (if a custom
behavior is configured) or a custom behavior (if
a default behavior is configured). By default
this is bound to Shift Ctrl Alt <Key>!. - f.title This function inserts a title in the menu pane
- at the specified location.
- f.version This function causes the window manager to dis
- play its release version in a dialog box.
- Function Constraints
- 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 win
dow). Function contexts are: - root No client window or icon has been selected as an
object for the function.
- window A client window has been selected as an object
- for the function. This includes the window's
title bar and frame. Some functions are applied
only when the window is in its normalized state
(for example, f.maximize) or its maximized state (for example, f.normalize). - icon An icon has been selected as an object for the
- function.
- 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 then the function is treated as f.nop. The following
table indicates the resource types and function contexts
in which window manager functions apply. - Function Contexts Re
- sources
------------------------------------------------------------------------------f.beep root,icon,window but - ton,key,menu
f.circle_down root,icon,window but - ton,key,menu
f.circle_up root,icon,window but - ton,key,menu
f.exec root,icon,window but - ton,key,menu
- f.focus_color root,icon,window but
- ton,key,menu
f.focus_key root,icon,window but - ton,key,menu
f.kill icon,window but - ton,key,menu
f.lower root,icon,window but - ton,key,menu
f.maximize icon,window(normal) but - ton,key,menu
f.menu root,icon,window but - ton,key,menu
f.minimize window but - ton,key,menu
f.move icon,window but - ton,key,menu
f.next_cmap root,icon,window but - ton,key,menu
f.next_key root,icon,window but - ton,key,menu
f.nop root,icon,window but - ton,key,menu
f.normalize icon,window(maximized) but - ton,key,menu
f.normalize_and_raise icon,window but - ton,key,menu
f.pack_icons root,icon,window but - ton,key,menu
f.pass_keys root,icon,window but - ton,key,menu
f.post_wmenu root,icon,window but - ton,key
f.prev_cmap root,icon,window but - ton,key,menu
f.prev_key root,icon,window but - ton,key,menu
f.quit_mwm root but - ton,key,menu (root only)
f.raise root,icon,window but - ton,key,menu
f.raise_lower icon,window but - ton,key,menu
f.refresh root,icon,window but - ton,key,menu
f.refresh_win window but - ton,key,menu
f.resize window but - ton,key,menu
f.restart root but - ton,key,menu (root only)
f.restore icon,window but - ton,key,menu
f.restore_and_raise icon,window but - ton,key,menu
f.screen root,icon,window but - ton,key,menu
f.send_msg icon,window but - ton,key,menu
f.separator root,icon,window menu f.set_behavior root,icon,window but - ton,key,menu
f.title root,icon,window menu
f.version root,icon,window but - ton,key,menu
WINDOW MANAGER EVENT SPECIFICATION
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}
The following table indicates the values that can be used
for modifier_name. Note that [Alt] and [Meta] can be used
interchangably on some hardware.
Modifier Description
----------------------------------------------------------Ctrl Control Key
Shift Shift Key
Alt Alt Key
Meta Meta Key
Mod1 Modifier1
Mod2 Modifier2
Mod3 Modifier3
Mod4 Modifier4
Mod5 Modifier5
Locking modifiers are ignored when processing button and
key bindings. The following table lists keys that are
interpreted as locking modifiers. The X server may map
some of these symbols to the Mod1 - Mod5 modifier keys.
These keys may or may not be available on your hardware:
Key Symbol Caps Lock Shift Lock Kana Lock Num Lock Scroll
Lock 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 pre
sent 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).
BUTTON BINDINGS
The buttonBindings 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 indi
cating 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 manage
ment 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 man
agement frame (not including the titlebar), the title con
text 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 func
tion is specified for a button binding, the button binding
is not done.
KEY BINDINGS
The keyBindings resource value is the name of a set of key
bindings that are used to configure window manager behav
ior. A window manager function can be done when a particu
lar 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 automatically uses 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 with one addition. The
context ifkey may be specified for binding keys that may
not be available on all displays. If the key is not
available and if ifkey is in the context, then reporting
of the error message to the error log is suppressed. This
feature is useful for networked, heterogeneous environ
ments. For key bindings, the frame, title, border, and app contexts are equivalent to the window context. The con
text 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).
MENU PANES
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 win_
dow 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. Mnemon
ics are functional only when the menu is posted and key
board 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 charac ter 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 specifi cation with the same syntax as is used for key bindings to
window manager functions.
INCLUDING FILES
You may include other files into your mwmrc file by using
the include construct. For example,
- INCLUDE
{ - /usr/local/shared/mwm.menus
/home/kmt/personal/my.bindings - }
- causes the files named to be read in and interpreted in
order as an additional part of the mwmrc file. Include is a top-level construct. It cannot be nested inside another
construct.
WARNINGS
Errors that occur during the processing of the resource
description file are recorded in: $HOME/.mwm/errorlog. Be
sure to check this file if the appearance or behavior of
mwm is not what you expect.
FILES
$HOME/$LANG/.mwmrc
$HOME/.mwmrc
/usr/X11R6/lib/X11/$LANG/system.mwmrc
/usr/X11R6/lib/X11/system.mwmrc