dtwmrc.sgm 56 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071
  1. <!-- $XConsortium: dtwmrc.sgm /main/9 1996/09/08 20:20:14 rws $ -->
  2. <!-- (c) Copyright 1995 Digital Equipment Corporation. -->
  3. <!-- (c) Copyright 1995 Hewlett-Packard Company. -->
  4. <!-- (c) Copyright 1995 International Business Machines Corp. -->
  5. <!-- (c) Copyright 1995 Sun Microsystems, Inc. -->
  6. <!-- (c) Copyright 1995 Novell, Inc. -->
  7. <!-- (c) Copyright 1995 FUJITSU LIMITED. -->
  8. <!-- (c) Copyright 1995 Hitachi. -->
  9. <refentry id="CDEMX.MAN88.rsml.1">
  10. <refmeta><refentrytitle>dtwmrc</refentrytitle><manvolnum>special file</manvolnum>
  11. </refmeta>
  12. <refnamediv><refname><filename>dtwmrc</filename></refname><refpurpose>the
  13. dtwm Window Manager Resource Description File</refpurpose></refnamediv>
  14. <!-- CDE Common Source Format, Version 1.0.0-->
  15. <!-- ** (c) Copyright 1993, 1994 Hewlett-Packard Company-->
  16. <!-- ** (c) Copyright 1993, 1994 International Business Machines Corp.-->
  17. <!-- ** (c) Copyright 1993, 1994 Sun Microsystems, Inc.-->
  18. <!-- ** (c) Copyright 1993, 1994 Novell, Inc.-->
  19. <!-- ** (c) Copyright 1989,1990,1992,1993 by Open Software Foundation, Inc.-->
  20. <!-- ** All Rights Reserved.-->
  21. <!-- **-->
  22. <!-- ** (c) Copyright 1987, 1988 by Digital Equipment Corporation,-->
  23. <!-- ** Maynard, MA. All Rights Reserved.-->
  24. <!-- **-->
  25. <refsect1>
  26. <title>DESCRIPTION</title>
  27. <para>The <literal>dtwmrc</literal> window manager is a supplementary resource
  28. file that controls much of the behavior of the CDE window manager <command>dtwm</command>. It contains descriptions of resources that cannot easily be
  29. written using standard X Window System, Version 11 resource syntax. The resource
  30. description file contains entries that are referred to by X resources in
  31. defaults files (for example, <Filename>/usr/dt/app-defaults/$LANG/Dtwm</Filename>)
  32. or in the <symbol role="Define">RESOURCE_MANAGER</symbol> property on the
  33. root window. For example, the resource description file enables you to specify
  34. different types of window menus; however, an X resource is used to specify
  35. which of these window menus the <command>dtwm</command> should use for a particular
  36. window. The specifications of the resource description file supported by the
  37. dtwm workspace manager are a strict superset of the specifications supported
  38. by the OSF Motif Window Manager (<literal>mwm 1.2.4</literal>). In other words,
  39. the <literal>system.mwmrc</literal> or <filename>$HOME/.mwmrc</filename> file
  40. that you've used for <command>mwm</command> is easily made usable by <command>dtwm</command>. To merge your personal mwm resource specifications into dtwm:
  41. </para>
  42. <itemizedlist>
  43. <listitem>
  44. <para>Copy either <Filename>/etc/dt/config/$LANG/sys.dtwmrc</Filename> or <Filename>/usr/dt/config/$LANG/sys.dtwmrc</Filename> to <Filename>$HOME/.dt/dtwmrc</Filename>.
  45. </para>
  46. </listitem>
  47. <listitem>
  48. <para>Use a text editor to move menu definitions, key bindings, and button
  49. bindings from your <Filename>.mwmrc</Filename> file to your <literal>dtwmrc</literal> file. To merge your key and button bindings, you'll need to augment
  50. the key and button bindings that are referenced by <command>dtwm</command>
  51. by default (refer to <literal>buttonBindings</literal> and <literal>keyBindings</literal> resources in the <command>dtwm</command> app-defaults file <Filename>/usr/dt/app-defaults/$LANG/Dtwm</Filename>). To replace the key or button
  52. bindings, you'll also need to modify your personal <literal>keyBindings</literal>
  53. and <literal>buttonBindings</literal> resources.</para>
  54. </listitem>
  55. <listitem>
  56. <para>Restart <command>dtwm</command>.</para>
  57. </listitem>
  58. </itemizedlist>
  59. <refsect2>
  60. <title>Location</title>
  61. <para>The workspace manager searches for one of the following resource description
  62. files, where <emphasis>$LANG</emphasis> is the value of the language environment
  63. on a per-user basis: <literal>$HOME/.dt/$LANG/dtwmrc $HOME/.dt/dtwmrc /etc/dt/config/$LANG/sys.dtwmrc
  64. /etc/dt/config/sys.dtwmrc /usr/dt/config/$LANG/sys.dtwmrc /usr/dt/config/sys.dtwmrc</literal> The first file found is the first used. If no file is found, a
  65. set of built-in specifications is used. A particular resource description
  66. file can be selected using the <symbol role="Variable">configFile</symbol>
  67. resource. The following shows how a different resource description file can
  68. be specified from the command line:</para>
  69. <informalexample remap="indent">
  70. <programlisting>/usr/dt/bin/dtwm -xrm "Dtwm*configFile: mydtwmrc"</programlisting>
  71. </informalexample>
  72. </refsect2>
  73. <refsect2>
  74. <title>Resource Types</title>
  75. <para>The following types of resources can be described in the dtwm resource
  76. description file:</para>
  77. <variablelist>
  78. <varlistentry><term><literal>Buttons</literal></term>
  79. <listitem>
  80. <para>Workspace manager functions can be bound (associated) with button events.
  81. </para>
  82. </listitem>
  83. </varlistentry>
  84. <varlistentry><term><literal>Keys</literal></term>
  85. <listitem>
  86. <para>Workspace manager functions can be bound (associated) with key press
  87. events.</para>
  88. </listitem>
  89. </varlistentry>
  90. <varlistentry><term><literal>Menus</literal></term>
  91. <listitem>
  92. <para>Menu panes can be used for the window menu and other menus posted with
  93. key bindings and button bindings.</para>
  94. </listitem>
  95. </varlistentry>
  96. </variablelist>
  97. </refsect2>
  98. </refsect1>
  99. <refsect1>
  100. <title>DTWM RESOURCE DESCRIPTION FILE SYNTAX</title>
  101. <para>The <command>dtwm</command> resource description file is a standard
  102. text file that contains items of information separated by blanks, tabs, and
  103. new lines characters. Blank lines are ignored. Items or characters can be
  104. quoted to avoid special interpretation (for example, the comment character
  105. can be quoted to prevent it from being interpreted as the comment character).
  106. A quoted item can be contained in double quotes (<literal>" "</literal>).
  107. Single characters can be quoted by preceding them by the back-slash character
  108. (<literal>\</literal>), except for workspace names, which may contain no back-slash
  109. characters. If a line ends with a back-slash, the next line is considered
  110. a continuation of that line. All text from an unquoted <literal>#</literal>
  111. to the end of the line is regarded as a comment and is not interpreted as
  112. part of a resource description. If <literal>!</literal> is the first character
  113. in a line, the line is regarded as a comment.</para>
  114. <refsect2>
  115. <title>Workspace Manager Functions</title>
  116. <para>Workspace manager functions can be accessed with button and key bindings,
  117. and with workspace manager menus. Functions are indicated as part of the specifications
  118. for button and key binding sets, and menu panes. The function specification
  119. has the following syntax:</para>
  120. <informalexample remap="indent">
  121. <programlisting><literal>function</literal> = <literal>function_name</literal> [<literal>function_args</literal>]
  122. <literal>function_name</literal> = <literal>workspace manager function</literal>
  123. <literal>function_args</literal> = {<literal>quoted_item</literal> | <literal>unquoted_item</literal>}</programlisting>
  124. </informalexample>
  125. <para>The following functions are supported. If a function is specified that
  126. isn't one of the supported functions then it is interpreted by <command>dtwm</command> as <function>f.nop</function>.</para>
  127. <variablelist>
  128. <varlistentry><term><emphasis>f.action</emphasis></term>
  129. <listitem>
  130. <para>This function causes the specified <literal>action</literal> to be invoked
  131. by means of the message server.</para>
  132. </listitem>
  133. </varlistentry>
  134. <varlistentry><term><function>f.beep</function></term>
  135. <listitem>
  136. <para>This function causes a beep.</para>
  137. </listitem>
  138. </varlistentry>
  139. <varlistentry><term><function>f.circle_down</function> [ <symbol role="Variable">icon</symbol> | <symbol role="Variable">window</symbol>]</term>
  140. <listitem>
  141. <para>This function causes the window or icon that is on the top of the window
  142. stack to be put on the bottom of the window stack (so that it is no longer
  143. obscuring any other window or icon). This function affects only those windows
  144. and icons that are obscuring other windows and icons, or that are obscured
  145. by other windows and icons. Secondary windows (that is, transient windows)
  146. are restacked with their associated primary window. Secondary windows always
  147. stay on top of the associated primary window and there can be no other primary
  148. windows between the secondary windows and their primary window. If an
  149. <symbol role="Variable">icon</symbol> function argument is specified, then the function
  150. applies only to icons. If a <symbol role="Variable">window</symbol> function
  151. argument is specified then the function applies only to windows.</para>
  152. </listitem>
  153. </varlistentry>
  154. <varlistentry><term><function>f.circle_up</function> [ <symbol role="Variable">icon</symbol> | <symbol role="Variable">window</symbol>]</term>
  155. <listitem>
  156. <para>This function raises the window or icon on the bottom of the window
  157. stack (so that it is not obscured by any other windows). This function affects
  158. only those windows and icons that are obscuring other windows and icons, or
  159. that are obscured by other windows and icons. Secondary windows (that is,
  160. transient windows) are restacked with their associated primary window. If
  161. an <symbol role="Variable">icon</symbol> function argument is specified then
  162. the function applies only to icons. If an <symbol role="Variable">window</symbol>
  163. function argument is specified then the function applies only to windows.
  164. </para>
  165. </listitem>
  166. </varlistentry>
  167. <varlistentry><term><emphasis>f.create_workspace</emphasis></term>
  168. <listitem>
  169. <para>This function creates a new workspace. The new workspace name is generated
  170. automatically and is of the form <literal>ws_</literal><literal>n</literal>
  171. where <literal>n</literal> is an integer.</para>
  172. </listitem>
  173. </varlistentry>
  174. <varlistentry><term><emphasis>f.delete_workspace</emphasis></term>
  175. <listitem>
  176. <para>This function deletes the current workspace. Windows that reside only
  177. in this workspace will be moved to the next workspace. If the last workspace
  178. is being deleted, then windows will be moved to the first workspace.</para>
  179. </listitem>
  180. </varlistentry>
  181. <varlistentry><term><function>f.exec</function> <literal>command</literal>
  182. (or <emphasis>!</emphasis> <literal>command</literal>)</term>
  183. <listitem>
  184. <para>This function causes <symbol role="Variable">command</symbol> to be
  185. executed (using the value of the <emphasis>$MWMSHELL</emphasis> or <emphasis>$SHELL</emphasis> environment variable if set; otherwise, <Filename>/usr/bin/sh</Filename> ). The <emphasis>!</emphasis> notation can be used in place of the <function>f.exec</function> function name.</para>
  186. </listitem>
  187. </varlistentry>
  188. <varlistentry><term><function>f.focus_color</function></term>
  189. <listitem>
  190. <para>This function sets the colormap focus to a client window. If this function
  191. is done in a root context, then the default colormap (setup by the X Window
  192. System for the screen where <command>dtwm</command> is running) is installed
  193. and there is no specific client window colormap focus. This function is treated
  194. as <function>f.nop</function> if <emphasis>colormapFocusPolicy</emphasis>
  195. is not explicit.</para>
  196. </listitem>
  197. </varlistentry>
  198. <varlistentry><term><function>f.focus_key</function></term>
  199. <listitem>
  200. <para>This function sets the keyboard input focus to a client window or icon.
  201. This function is treated as <function>f.nop</function> if <emphasis>keyboardFocusPolicy</emphasis> is not explicit or the function is executed in a root context.
  202. </para>
  203. </listitem>
  204. </varlistentry>
  205. <varlistentry><term><emphasis>f.goto_workspace</emphasis> <emphasis>workspace</emphasis></term>
  206. <listitem>
  207. <para>This function causes the workspace manager to switch to the workspace
  208. named by <emphasis>workspace</emphasis>. If no workspace exists by the specified
  209. name, then no action occurs. Note that adding and deleting workspaces dynamically
  210. and affect this function.</para>
  211. </listitem>
  212. </varlistentry>
  213. <varlistentry><term><emphasis>f.help</emphasis> [<emphasis>topic</emphasis>
  214. [<emphasis>volume</emphasis>]]</term>
  215. <listitem>
  216. <para>This function displays help on the specified <emphasis>topic</emphasis>
  217. and <emphasis>volume</emphasis>. If no <emphasis>volume</emphasis> is given,
  218. then the workspace manager volume is assumed. If no <emphasis>topic</emphasis>
  219. is given, then help on the front panel is shown.</para>
  220. </listitem>
  221. </varlistentry>
  222. <varlistentry><term><emphasis>f.help_mode</emphasis></term>
  223. <listitem>
  224. <para>This function causes the workspace manager to enter into help mode.
  225. In help mode, the pointer changes shape to indicate that the window manager
  226. is waiting for you to select a front panel control. Any help defined for the
  227. control is then shown in a help window.</para>
  228. </listitem>
  229. </varlistentry>
  230. <varlistentry><term><function>f.kill</function></term>
  231. <listitem>
  232. <para>This function is used to close application windows. The actual processing
  233. that occurs depends on the protocols that the application observes. The application
  234. lists the protocols it observes in the <property>WM_PROTOCOLS</property> property
  235. on its top level window. If the application observes the <property>WM_DELETE_WINDOW</property> protocol, it is sent a message that requests the window be deleted.
  236. If the application observes both <property>WM_DELETE_WINDOW</property> and <property>WM_SAVE_YOURSELF</property>, it is sent one message requesting the window
  237. be deleted and another message advising it to save its state. If the application
  238. observes only the <property>WM_SAVE_YOURSELF</property>protocol <emphasis>,</emphasis> it is sent a message advising it to save its state. After a
  239. delay (specified by the resource <emphasis>quitTimeout</emphasis>), the application's
  240. connection to the X server is terminated. If the application observes neither
  241. of these protocols, its connection to the X server is terminated.</para>
  242. </listitem>
  243. </varlistentry>
  244. <varlistentry><term><function>f.lower</function>&ensp;[<emphasis>&minus;</emphasis> <literal>client</literal> | <symbol role="Variable">within</symbol>&ensp;| <emphasis>freeFamily</emphasis>]</term>
  245. <listitem>
  246. <para>This function lowers a primary window to the bottom of the global window
  247. stack (where it obscures no other window) and lowers the secondary window
  248. (transient window or dialog box) within the client family. The arguments to
  249. this function are mutually exclusive. The <symbol role="Variable">client</symbol>
  250. argument indicates the name or class of a client to lower. The name or class
  251. of a client appears in the <property>WM_CLASS</property> property on the
  252. client's top-level window. If the <symbol role="Variable">client</symbol>
  253. argument is not specified, the context that the function was invoked in indicates
  254. the window or icon to lower. Specifying <symbol role="Variable">within</symbol>
  255. lowers the secondary window within the family (staying above the parent) but
  256. does not lower the client family in the global window stack. Specifying <emphasis>freeFamily</emphasis> lowers the window to the bottom of the global windows
  257. stack from its local family stack.</para>
  258. </listitem>
  259. </varlistentry>
  260. <varlistentry><term><emphasis>f.marquee_selection</emphasis></term>
  261. <listitem>
  262. <para>This function is only useful in conjunction with the CDE file manager
  263. (see &cdeman.dtfile;). It enables selection of file manager objects
  264. that have been placed on the root window. It must be bound to a button when
  265. used.</para>
  266. </listitem>
  267. </varlistentry>
  268. <varlistentry><term><function>f.maximize</function></term>
  269. <listitem>
  270. <para>This function causes a client window to be displayed with its maximum
  271. size. Refer to the <emphasis>maximumClientSize</emphasis>, <emphasis>maximumMaximumSize</emphasis>, and <emphasis>limitResize</emphasis> resources in &cdeman.dtwm;.</para>
  272. </listitem>
  273. </varlistentry>
  274. <varlistentry><term><function>f.menu</function> <symbol role="Variable">menu_name</symbol></term>
  275. <listitem>
  276. <para>This function associates a cascading (pull-right) menu with a menu
  277. pane entry or a menu with a button or key binding. The <symbol role="Variable">menu_name</symbol> function argument identifies the menu to be used.</para>
  278. </listitem>
  279. </varlistentry>
  280. <varlistentry><term><function>f.minimize</function></term>
  281. <listitem>
  282. <para>This function causes a client window to be minimized (iconified). When
  283. a window is minimized with no icon box in use, and if the <emphasis>lowerOnIconify</emphasis> resource has the value True (the default), the icon is placed
  284. on the bottom of the window stack (such that it obscures no other window).
  285. If an icon box is used, then the client's icon changes to its iconified form
  286. inside the icon box. Secondary windows (that is, transient windows) are minimized
  287. with their associated primary window. There is only one icon for a primary
  288. window and all its secondary windows.</para>
  289. </listitem>
  290. </varlistentry>
  291. <varlistentry><term><function>f.move</function></term>
  292. <listitem>
  293. <para>This function initiates an interactive move of a client window.</para>
  294. </listitem>
  295. </varlistentry>
  296. <varlistentry><term><function>f.next_cmap</function></term>
  297. <listitem>
  298. <para>This function installs the next colormap in the list of colormaps for
  299. the window with the colormap focus.</para>
  300. </listitem>
  301. </varlistentry>
  302. <varlistentry><term><function>f.next_key</function> [ <symbol role="Variable">icon</symbol> | <symbol role="Variable">window</symbol> | <symbol role="Variable">transient</symbol>]</term>
  303. <listitem>
  304. <para>This function sets the keyboard input focus to the next window/icon
  305. in the set of windows/icons managed by the workspace manager (the ordering
  306. of this set is based on the stacking of windows on the screen). This function
  307. is treated as <function>f.nop</function> if <literal>keyboardFocusPolicy</literal>
  308. is not explicit. The keyboard input focus is only moved to windows that do
  309. not have an associated secondary window that is application modal. If the
  310. <symbol role="Variable">transient</symbol> argument is specified, then transient (secondary)
  311. windows are traversed (otherwise, if only <symbol role="Variable">window</symbol>
  312. is specified, traversal is done only to the last focused window in a transient
  313. group). If an <symbol role="Variable">icon</symbol> function argument is specified,
  314. then the function applies only to icons. If a <symbol role="Variable">window</symbol>
  315. function argument is specified, then the function applies only to
  316. windows.</para>
  317. </listitem>
  318. </varlistentry>
  319. <varlistentry><term><emphasis>f.next_workspace</emphasis></term>
  320. <listitem>
  321. <para>This function causes the workspace manager to switch to the next workspace.
  322. If the last workspace is currently active, then this function will switch
  323. to the first workspace.</para>
  324. </listitem>
  325. </varlistentry>
  326. <varlistentry><term><function>f.nop</function></term>
  327. <listitem>
  328. <para>This function does nothing.</para>
  329. </listitem>
  330. </varlistentry>
  331. <varlistentry><term><function>f.normalize</function></term>
  332. <listitem>
  333. <para>This function causes a client window to be displayed with its normal
  334. size. Secondary windows (that is, transient windows) are placed in their normal
  335. state along with their associated primary window.</para>
  336. </listitem>
  337. </varlistentry>
  338. <varlistentry><term><function>f.normalize_and_raise</function></term>
  339. <listitem>
  340. <para>This function causes a client window to be displayed with its normal
  341. size and raised to the top of the window stack. Secondary windows (that is,
  342. transient windows) are placed in their normal state along with their associated
  343. primary window.</para>
  344. </listitem>
  345. </varlistentry>
  346. <varlistentry><term><emphasis>f.occupy_all</emphasis></term>
  347. <listitem>
  348. <para>This function causes the associated window to be placed in all workspaces.
  349. </para>
  350. </listitem>
  351. </varlistentry>
  352. <varlistentry><term><function>f.pack_icons</function></term>
  353. <listitem>
  354. <para>This function is used to relayout icons (based on the layout policy
  355. being used) on the root window or in the icon box. In general this causes
  356. icons to be "packed" into the icon grid.</para>
  357. </listitem>
  358. </varlistentry>
  359. <varlistentry><term><function>f.pass_keys</function></term>
  360. <listitem>
  361. <para>This function is used to enable/disable (toggle) processing of key bindings
  362. for workspace manager functions. When it disables key binding processing all
  363. keys are passed on to the window with the keyboard input focus and no workspace
  364. manager functions are invoked. If the <function>f.pass_keys</function> function
  365. is invoked with a key binding to disable key binding processing the same key
  366. binding can be used to enable key binding processing.</para>
  367. </listitem>
  368. </varlistentry>
  369. <varlistentry><term><function>f.post_wmenu</function></term>
  370. <listitem>
  371. <para>This function is used to post the window menu. If a key is used to post
  372. the window menu and a window menu button is present, the window menu is automatically
  373. placed with its top-left corner at the bottom-left corner of the window menu
  374. button for the client window. If no window menu button is present, the window
  375. menu is placed at the top-left corner of the client window.</para>
  376. </listitem>
  377. </varlistentry>
  378. <varlistentry><term><function>f.prev_cmap</function></term>
  379. <listitem>
  380. <para>This function installs the previous colormap in the list of colormaps
  381. for the window with the colormap focus.</para>
  382. </listitem>
  383. </varlistentry>
  384. <varlistentry><term><function>f.prev_key</function> [ <symbol role="Variable">icon</symbol> | <symbol role="Variable">window</symbol> | <symbol role="Variable">transient</symbol>]</term>
  385. <listitem>
  386. <para>This function sets the keyboard input focus to the previous window/icon
  387. in the set of windows/icons managed by the workspace manager (the ordering
  388. of this set is based on the stacking of windows on the screen). This function
  389. is treated as <function>f.nop</function> if <emphasis>keyboardFocusPolicy</emphasis> is not explicit. The keyboard input focus is only moved to windows
  390. that do not have an associated secondary window that is application modal.
  391. If the <symbol role="Variable">transient</symbol> argument is specified, then
  392. transient (secondary) windows are traversed (otherwise, if only <symbol role="Variable">window</symbol> is specified, traversal is done only to the last focused window
  393. in a transient group). If an <symbol role="Variable">icon</symbol> function
  394. argument is specified then the function applies only to icons. If an
  395. <symbol role="Variable">window</symbol> function argument is specified then the function
  396. applies only to windows.</para>
  397. </listitem>
  398. </varlistentry>
  399. <varlistentry><term><emphasis>f.prev_workspace</emphasis></term>
  400. <listitem>
  401. <para>This function causes the workspace manager to switch to the previous
  402. workspace. If the first workspace is currently active, then this function
  403. switches to the last workspace.</para>
  404. </listitem>
  405. </varlistentry>
  406. <varlistentry><term><function>f.quit_mwm</function></term>
  407. <listitem>
  408. <para>This function terminates dtwm (but NOT the X window system).</para>
  409. </listitem>
  410. </varlistentry>
  411. <varlistentry><term><function>f.raise</function>&ensp;[<emphasis>&minus;</emphasis><symbol role="Variable">client</symbol> | <symbol role="Variable">within</symbol>
  412. | <emphasis>freeFamily</emphasis>]</term>
  413. <listitem>
  414. <para>This function raises a primary window to the top of the global window
  415. stack (where it is obscured by no other window) and raises the secondary window
  416. (transient window or dialog box) within the client family. The arguments to
  417. this function are mutually exclusive. The <symbol role="Variable">client</symbol>
  418. argument indicates the name or class of a client to lower. If the
  419. <symbol role="Variable">client</symbol> is not specified, the context that the function
  420. was invoked in indicates the window or icon to lower. Specifying <symbol role="Variable">within</symbol> raises the secondary window within the family but does not
  421. raise the client family in the global window stack. Specifying <emphasis>freeFamily</emphasis> raises the window to the top of its local family stack
  422. and raises the family to the top of the global window stack.</para>
  423. </listitem>
  424. </varlistentry>
  425. <varlistentry><term><function>f.raise_lower</function>&ensp;[ <symbol role="Variable">within</symbol> | <emphasis>freeFamily</emphasis>]</term>
  426. <listitem>
  427. <para>This function raises a primary window to the top of the global window
  428. stack if it is partially obscured by another window; otherwise, it lowers
  429. the window to the bottom of the window stack. The arguments to this function
  430. are mutually exclusive. Specifying <symbol role="Variable">within</symbol>
  431. raises a secondary window within the family (staying above the parent window),
  432. if it is partially obscured by another window in the application's family;
  433. otherwise, it lowers the window to the bottom of the family stack. It has
  434. no effect on the global window stacking order. Specifying <emphasis>freeFamily</emphasis> raises the window to the top of its local family stack, if obscured
  435. by another window, and raises the family to the top of the global window
  436. stack; otherwise, it lowers the window to the bottom of its local family stack
  437. and lowers the family to the bottom of the global window stack.</para>
  438. </listitem>
  439. </varlistentry>
  440. <varlistentry><term><function>f.refresh</function></term>
  441. <listitem>
  442. <para>This function causes all windows to be redrawn.</para>
  443. </listitem>
  444. </varlistentry>
  445. <varlistentry><term><function>f.refresh_win</function></term>
  446. <listitem>
  447. <para>This function causes a client window to be redrawn.</para>
  448. </listitem>
  449. </varlistentry>
  450. <varlistentry><term><emphasis>f.remove</emphasis></term>
  451. <listitem>
  452. <para>This function causes a client window to be removed from the current
  453. workspace. If the client window exists only in this workspace, no action
  454. occurs.</para>
  455. </listitem>
  456. </varlistentry>
  457. <varlistentry><term><function>f.resize</function></term>
  458. <listitem>
  459. <para>This function initiates an interactive resize of a client window.</para>
  460. </listitem>
  461. </varlistentry>
  462. <varlistentry><term><function>f.restore</function></term>
  463. <listitem>
  464. <para>This function restores the previous state of an icon's associated window.
  465. If a maximized window is iconified, then <function>f.restore</function> restores
  466. it to its maximized state. If a normal window is iconified, then <function>f.restore</function> restores it to its normalized state.</para>
  467. </listitem>
  468. </varlistentry>
  469. <varlistentry><term><function>f.restore_and_raise</function></term>
  470. <listitem>
  471. <para>This function restores the previous state of an icon's associated window
  472. and raises the window to the top of the window stack. If a maximized window
  473. is iconified, then <function>f.restore_and_raise</function> restores it to
  474. its maximized state and raises it to the top of the window stack. If a normal
  475. window is iconified, then <function>f.restore_and_raise</function> restores
  476. it to its normalized state and raises it to the top of the window stack.</para>
  477. </listitem>
  478. </varlistentry>
  479. <varlistentry><term>2f.restart</term>
  480. <listitem>
  481. <para>This function causes dtwm to be restarted (effectively terminated and
  482. re-executed). Restart is necessary for <command>dtwm</command> to incorporate
  483. changes in both the <literal>dtwmrc</literal> file and X resources.</para>
  484. </listitem>
  485. </varlistentry>
  486. <varlistentry><term><function>f.screen</function>&ensp;[ <symbol role="Variable">next</symbol> | <symbol role="Variable">prev</symbol> | <symbol role="Variable">back</symbol> | <symbol role="Variable">screen_number</symbol>]</term>
  487. <listitem>
  488. <para>This function causes the pointer to be warp to a specific screen number
  489. or to the <symbol role="Variable">next</symbol>, <symbol role="Variable">previous</symbol>, or last visited (<symbol role="Variable">back</symbol>)
  490. screen. The arguments to this function are mutually exclusive. The
  491. <symbol role="Variable">screen_number</symbol> argument indicates the screen number
  492. that the pointer is to be warped. Screens are numbered starting from screen
  493. 0. Specifying <symbol role="Variable">next</symbol> cause the pointer to warp
  494. to the next managed screen (skipping over any unmanaged screens). Specifying
  495. <symbol role="Variable">prev</symbol> cause the pointer to warp to the previous managed
  496. screen (skipping over any unmanaged screens). Specifying <symbol role="Variable">back</symbol> cause the pointer to warp to the last visited screen.</para>
  497. </listitem>
  498. </varlistentry>
  499. <varlistentry><term><function>f.send_msg</function> <symbol role="Variable">message_number</symbol></term>
  500. <listitem>
  501. <para>This function sends an <structname role="typedef">XClientMessageEvent</structname> of type <property>_MOTIF_WM_MESSAGES</property> with
  502. <symbol role="Variable">message_type</symbol> set to <symbol role="Variable">message_number</symbol>.
  503. The client message is sent only if <symbol role="Variable">message_number</symbol>
  504. is included in the client's <property>_MOTIF_WM_MESSAGES</property>
  505. property. A menu item label is grayed out if the menu item is used to do <function>f.send_msg</function> of a message that is not included in the client's <property>_MOTIF_WM_MESSAGES</property> property.</para>
  506. </listitem>
  507. </varlistentry>
  508. <varlistentry><term><function>f.separator</function></term>
  509. <listitem>
  510. <para>This function causes a menu separator to be put in the menu pane at
  511. the specified location (the label is ignored).</para>
  512. </listitem>
  513. </varlistentry>
  514. <varlistentry><term><function>f.set_behavior</function></term>
  515. <listitem>
  516. <para>This function causes the workspace manager to restart with the default
  517. behavior (if a custom behavior is configured) or a custom behavior (if a
  518. default behavior is configured). By default this is bound to <emphasis>Shift&ensp;Ctrl&ensp;Alt&ensp;&lt;Key>!</emphasis>.</para>
  519. </listitem>
  520. </varlistentry>
  521. <varlistentry><term><function>f.title</function></term>
  522. <listitem>
  523. <para>This function inserts a title in the menu pane at the specified location.
  524. </para>
  525. </listitem>
  526. </varlistentry>
  527. <varlistentry><term><emphasis>f.toggle_frontpanel</emphasis></term>
  528. <listitem>
  529. <para>If the front panel is in the normal state, this function causes it to
  530. be minimized. If the front panel is minimized, this function will change it
  531. to the normal state.</para>
  532. </listitem>
  533. </varlistentry>
  534. <varlistentry><term><emphasis>f.version</emphasis></term>
  535. <listitem>
  536. <para>This function causes the workspace manager to display its release version
  537. in a dialog box.</para>
  538. </listitem>
  539. </varlistentry>
  540. <varlistentry><term><emphasis>f.workspace_presence</emphasis></term>
  541. <listitem>
  542. <para>This function displays the workspace presence (or "Occupy Workspace")
  543. dialog box. This dialog allows you to view and set the workspace in which
  544. a particular window resides. The root context is disallowed for this function.
  545. </para>
  546. </listitem>
  547. </varlistentry>
  548. </variablelist>
  549. </refsect2>
  550. <refsect2>
  551. <title>Function Constraints</title>
  552. <para>Each function may be constrained as to which resource types can specify
  553. the function (for example, menu pane) and also what context the function
  554. can be used in (for example, the function is done to the selected client window).
  555. Function contexts are:</para>
  556. <variablelist>
  557. <varlistentry><term><symbol role="Variable">root</symbol></term>
  558. <listitem>
  559. <para>No client window or icon has been selected as an object for the function.
  560. </para>
  561. </listitem>
  562. </varlistentry>
  563. <varlistentry><term><symbol role="Variable">window</symbol></term>
  564. <listitem>
  565. <para>A client window has been selected as an object for the function. This
  566. includes the window's title bar and frame. Some functions are applied only
  567. when the window is in its normalized state (for example, <function>f.maximize</function>) or its maximized state (for example, <function>f.normalize</function>).
  568. </para>
  569. </listitem>
  570. </varlistentry>
  571. <varlistentry><term><symbol role="Variable">icon</symbol></term>
  572. <listitem>
  573. <para>An icon has been selected as an object for the function.</para>
  574. </listitem>
  575. </varlistentry>
  576. </variablelist>
  577. <para>If a function is specified in a type of resource where it is not supported
  578. or is invoked in a context that does not apply then the function is treated
  579. as <function>f.nop</function>. The following table indicates the resource
  580. types and function contexts in which workspace manager functions apply.</para>
  581. <informaltable remap="center" orient="port">
  582. <tgroup cols="3" colsep="0" rowsep="0">
  583. <?PubTbl tgroup dispwid="6.09in">
  584. <colspec align="left" colwidth="209*">
  585. <colspec align="left" colwidth="169*">
  586. <colspec align="left" colwidth="124*">
  587. <tbody>
  588. <row>
  589. <entry align="left" valign="top"><emphasis>Function</emphasis></entry>
  590. <entry align="left" valign="top">Contexts</entry>
  591. <entry align="left" valign="top">Resources</entry></row>
  592. <row>
  593. <entry align="left" valign="top"><emphasis>f.action</emphasis></entry>
  594. <entry align="left" valign="top">root,icon,window</entry>
  595. <entry align="left" valign="top">button,key,menu</entry></row>
  596. <row>
  597. <entry align="left" valign="top"><function>f.beep</function></entry>
  598. <entry align="left" valign="top">root,icon,window</entry>
  599. <entry align="left" valign="top">button,key,menu</entry></row>
  600. <row>
  601. <entry align="left" valign="top"><function>f.circle_down</function></entry>
  602. <entry align="left" valign="top">root,icon,window</entry>
  603. <entry align="left" valign="top">button,key,menu</entry></row>
  604. <row>
  605. <entry align="left" valign="top"><function>f.circle_up</function></entry>
  606. <entry align="left" valign="top">root,icon,window</entry>
  607. <entry align="left" valign="top">button,key,menu</entry></row>
  608. <row>
  609. <entry align="left" valign="top"><emphasis>f.create_workspace</emphasis></entry>
  610. <entry align="left" valign="top">root,icon,window</entry>
  611. <entry align="left" valign="top">button,key,menu</entry></row>
  612. <row>
  613. <entry align="left" valign="top"><emphasis>f.delete_workspace</emphasis></entry>
  614. <entry align="left" valign="top">root,icon,window</entry>
  615. <entry align="left" valign="top">button,key,menu</entry></row>
  616. <row>
  617. <entry align="left" valign="top"><function>f.exec</function></entry>
  618. <entry align="left" valign="top">root,icon,window</entry>
  619. <entry align="left" valign="top">button,key,menu</entry></row>
  620. <row>
  621. <entry align="left" valign="top"><function>f.focus_color</function></entry>
  622. <entry align="left" valign="top">root,icon,window</entry>
  623. <entry align="left" valign="top">button,key,menu</entry></row>
  624. <row>
  625. <entry align="left" valign="top"><function>f.focus_key</function></entry>
  626. <entry align="left" valign="top">root,icon,window</entry>
  627. <entry align="left" valign="top">button,key,menu</entry></row>
  628. <row>
  629. <entry align="left" valign="top"><emphasis>f.goto_workspace</emphasis></entry>
  630. <entry align="left" valign="top">root,icon,window</entry>
  631. <entry align="left" valign="top">button,key,menu</entry></row>
  632. <row>
  633. <entry align="left" valign="top"><emphasis>f.help</emphasis></entry>
  634. <entry align="left" valign="top">root,icon,window</entry>
  635. <entry align="left" valign="top">button,key,menu</entry></row>
  636. <row>
  637. <entry align="left" valign="top"><emphasis>f.help_mode</emphasis></entry>
  638. <entry align="left" valign="top">root,icon,window</entry>
  639. <entry align="left" valign="top">button,key,menu</entry></row>
  640. <row>
  641. <entry align="left" valign="top"><function>f.kill</function></entry>
  642. <entry align="left" valign="top">icon,window</entry>
  643. <entry align="left" valign="top">button,key,menu</entry></row>
  644. <row>
  645. <entry align="left" valign="top"><function>f.lower</function></entry>
  646. <entry align="left" valign="top">root,icon,window</entry>
  647. <entry align="left" valign="top">button,key,menu</entry></row>
  648. <row>
  649. <entry align="left" valign="top"><emphasis>f.marquee_selection</emphasis></entry>
  650. <entry align="left" valign="top">root</entry>
  651. <entry align="left" valign="top">button</entry></row>
  652. <row>
  653. <entry align="left" valign="top"><function>f.maximize</function></entry>
  654. <entry align="left" valign="top">icon,window(normal)</entry>
  655. <entry align="left" valign="top">button,key,menu</entry></row>
  656. <row>
  657. <entry align="left" valign="top"><function>f.menu</function></entry>
  658. <entry align="left" valign="top">root,icon,window</entry>
  659. <entry align="left" valign="top">button,key,menu</entry></row>
  660. <row>
  661. <entry align="left" valign="top"><function>f.minimize</function></entry>
  662. <entry align="left" valign="top">window</entry>
  663. <entry align="left" valign="top">button,key,menu</entry></row>
  664. <row>
  665. <entry align="left" valign="top"><function>f.move</function></entry>
  666. <entry align="left" valign="top">icon,window</entry>
  667. <entry align="left" valign="top">button,key,menu</entry></row>
  668. <row>
  669. <entry align="left" valign="top"><function>f.next_cmap</function></entry>
  670. <entry align="left" valign="top">root,icon,window</entry>
  671. <entry align="left" valign="top">button,key,menu</entry></row>
  672. <row>
  673. <entry align="left" valign="top"><function>f.next_key</function></entry>
  674. <entry align="left" valign="top">root,icon,window</entry>
  675. <entry align="left" valign="top">button,key,menu</entry></row>
  676. <row>
  677. <entry align="left" valign="top"><emphasis>f.next_workspace</emphasis></entry>
  678. <entry align="left" valign="top">root,icon,window</entry>
  679. <entry align="left" valign="top">button,key,menu</entry></row>
  680. <row>
  681. <entry align="left" valign="top"><function>f.nop</function></entry>
  682. <entry align="left" valign="top">root,icon,window</entry>
  683. <entry align="left" valign="top">button,key,menu</entry></row>
  684. <row>
  685. <entry align="left" valign="top"><function>f.normalize</function></entry>
  686. <entry align="left" valign="top">icon,window(maximized)</entry>
  687. <entry align="left" valign="top">button,key,menu</entry></row>
  688. <row>
  689. <entry align="left" valign="top"><function>f.normalize_and_raise</function></entry>
  690. <entry align="left" valign="top">icon,window</entry>
  691. <entry align="left" valign="top">button,key,menu</entry></row>
  692. <row>
  693. <entry align="left" valign="top"><emphasis>f.occupy_all</emphasis></entry>
  694. <entry align="left" valign="top">icon,window</entry>
  695. <entry align="left" valign="top">button,key,menu</entry></row>
  696. <row>
  697. <entry align="left" valign="top"><function>f.pack_icons</function></entry>
  698. <entry align="left" valign="top">root,icon,window</entry>
  699. <entry align="left" valign="top">button,key,menu</entry></row>
  700. <row>
  701. <entry align="left" valign="top"><function>f.pass_keys</function></entry>
  702. <entry align="left" valign="top">root,icon,window</entry>
  703. <entry align="left" valign="top">button,key,menu</entry></row>
  704. <row>
  705. <entry align="left" valign="top"><function>f.post_wmenu</function></entry>
  706. <entry align="left" valign="top">root,icon,window</entry>
  707. <entry align="left" valign="top">button,key</entry></row>
  708. <row>
  709. <entry align="left" valign="top"><function>f.prev_cmap</function></entry>
  710. <entry align="left" valign="top">root,icon,window</entry>
  711. <entry align="left" valign="top">button,key,menu</entry></row>
  712. <row>
  713. <entry align="left" valign="top"><function>f.prev_key</function></entry>
  714. <entry align="left" valign="top">root,icon,window</entry>
  715. <entry align="left" valign="top">button,key,menu</entry></row>
  716. <row>
  717. <entry align="left" valign="top"><emphasis>f.prev_workspace</emphasis></entry>
  718. <entry align="left" valign="top">root,icon,window</entry>
  719. <entry align="left" valign="top">button,key,menu</entry></row>
  720. <row>
  721. <entry align="left" valign="top"><emphasis>f.quit_dtwm</emphasis></entry>
  722. <entry align="left" valign="top">root</entry>
  723. <entry align="left" valign="top">button,key,menu (root only)</entry></row>
  724. <row>
  725. <entry align="left" valign="top"><function>f.raise</function></entry>
  726. <entry align="left" valign="top">root,icon,window</entry>
  727. <entry align="left" valign="top">button,key,menu</entry></row>
  728. <row>
  729. <entry align="left" valign="top"><function>f.raise_lower</function></entry>
  730. <entry align="left" valign="top">icon,window</entry>
  731. <entry align="left" valign="top">button,key,menu</entry></row>
  732. <row>
  733. <entry align="left" valign="top"><function>f.refresh</function></entry>
  734. <entry align="left" valign="top">root,icon,window</entry>
  735. <entry align="left" valign="top">button,key,menu</entry></row>
  736. <row>
  737. <entry align="left" valign="top"><function>f.refresh_win</function></entry>
  738. <entry align="left" valign="top">window</entry>
  739. <entry align="left" valign="top">button,key,menu</entry></row>
  740. <row>
  741. <entry align="left" valign="top"><emphasis>f.remove</emphasis></entry>
  742. <entry align="left" valign="top">root,icon,window</entry>
  743. <entry align="left" valign="top">button,key,menu</entry></row>
  744. <row>
  745. <entry align="left" valign="top"><function>f.resize</function></entry>
  746. <entry align="left" valign="top">window</entry>
  747. <entry align="left" valign="top">button,key,menu</entry></row>
  748. <row>
  749. <entry align="left" valign="top"><function>f.restart</function></entry>
  750. <entry align="left" valign="top">root</entry>
  751. <entry align="left" valign="top">button,key,menu (root only)</entry></row>
  752. <row>
  753. <entry align="left" valign="top"><function>f.restore</function></entry>
  754. <entry align="left" valign="top">icon,window</entry>
  755. <entry align="left" valign="top">button,key,menu</entry></row>
  756. <row>
  757. <entry align="left" valign="top"><function>f.restore_and_raise</function></entry>
  758. <entry align="left" valign="top">icon,window</entry>
  759. <entry align="left" valign="top">button,key,menu</entry></row>
  760. <row>
  761. <entry align="left" valign="top"><function>f.screen</function></entry>
  762. <entry align="left" valign="top">root,icon,window</entry>
  763. <entry align="left" valign="top">button,key,menu</entry></row>
  764. <row>
  765. <entry align="left" valign="top"><function>f.send_msg</function></entry>
  766. <entry align="left" valign="top">icon,window</entry>
  767. <entry align="left" valign="top">button,key,menu</entry></row>
  768. <row>
  769. <entry align="left" valign="top"><function>f.separator</function></entry>
  770. <entry align="left" valign="top">root,icon,window</entry>
  771. <entry align="left" valign="top">menu</entry></row>
  772. <row>
  773. <entry align="left" valign="top"><function>f.set_behavior</function></entry>
  774. <entry align="left" valign="top">root,icon,window</entry>
  775. <entry align="left" valign="top">button,key,menu</entry></row>
  776. <row>
  777. <entry align="left" valign="top"><function>f.title</function></entry>
  778. <entry align="left" valign="top">root,icon,window</entry>
  779. <entry align="left" valign="top">menu</entry></row>
  780. <row>
  781. <entry align="left" valign="top"><emphasis>f.toggle_frontpanel</emphasis></entry>
  782. <entry align="left" valign="top">root,icon,window</entry>
  783. <entry align="left" valign="top">button,key,menu</entry></row>
  784. <row>
  785. <entry align="left" valign="top"><emphasis>f.version</emphasis></entry>
  786. <entry align="left" valign="top">root,icon,window</entry>
  787. <entry align="left" valign="top">button,key,menu</entry></row>
  788. <row>
  789. <entry align="left" valign="top"><emphasis>f.workspace_presence</emphasis></entry>
  790. <entry align="left" valign="top">window</entry>
  791. <entry align="left" valign="top">button,key,menu</entry></row></tbody></tgroup>
  792. </informaltable>
  793. </refsect2>
  794. </refsect1>
  795. <refsect1>
  796. <title>WORKSPACE MANAGER EVENT SPECIFICATION</title>
  797. <para>Events are indicated as part of the specifications for button and key
  798. binding sets, and menu panes. Button events have the following syntax:</para>
  799. <informalexample remap="indent">
  800. <programlisting><literal>button</literal> =~[<literal>modifier_list</literal> ]<emphasis>&lt;</emphasis><literal>button_event_name</literal> <emphasis>></emphasis>
  801. <literal>modifier_list</literal> =~<literal>modifier_name</literal> { <literal>modifier_name</literal>}</programlisting>
  802. </informalexample>
  803. <para>The following table indicates the values that can be used for <literal>modifier_name</literal>. Note that [Alt] and [Meta] can be used interchangably
  804. on some hardware.</para>
  805. <informaltable remap="center" orient="port">
  806. <tgroup cols="2" colsep="0" rowsep="0">
  807. <colspec align="left" colwidth="91*">
  808. <colspec align="left" colwidth="365*">
  809. <tbody>
  810. <row>
  811. <entry align="left" valign="top">Modifier</entry>
  812. <entry align="left" valign="top">Description</entry></row>
  813. <row>
  814. <entry align="left" valign="top">Ctrl</entry>
  815. <entry align="left" valign="top">Control Key</entry></row>
  816. <row>
  817. <entry align="left" valign="top">Shift</entry>
  818. <entry align="left" valign="top">Shift Key</entry></row>
  819. <row>
  820. <entry align="left" valign="top">Alt</entry>
  821. <entry align="left" valign="top">Alt Key</entry></row>
  822. <row>
  823. <entry align="left" valign="top">Meta</entry>
  824. <entry align="left" valign="top">Meta Key</entry></row>
  825. <row>
  826. <entry align="left" valign="top">Mod1</entry>
  827. <entry align="left" valign="top">Modifier1</entry></row>
  828. <row>
  829. <entry align="left" valign="top">Mod2</entry>
  830. <entry align="left" valign="top">Modifier2</entry></row>
  831. <row>
  832. <entry align="left" valign="top">Mod3</entry>
  833. <entry align="left" valign="top">Modifier3</entry></row>
  834. <row>
  835. <entry align="left" valign="top">Mod4</entry>
  836. <entry align="left" valign="top">Modifier4</entry></row>
  837. <row>
  838. <entry align="left" valign="top">Mod5</entry>
  839. <entry align="left" valign="top">Modifier5</entry></row></tbody></tgroup>
  840. </informaltable>
  841. <para>Locking modifiers are ignored when processing button and key bindings.
  842. The following table lists keys that are interpreted as locking modifiers.
  843. The X server may map some of these symbols to the Mod1 - Mod5 modifier keys.
  844. These keys may or may not be available on your hardware: Key Symbol Caps Lock
  845. Shift Lock Kana Lock Num Lock Scroll Lock The following table indicates the
  846. values that can be used for <literal>button_event_name</literal>.</para>
  847. <informaltable remap="center" orient="port">
  848. <tgroup cols="2" colsep="0" rowsep="0">
  849. <colspec align="left" colwidth="107*">
  850. <colspec align="left" colwidth="349*">
  851. <tbody>
  852. <row>
  853. <entry align="left" valign="top">Button</entry>
  854. <entry align="left" valign="top">Description</entry></row>
  855. <row>
  856. <entry align="left" valign="top">Btn1Down</entry>
  857. <entry align="left" valign="top">Button 1 Press</entry></row>
  858. <row>
  859. <entry align="left" valign="top">Btn1Up</entry>
  860. <entry align="left" valign="top">Button 1 Release</entry></row>
  861. <row>
  862. <entry align="left" valign="top">Btn1Click</entry>
  863. <entry align="left" valign="top">Button 1 Press and Release</entry></row>
  864. <row>
  865. <entry align="left" valign="top">Btn1Click2</entry>
  866. <entry align="left" valign="top">Button 1 Double Click</entry></row>
  867. <row>
  868. <entry align="left" valign="top">Btn2Down</entry>
  869. <entry align="left" valign="top">Button 2 Press</entry></row>
  870. <row>
  871. <entry align="left" valign="top">Btn2Up</entry>
  872. <entry align="left" valign="top">Button 2 Release</entry></row>
  873. <row>
  874. <entry align="left" valign="top">Btn2Click</entry>
  875. <entry align="left" valign="top">Button 2 Press and Release</entry></row>
  876. <row>
  877. <entry align="left" valign="top">Btn2Click2</entry>
  878. <entry align="left" valign="top">Button 2 Double Click</entry></row>
  879. <row>
  880. <entry align="left" valign="top">Btn3Down</entry>
  881. <entry align="left" valign="top">Button 3 Press</entry></row>
  882. <row>
  883. <entry align="left" valign="top">Btn3Up</entry>
  884. <entry align="left" valign="top">Button 3 Release</entry></row>
  885. <row>
  886. <entry align="left" valign="top">Btn3Click</entry>
  887. <entry align="left" valign="top">Button 3 Press and Release</entry></row>
  888. <row>
  889. <entry align="left" valign="top">Btn3Click2</entry>
  890. <entry align="left" valign="top">Button 3 Double Click</entry></row>
  891. <row>
  892. <entry align="left" valign="top">Btn4Down</entry>
  893. <entry align="left" valign="top">Button 4 Press</entry></row>
  894. <row>
  895. <entry align="left" valign="top">Btn4Up</entry>
  896. <entry align="left" valign="top">Button 4 Release</entry></row>
  897. <row>
  898. <entry align="left" valign="top">Btn4Click</entry>
  899. <entry align="left" valign="top">Button 4 Press and Release</entry></row>
  900. <row>
  901. <entry align="left" valign="top">Btn4Click2</entry>
  902. <entry align="left" valign="top">Button 4 Double Click</entry></row>
  903. <row>
  904. <entry align="left" valign="top">Btn5Down</entry>
  905. <entry align="left" valign="top">Button 5 Press</entry></row>
  906. <row>
  907. <entry align="left" valign="top">Btn5Up</entry>
  908. <entry align="left" valign="top">Button 5 Release</entry></row>
  909. <row>
  910. <entry align="left" valign="top">Btn5Click</entry>
  911. <entry align="left" valign="top">Button 5 Press and Release</entry></row>
  912. <row>
  913. <entry align="left" valign="top">Btn5Click2</entry>
  914. <entry align="left" valign="top">Button 5 Double Click</entry></row></tbody>
  915. </tgroup></informaltable>
  916. <para>Key events that are used by the workspace manager for menu mnemonics
  917. and for binding to workspace manager functions are single key presses; key
  918. releases are ignored. Key events have the following syntax:</para>
  919. <informalexample remap="indent">
  920. <programlisting><literal>key</literal> =~[<literal>modifier_list</literal>] <keysym>Key</keysym><literal>key_name</literal>
  921. <literal>modifier_list</literal> =~<literal>modifier_name</literal> { <literal>modifier_name</literal>}</programlisting>
  922. </informalexample>
  923. <para>All modifiers specified are interpreted as being exclusive (this means
  924. that only the specified modifiers can be present when the key event occurs).
  925. Modifiers for keys are the same as those that apply to buttons. The <literal>key_name</literal> is an X11 keysym name. Keysym names can be found in the
  926. <filename>keysymdef.h</filename> file (remove the <symbol role="Define">XK_</symbol>
  927. prefix).</para>
  928. </refsect1>
  929. <refsect1>
  930. <title>BUTTON BINDINGS</title>
  931. <para>The <literal>buttonBindings</literal> resource value is the name of
  932. a set of button bindings that are used to configure workspace manager behavior.
  933. A workspace manager function can be done when a button press occurs with
  934. the pointer over a framed client window, an icon or the root window. The
  935. context for indicating where the button press applies is also the context
  936. for invoking the workspace manager function when the button press is done
  937. (significant for functions that are context sensitive). The button binding
  938. syntax is</para>
  939. <informalexample remap="indent">
  940. <programlisting><emphasis>Buttons</emphasis> <literal>bindings_set_name</literal>
  941. <emphasis>{</emphasis>
  942. <literal>button</literal> <literal>context</literal> <literal>function</literal>
  943. <literal>button</literal> <literal>context</literal> <literal>function</literal>
  944. ...
  945. <literal>button</literal> <literal>context</literal> <literal>function</literal>
  946. <emphasis>}</emphasis></programlisting>
  947. </informalexample>
  948. <para>The syntax for the <literal>context</literal> specification is: <literal>context</literal> = <literal>object</literal>[<emphasis>|</emphasis> <literal>context</literal>] <literal>object</literal> = <symbol role="Variable">root</symbol> | <symbol role="Variable">icon</symbol> | <symbol role="Variable">window</symbol> | <symbol role="Variable">title</symbol> | <symbol role="Variable">frame</symbol> | <symbol role="Variable">border</symbol> | <symbol role="Variable">app</symbol> The context specification indicates where the pointer must be
  949. for the button binding to be effective. For example, a context of
  950. <symbol role="Variable">window</symbol> indicates that the pointer must be over a
  951. client window or window management frame for the button binding to be effective.
  952. The <symbol role="Variable">frame</symbol> context is for the window management
  953. frame around a client window (including the border and titlebar), the
  954. <symbol role="Variable">border</symbol> context is for the border part of the window
  955. management frame (not including the titlebar), the <symbol role="Variable">title</symbol> context is for the title area of the window management frame,
  956. and the <symbol role="Variable">app</symbol> context is for the application
  957. window (not including the window management frame). If an <function>f.nop</function> function is specified for a button binding, the button binding
  958. is not done.</para>
  959. </refsect1>
  960. <refsect1>
  961. <title>KEY BINDINGS</title>
  962. <para>The <literal>keyBindings</literal> resource value is the name of a set
  963. of key bindings that are used to configure workspace manager behavior. A
  964. window manager function can be done when a particular key is pressed. The
  965. context in which the key binding applies is indicated in the key binding specification.
  966. The valid contexts are the same as those that apply to button bindings. The
  967. key binding syntax is:</para>
  968. <informalexample remap="indent">
  969. <programlisting><emphasis>Keys</emphasis> <literal>bindings_set_name</literal>
  970. <emphasis>{</emphasis>
  971. <literal>key</literal> <literal>context</literal> <literal>function</literal>
  972. <literal>key</literal> <literal>context</literal> <literal>function</literal>
  973. ...
  974. <literal>key</literal> <literal>context</literal> <literal>function</literal>
  975. <emphasis>}</emphasis></programlisting>
  976. </informalexample>
  977. <para>If an <function>f.nop</function> function is specified for a key binding,
  978. the key binding is not done. If an <function>f.post_wmenu</function> or <function>f.menu</function> function is bound to a key, <command>dtwm</command> automatically
  979. uses the same key for removing the menu from the screen after it has been
  980. popped up. The <literal>context</literal> specification syntax is the same
  981. as for button bindings with one addition. The context <emphasis>ifkey</emphasis>
  982. may be specified for binding keys that may not be available on all displays.
  983. If the key is not available and if <emphasis>ifkey</emphasis> is in the context,
  984. then reporting of the error message to the error log is suppressed. This feature
  985. is useful for networked, heterogeneous environments. For key bindings, the
  986. <symbol role="Variable">frame</symbol>, <symbol role="Variable">title</symbol>,
  987. <symbol role="Variable">border</symbol>, and <symbol role="Variable">app</symbol>
  988. contexts are equivalent to the <symbol role="Variable">window</symbol> context.
  989. The context for a key event is the window or icon that has the keyboard input
  990. focus (<symbol role="Variable">root</symbol> if no window or icon has the
  991. keyboard input focus).</para>
  992. </refsect1>
  993. <refsect1>
  994. <title>MENU PANES</title>
  995. <para>Menus can be popped up using the <function>f.post_wmenu</function> and <function>f.menu</function> workspace manager functions. The context for workspace manager
  996. functions that are done from a menu is <symbol role="Variable">root</symbol>,
  997. <symbol role="Variable">icon</symbol> or <symbol role="Variable">window</symbol> depending
  998. on how the menu was popped up. In the case of the <symbol role="Variable">window</symbol> menu or menus popped up with a key binding, the location of
  999. the keyboard input focus indicates the context. For menus popped up using
  1000. a button binding, the context of the button binding is the context of the
  1001. menu. The menu pane specification syntax is:</para>
  1002. <informalexample remap="indent">
  1003. <programlisting><emphasis>Menu</emphasis> <literal>menu_name</literal>
  1004. <emphasis>{</emphasis>
  1005. <literal>label</literal> [<literal>mnemonic</literal>] [<literal>accelerator</literal> ] <literal>function</literal>
  1006. <literal>label</literal> [<literal>mnemonic</literal>] [<literal>accelerator</literal> ] <literal>function</literal>
  1007. ...
  1008. <literal>label</literal> [<literal>mnemonic</literal>] [<literal>accelerator</literal> ] <literal>function</literal>
  1009. <emphasis>}</emphasis></programlisting>
  1010. </informalexample>
  1011. <para>Each line in the <emphasis>Menu</emphasis> specification identifies
  1012. the label for a menu item and the function to be done if the menu item is
  1013. selected. Optionally a menu button mnemonic and a menu button keyboard accelerator
  1014. may be specified. Mnemonics are functional only when the menu is posted and
  1015. keyboard traversal applies. The <literal>label</literal> may be a string or
  1016. a bitmap file. The label specification has the following syntax:</para>
  1017. <informalexample remap="indent">
  1018. <programlisting><literal>label</literal> = <literal>text</literal> | <literal>bitmap_file</literal>
  1019. <literal>bitmap_file</literal> = <emphasis>@</emphasis><literal>file_name</literal>
  1020. <literal>text</literal> = <literal>quoted_item</literal> | <literal>unquoted_item</literal></programlisting>
  1021. </informalexample>
  1022. <para>The string encoding for labels must be compatible with the menu font
  1023. that is used. Labels are greyed out for menu items that do the <function>f.nop</function> function or an invalid function or a function that doesn't
  1024. apply in the current context. A <literal>mnemonic</literal> specification
  1025. has the following syntax:</para>
  1026. <informalexample remap="indent">
  1027. <programlisting><literal>mnemonic</literal> = <emphasis>_</emphasis> <literal>character</literal></programlisting>
  1028. </informalexample>
  1029. <para>The first matching <literal>character</literal> in the label is underlined.
  1030. If there is no matching <literal>character</literal> in the label, no mnemonic
  1031. is registered with the workspace manager for that label. Although the <literal>character</literal> must exactly match a character in the label, the mnemonic
  1032. does not execute if any modifier (such as Shift) is pressed with the character
  1033. key. The <literal>accelerator</literal> specification is a key event specification
  1034. with the same syntax as is used for key bindings to workspace manager functions.
  1035. </para>
  1036. </refsect1>
  1037. <refsect1>
  1038. <title>INCLUDING FILES</title>
  1039. <para>You may include other files into your dtwmrc file by using the
  1040. <symbol role="Variable">include</symbol> construct. For example,</para>
  1041. <informalexample remap="indent">
  1042. <programlisting>INCLUDE
  1043. {
  1044. /usr/local/shared/dtwm.menus
  1045. /home/kmt/personal/my.bindings
  1046. }</programlisting>
  1047. </informalexample>
  1048. <para>causes the files named to be read in and interpreted in order as an
  1049. additional part of the dtwmrc file. <emphasis>Include</emphasis> is a top-level
  1050. construct. It cannot be nested inside another construct.</para>
  1051. </refsect1>
  1052. <refsect1>
  1053. <title>WARNINGS</title>
  1054. <para>Errors that occur during the processing of the resource description
  1055. file are recorded in: <Filename>$HOME/.dt/errorlog</Filename>. Be sure to
  1056. check this file if the appearance or behavior of <command>dtwm</command>
  1057. is not what you expect.</para>
  1058. </refsect1>
  1059. <refsect1>
  1060. <title>FILES</title>
  1061. <para><literal>$HOME/.dt/$LANG/dtwmrc $HOME/.dt/dtwmrc /etc/dt/config/$LANG/sys.dtwmrc
  1062. /etc/dt/config/sys.dtwmrc /usr/dt/config/$LANG/sys.dtwmrc /usr/dt/config/sys.dtwmrc
  1063. $HOME/.dt/errorlog</literal></para>
  1064. </refsect1>
  1065. <refsect1>
  1066. <title>RELATED INFORMATION</title>
  1067. <para>&cdeman.dtwm;, &cdeman.mwm;, &cdeman.dtfile;, <Filename MoreInfo="RefEntry">X</Filename>(1). <?Pub Caret></para>
  1068. </refsect1>
  1069. </refentry>
  1070. <!--fickle 1.12 mancsf-to-docbook 1.2 08/07/95 01:31:55-->
  1071. <?Pub *0000086911>