1mwmrc(special file) mwmrc(special file)
2
3
4
6 mwmrc — the Motif Window Manager Resource Description File
7
9 The mwmrc file is a supplementary resource file that controls much of
10 the behavior of the Motif window manager mwm. It contains descriptions
11 of resources that cannot easily be written using standard X Window Sys‐
12 tem, Version 11 resource syntax. The resource description file contains
13 entries that are referred to by X resources in defaults files (for
14 example, /usr/share/X11/app-defaults/Mwm) or in the RESOURCE_MANAGER
15 property on the root window. For example, the resource description file
16 enables you to specify different types of window menus; however, an X
17 resource is used to specify which of these window menus mwm should use
18 for a particular window.
19
20 Location
21 The window manager searches for one of the following resource descrip‐
22 tion files, where $LANG is the value of the language environment on a
23 per-user basis:
24
25 $HOME/$LANG/.mwmrc
26 $HOME/.mwmrc
27 /etc/X11/mwm/$LANG/system.mwmrc
28 /etc/X11/mwm/system.mwmrc
29
30 The first file found is the first used. If no file is found, a set of
31 built-in specifications is used. A particular resource description file
32 can be selected using the configFile resource. The following shows how
33 a different resource description file can be specified from the command
34 line:
35
36 /usr/bin/mwm -xrm "mwm*configFile: mymwmrc"
37
38 Resource Types
39 The following types of resources can be described in the mwm resource
40 description file:
41
42 Buttons Window manager functions can be bound (associated) with but‐
43 ton events.
44
45 Keys Window manager functions can be bound (associated) with key
46 press events.
47
48 Menus Menu panes can be used for the window menu and other menus
49 posted with key bindings and button bindings.
50
52 The mwm resource description file is a standard text file that contains
53 items of information separated by blanks, tabs, and new lines charac‐
54 ters. Blank lines are ignored. Items or characters can be quoted to
55 avoid special interpretation (for example, the comment character can be
56 quoted to prevent it from being interpreted as the comment character).
57 A quoted item can be contained in double quotes (" "). Single charac‐
58 ters can be quoted by preceding them by the back-slash character (\).
59 If a line ends with a back-slash, the next line is considered a contin‐
60 uation of that line. All text from an unquoted # to the end of the line
61 is regarded as a comment and is not interpreted as part of a resource
62 description. If ! is the first character in a line, the line is
63 regarded as a comment.
64
65 Window Manager Functions
66 Window manager functions can be accessed with button and key bindings,
67 and with window manager menus. Functions are indicated as part of the
68 specifications for button and key binding sets, and menu panes. The
69 function specification has the following syntax:
70
71 function = function_name [function_args]
72 function_name = window manager function
73 function_args = {quoted_item | unquoted_item}
74
75 The following functions are supported. If a function is specified that
76 isn't one of the supported functions then it is interpreted by mwm as
77 f.nop.
78
79 f.beep This function causes a beep.
80
81 f.circle_down [ icon | window]
82 This function causes the window or icon that is on the top of
83 the window stack to be put on the bottom of the window stack
84 (so that it is no longer obscuring any other window or icon).
85 This function affects only those windows and icons that are
86 obscuring other windows and icons, or that are obscured by
87 other windows and icons. Secondary windows (that is, tran‐
88 sient windows) are restacked with their associated primary
89 window. Secondary windows always stay on top of the associ‐
90 ated primary window and there can be no other primary windows
91 between the secondary windows and their primary window. If an
92 icon function argument is specified, then the function
93 applies only to icons. If a window function argument is spec‐
94 ified then the function applies only to windows.
95
96 f.circle_up [ icon | window]
97 This function raises the window or icon on the bottom of the
98 window stack (so that it is not obscured by any other win‐
99 dows). This function affects only those windows and icons
100 that are obscuring other windows and icons, or that are
101 obscured by other windows and icons. Secondary windows (that
102 is, transient windows) are restacked with their associated
103 primary window. If an icon function argument is specified
104 then the function applies only to icons. If an window func‐
105 tion argument is specified then the function applies only to
106 windows.
107
108 f.exec command (or ! command)
109 This function causes command to be executed (using the value
110 of the $MWMSHELL or $SHELL environment variable if set; oth‐
111 erwise, /bin/sh ). The ! notation can be used in place of the
112 f.exec function name.
113
114 f.focus_color
115 This function sets the colormap focus to a client window. If
116 this function is done in a root context, then the default
117 colormap (setup by the X Window System for the screen where
118 mwm is running) is installed and there is no specific client
119 window colormap focus. This function is treated as f.nop if
120 colormapFocusPolicy is not explicit.
121
122 f.focus_key
123 This function sets the keyboard input focus to a client win‐
124 dow or icon. This function is treated as f.nop if keyboard‐
125 FocusPolicy is not explicit or the function is executed in a
126 root context.
127
128 f.kill This function is used to close application windows. The
129 actual processing that occurs depends on the protocols that
130 the application observes. The application lists the protocols
131 it observes in the WM_PROTOCOLS property on its top level
132 window. If the application observes the WM_DELETE_WINDOW pro‐
133 tocol, it is sent a message that requests the window be
134 deleted. If the application observes both WM_DELETE_WINDOW
135 and WM_SAVE_YOURSELF, it is sent one message requesting the
136 window be deleted and another message advising it to save its
137 state. If the application observes only the WM_SAVE_YOURSELF‐
138 protocol , it is sent a message advising it to save its
139 state. After a delay (specified by the resource quitTimeout),
140 the application's connection to the X server is terminated.
141 If the application observes neither of these protocols, its
142 connection to the X server is terminated.
143
144 f.lower [- client | within | freeFamily]
145 This function lowers a primary window to the bottom of the
146 global window stack (where it obscures no other window) and
147 lowers the secondary window (transient window or dialog box)
148 within the client family. The arguments to this function are
149 mutually exclusive. The client argument indicates the name or
150 class of a client to lower. The name or class of a client
151 appears in the WM_CLASS property on the client's top-level
152 window. If the client argument is not specified, the context
153 that the function was invoked in indicates the window or icon
154 to lower. Specifying within lowers the secondary window
155 within the family (staying above the parent) but does not
156 lower the client family in the global window stack. Specify‐
157 ing freeFamily lowers the window to the bottom of the global
158 windows stack from its local family stack.
159
160 f.maximize
161 This function causes a client window to be displayed with its
162 maximum size. Refer to the maximumClientSize, maximumMaximum‐
163 Size, and limitResize resources in mwm(1).
164
165 f.menu menu_name
166 This function associates a cascading (pull-right) menu with a
167 menu pane entry or a menu with a button or key binding. The
168 menu_name function argument identifies the menu to be used.
169
170 f.minimize
171 This function causes a client window to be minimized (iconi‐
172 fied). When a window is minimized with no icon box in use,
173 and if the lowerOnIconify resource has the value True (the
174 default), the icon is placed on the bottom of the window
175 stack (such that it obscures no other window). If an icon
176 box is used, then the client's icon changes to its iconified
177 form inside the icon box. Secondary windows (that is, tran‐
178 sient windows) are minimized with their associated primary
179 window. There is only one icon for a primary window and all
180 its secondary windows.
181
182 f.move This function initiates an interactive move of a client win‐
183 dow.
184
185 f.next_cmap
186 This function installs the next colormap in the list of col‐
187 ormaps for the window with the colormap focus.
188
189 f.next_key [ icon | window | transient]
190 This function sets the keyboard input focus to the next win‐
191 dow/icon in the set of windows/icons managed by the window
192 manager (the ordering of this set is based on the stacking of
193 windows on the screen). This function is treated as f.nop if
194 keyboardFocusPolicy is not explicit. The keyboard input focus
195 is only moved to windows that do not have an associated sec‐
196 ondary window that is application modal. If the transient
197 argument is specified, then transient (secondary) windows are
198 traversed (otherwise, if only window is specified, traversal
199 is done only to the last focused window in a transient
200 group). If an icon function argument is specified, then the
201 function applies only to icons. If a window function argument
202 is specified, then the function applies only to windows.
203
204 f.nop This function does nothing.
205
206 f.normalize
207 This function causes a client window to be displayed with its
208 normal size. Secondary windows (that is, transient windows)
209 are placed in their normal state along with their associated
210 primary window.
211
212 f.normalize_and_raise
213 This function causes a client window to be displayed with its
214 normal size and raised to the top of the window stack. Sec‐
215 ondary windows (that is, transient windows) are placed in
216 their normal state along with their associated primary win‐
217 dow.
218
219 f.pack_icons
220 This function is used to relayout icons (based on the layout
221 policy being used) on the root window or in the icon box. In
222 general this causes icons to be "packed" into the icon grid.
223
224 f.pass_keys
225 This function is used to enable/disable (toggle) processing
226 of key bindings for window manager functions. When it dis‐
227 ables key binding processing all keys are passed on to the
228 window with the keyboard input focus and no window manager
229 functions are invoked. If the f.pass_keys function is invoked
230 with a key binding to disable key binding processing the same
231 key binding can be used to enable key binding processing.
232
233 f.post_wmenu
234 This function is used to post the window menu. If a key is
235 used to post the window menu and a window menu button is
236 present, the window menu is automatically placed with its
237 top-left corner at the bottom-left corner of the window menu
238 button for the client window. If no window menu button is
239 present, the window menu is placed at the top-left corner of
240 the client window.
241
242 f.prev_cmap
243 This function installs the previous colormap in the list of
244 colormaps for the window with the colormap focus.
245
246 f.prev_key [ icon | window | transient]
247 This function sets the keyboard input focus to the previous
248 window/icon in the set of windows/icons managed by the window
249 manager (the ordering of this set is based on the stacking of
250 windows on the screen). This function is treated as f.nop if
251 keyboardFocusPolicy is not explicit. The keyboard input focus
252 is only moved to windows that do not have an associated sec‐
253 ondary window that is application modal. If the transient
254 argument is specified, then transient (secondary) windows are
255 traversed (otherwise, if only window is specified, traversal
256 is done only to the last focused window in a transient
257 group). If an icon function argument is specified then the
258 function applies only to icons. If an window function argu‐
259 ment is specified then the function applies only to windows.
260
261 f.quit_mwm
262 This function terminates mwm (but NOT the X window system).
263
264 f.raise [-client | within | freeFamily]
265 This function raises a primary window to the top of the
266 global window stack (where it is obscured by no other window)
267 and raises the secondary window (transient window or dialog
268 box) within the client family. The arguments to this function
269 are mutually exclusive. The client argument indicates the
270 name or class of a client to lower. If the client is not
271 specified, the context that the function was invoked in indi‐
272 cates the window or icon to lower. Specifying within raises
273 the secondary window within the family but does not raise the
274 client family in the global window stack. Specifying freeFam‐
275 ily raises the window to the top of its local family stack
276 and raises the family to the top of the global window stack.
277
278 f.raise_lower [ within | freeFamily]
279 This function raises a primary window to the top of the
280 global window stack if it is partially obscured by another
281 window; otherwise, it lowers the window to the bottom of the
282 window stack. The arguments to this function are mutually
283 exclusive. Specifying within raises a secondary window within
284 the family (staying above the parent window), if it is par‐
285 tially obscured by another window in the application's fam‐
286 ily; otherwise, it lowers the window to the bottom of the
287 family stack. It has no effect on the global window stacking
288 order. Specifying freeFamily raises the window to the top of
289 its local family stack, if obscured by another window, and
290 raises the family to the top of the global window stack; oth‐
291 erwise, it lowers the window to the bottom of its local fam‐
292 ily stack and lowers the family to the bottom of the global
293 window stack.
294
295 f.refresh This function causes all windows to be redrawn.
296
297 f.refresh_win
298 This function causes a client window to be redrawn.
299
300 f.resize This function initiates an interactive resize of a client
301 window.
302
303 f.restore This function restores the previous state of an icon's asso‐
304 ciated window. If a maximized window is iconified, then
305 f.restore restores it to its maximized state. If a normal
306 window is iconified, then f.restore restores it to its nor‐
307 malized state.
308
309 f.restore_and_raise
310 This function restores the previous state of an icon's asso‐
311 ciated window and raises the window to the top of the window
312 stack. If a maximized window is iconified, then
313 f.restore_and_raise restores it to its maximized state and
314 raises it to the top of the window stack. If a normal window
315 is iconified, then f.restore_and_raise restores it to its
316 normalized state and raises it to the top of the window
317 stack.
318
319 f.restart This function causes mwm to be restarted (effectively termi‐
320 nated and re-executed). Restart is necessary for mwm to
321 incorporate changes in both the mwmrc file and X resources.
322
323 f.screen [ next | prev | back | screen_number]
324 This function causes the pointer to be warp to a specific
325 screen number or to the next, previous, or last visited
326 (back) screen. The arguments to this function are mutually
327 exclusive. The screen_number argument indicates the screen
328 number that the pointer is to be warped. Screens are numbered
329 starting from screen 0. Specifying next cause the pointer to
330 warp to the next managed screen (skipping over any unmanaged
331 screens). Specifying prev cause the pointer to warp to the
332 previous managed screen (skipping over any unmanaged
333 screens). Specifying back cause the pointer to warp to the
334 last visited screen.
335
336 f.send_msg message_number
337 This function sends an XClientMessageEvent of type
338 _MOTIF_WM_MESSAGES with message_type set to message_number.
339 The client message is sent only if message_number is included
340 in the client's _MOTIF_WM_MESSAGES property. A menu item
341 label is grayed out if the menu item is used to do f.send_msg
342 of a message that is not included in the client's
343 _MOTIF_WM_MESSAGES property.
344
345 f.separator
346 This function causes a menu separator to be put in the menu
347 pane at the specified location (the label is ignored).
348
349 f.set_behavior
350 This function causes the window manager to restart with the
351 default behavior (if a custom behavior is configured) or a
352 custom behavior (if a default behavior is configured). By
353 default this is bound to Shift Ctrl Alt <Key>!.
354
355 f.title This function inserts a title in the menu pane at the speci‐
356 fied location.
357
358 f.version This function causes the window manager to display its
359 release version in a dialog box.
360
361 Function Constraints
362 Each function may be constrained as to which resource types can specify
363 the function (for example, menu pane) and also what context the func‐
364 tion can be used in (for example, the function is done to the selected
365 client window). Function contexts are:
366
367 root No client window or icon has been selected as an object for
368 the function.
369
370 window A client window has been selected as an object for the func‐
371 tion. This includes the window's title bar and frame. Some
372 functions are applied only when the window is in its normal‐
373 ized state (for example, f.maximize) or its maximized state
374 (for example, f.normalize).
375
376 icon An icon has been selected as an object for the function.
377
378 If a function is specified in a type of resource where it is not sup‐
379 ported or is invoked in a context that does not apply then the function
380 is treated as f.nop. The following table indicates the resource types
381 and function contexts in which window manager functions apply.
382
383 Function Contexts Resources
384 ───────────────────────────────────────────────────────────────────────────────
385 f.beep root,icon,window button,key,menu
386 f.circle_down root,icon,window button,key,menu
387 f.circle_up root,icon,window button,key,menu
388 f.exec root,icon,window button,key,menu
389 f.focus_color root,icon,window button,key,menu
390 f.focus_key root,icon,window button,key,menu
391 f.kill icon,window button,key,menu
392 f.lower root,icon,window button,key,menu
393 f.maximize icon,window(normal) button,key,menu
394 f.menu root,icon,window button,key,menu
395 f.minimize window button,key,menu
396 f.move icon,window button,key,menu
397 f.next_cmap root,icon,window button,key,menu
398 f.next_key root,icon,window button,key,menu
399 f.nop root,icon,window button,key,menu
400 f.normalize icon,window(maximized) button,key,menu
401 f.normalize_and_raise icon,window button,key,menu
402
403 f.pack_icons root,icon,window button,key,menu
404 f.pass_keys root,icon,window button,key,menu
405 f.post_wmenu root,icon,window button,key
406 f.prev_cmap root,icon,window button,key,menu
407 f.prev_key root,icon,window button,key,menu
408 f.quit_mwm root button,key,menu (root only)
409 f.raise root,icon,window button,key,menu
410 f.raise_lower icon,window button,key,menu
411 f.refresh root,icon,window button,key,menu
412 f.refresh_win window button,key,menu
413 f.resize window button,key,menu
414 f.restart root button,key,menu (root only)
415 f.restore icon,window button,key,menu
416 f.restore_and_raise icon,window button,key,menu
417 f.screen root,icon,window button,key,menu
418 f.send_msg icon,window button,key,menu
419 f.separator root,icon,window menu
420 f.set_behavior root,icon,window button,key,menu
421 f.title root,icon,window menu
422 f.version root,icon,window button,key,menu
423
425 Events are indicated as part of the specifications for button and key
426 binding sets, and menu panes. Button events have the following syntax:
427
428 button =~[modifier_list ]<button_event_name >
429 modifier_list =~modifier_name { modifier_name}
430
431 The following table indicates the values that can be used for modi‐
432 fier_name. Note that [Alt] and [Meta] can be used interchangably on
433 some hardware.
434
435 Modifier Description
436 ───────────────────────────────────────────────────────────
437 Ctrl Control Key
438 Shift Shift Key
439 Alt Alt Key
440 Meta Meta Key
441 Mod1 Modifier1
442 Mod2 Modifier2
443 Mod3 Modifier3
444 Mod4 Modifier4
445 Mod5 Modifier5
446
447 Locking modifiers are ignored when processing button and key bindings.
448 The following table lists keys that are interpreted as locking modi‐
449 fiers. The X server may map some of these symbols to the Mod1 - Mod5
450 modifier keys. These keys may or may not be available on your hard‐
451 ware: Key Symbol Caps Lock Shift Lock Kana Lock Num Lock Scroll Lock
452 The following table indicates the values that can be used for but‐
453 ton_event_name.
454
455 Button Description
456 ───────────────────────────────────────────────────────────
457 Btn1Down Button 1 Press
458 Btn1Up Button 1 Release
459 Btn1Click Button 1 Press and Release
460 Btn1Click2 Button 1 Double Click
461 Btn2Down Button 2 Press
462 Btn2Up Button 2 Release
463 Btn2Click Button 2 Press and Release
464 Btn2Click2 Button 2 Double Click
465 Btn3Down Button 3 Press
466 Btn3Up Button 3 Release
467 Btn3Click Button 3 Press and Release
468 Btn3Click2 Button 3 Double Click
469
470 Btn4Down Button 4 Press
471 Btn4Up Button 4 Release
472 Btn4Click Button 4 Press and Release
473 Btn4Click2 Button 4 Double Click
474 Btn5Down Button 5 Press
475 Btn5Up Button 5 Release
476 Btn5Click Button 5 Press and Release
477 Btn5Click2 Button 5 Double Click
478
479 Key events that are used by the window manager for menu mnemonics and
480 for binding to window manager functions are single key presses; key
481 releases are ignored. Key events have the following syntax:
482
483 key =~[modifier_list] <Key>key_name
484 modifier_list =~modifier_name { modifier_name}
485
486 All modifiers specified are interpreted as being exclusive (this means
487 that only the specified modifiers can be present when the key event
488 occurs). Modifiers for keys are the same as those that apply to but‐
489 tons. The key_name is an X11 keysym name. Keysym names can be found in
490 the keysymdef.h file (remove the XK_ prefix).
491
493 The buttonBindings resource value is the name of a set of button bind‐
494 ings that are used to configure window manager behavior. A window man‐
495 ager function can be done when a button press occurs with the pointer
496 over a framed client window, an icon or the root window. The context
497 for indicating where the button press applies is also the context for
498 invoking the window manager function when the button press is done
499 (significant for functions that are context sensitive). The button
500 binding syntax is
501
502 Buttons bindings_set_name
503 {
504 button context function
505 button context function
506 ...
507 button context function
508 }
509
510 The syntax for the context specification is: context = object[| con‐
511 text] object = root | icon | window | title | frame | border | app The
512 context specification indicates where the pointer must be for the but‐
513 ton binding to be effective. For example, a context of window indicates
514 that the pointer must be over a client window or window management
515 frame for the button binding to be effective. The frame context is for
516 the window management frame around a client window (including the bor‐
517 der and titlebar), the border context is for the border part of the
518 window management frame (not including the titlebar), the title context
519 is for the title area of the window management frame, and the app con‐
520 text is for the application window (not including the window management
521 frame). If an f.nop function is specified for a button binding, the
522 button binding is not done.
523
525 The keyBindings resource value is the name of a set of key bindings
526 that are used to configure window manager behavior. A window manager
527 function can be done when a particular key is pressed. The context in
528 which the key binding applies is indicated in the key binding specifi‐
529 cation. The valid contexts are the same as those that apply to button
530 bindings. The key binding syntax is:
531
532 Keys bindings_set_name
533 {
534 key context function
535 key context function
536 ...
537 key context function
538 }
539
540 If an f.nop function is specified for a key binding, the key binding is
541 not done. If an f.post_wmenu or f.menu function is bound to a key, mwm
542 automatically uses the same key for removing the menu from the screen
543 after it has been popped up. The context specification syntax is the
544 same as for button bindings with one addition. The context ifkey may be
545 specified for binding keys that may not be available on all displays.
546 If the key is not available and if ifkey is in the context, then
547 reporting of the error message to the error log is suppressed. This
548 feature is useful for networked, heterogeneous environments. For key
549 bindings, the frame, title, border, and app contexts are equivalent to
550 the window context. The context for a key event is the window or icon
551 that has the keyboard input focus (root if no window or icon has the
552 keyboard input focus).
553
555 Menus can be popped up using the f.post_wmenu and f.menu window manager
556 functions. The context for window manager functions that are done from
557 a menu is root, icon or window depending on how the menu was popped up.
558 In the case of the window menu or menus popped up with a key binding,
559 the location of the keyboard input focus indicates the context. For
560 menus popped up using a button binding, the context of the button bind‐
561 ing is the context of the menu. The menu pane specification syntax is:
562
563 Menu menu_name
564 {
565 label [mnemonic] [accelerator ] function
566 label [mnemonic] [accelerator ] function
567 ...
568 label [mnemonic] [accelerator ] function
569 }
570
571 Each line in the Menu specification identifies the label for a menu
572 item and the function to be done if the menu item is selected. Option‐
573 ally a menu button mnemonic and a menu button keyboard accelerator may
574 be specified. Mnemonics are functional only when the menu is posted and
575 keyboard traversal applies. The label may be a string or a bitmap file.
576 The label specification has the following syntax:
577
578 label = text | bitmap_file
579 bitmap_file = @file_name
580 text = quoted_item | unquoted_item
581
582 The string encoding for labels must be compatible with the menu font
583 that is used. Labels are greyed out for menu items that do the f.nop
584 function or an invalid function or a function that doesn't apply in the
585 current context. A mnemonic specification has the following syntax:
586
587 mnemonic = _ character
588
589 The first matching character in the label is underlined. If there is
590 no matching character in the label, no mnemonic is registered with the
591 window manager for that label. Although the character must exactly
592 match a character in the label, the mnemonic does not execute if any
593 modifier (such as Shift) is pressed with the character key. The accel‐
594 erator specification is a key event specification with the same syntax
595 as is used for key bindings to window manager functions.
596
598 You may include other files into your mwmrc file by using the include
599 construct. For example,
600
601 INCLUDE
602 {
603 /usr/local/shared/mwm.menus
604 /home/kmt/personal/my.bindings
605 }
606
607 causes the files named to be read in and interpreted in order as an
608 additional part of the mwmrc file. Include is a top-level construct. It
609 cannot be nested inside another construct.
610
612 Errors that occur during the processing of the resource description
613 file are recorded in: $HOME/.mwm/errorlog. Be sure to check this file
614 if the appearance or behavior of mwm is not what you expect.
615
617 $HOME/$LANG/.mwmrc
618 $HOME/.mwmrc
619 /etc/X11/mwm/$LANG/system.mwmrc
620 /etc/X11/mwm/system.mwmrc
621
623 mwm(1), X(1).
624
625
626
627 mwmrc(special file)