home *** CD-ROM | disk | FTP | other *** search
/ ftp.freefriends.org / ftp.freefriends.org.tar / ftp.freefriends.org / arnold / Source / gwm-dist.tar.gz / gwm-dist.tar / README.profile < prev   
Text File  |  1993-08-01  |  10KB  |  192 lines

  1. How to customise the gwm profile.
  2.  
  3.  
  4. Assuming you have already taken care of installing gwm itself, and installed
  5. the Blit font (if you don't want to do that, you may want to find references
  6. to it in our code and change them), you now need to set up our code which
  7. makes gwm do the somewhat-mux-like environment.  That code MUST be customised
  8. for your site before you can use it, but the customisations are limited to
  9. one file and should be easy.  This file tells you what to do and assumes
  10. that you can type "gwm" and get gwm to run in your X environment using
  11. the gwm default profile.
  12.  
  13. First, create the directory "gwm" in your home directory.  This will be
  14. searched by gwm automatically; you need do nothing special to get that
  15. to happen.  Then, copy all the files from the "home-gwm" directory that
  16. you obtained when you extracted the distribution tar file into $home/gwm.
  17. NOTE: There is one file in there whose name starts with a dot, namely,
  18. ".profile.gwm".  Make certain you get that one.
  19.  
  20. The basic operation of the Blit profile should be introduced here.
  21. Windows have three-pixel borders and no other decoration.  The outer
  22. one pixel is always black, for contrast.  The inner two pixels are
  23. black if the window is the `focus window' (i.e., if it has the `mouse
  24. focus', an artifact of our code, and the X input (keyboard) focus).
  25. Otherwise, they are white.  Unlike with other X window management
  26. styles, you can NOT interact with a window with the mouse unless it
  27. is the focus window.
  28.  
  29. There are no "real-estate" considerations.  Moving the mouse cursor
  30. never matters to the window manager unless you press buttons.
  31.  
  32. The window manager grabs Buttons 1 and 3 except when the mouse is over the
  33. focus window.  Clicking Button 1 over a window which is not the focus
  34. window will raise it and make it the focus window.  (Over the focus
  35. window, Button 1 is not grabbed and so is passed to the X client.)
  36. Clicking Button 1 over the root window is a no-op.
  37.  
  38. If the current window becomes unmapped for any reason (say, you
  39. destroy it or iconify it, or its client crashes), the focus will
  40. revert to the window that most recently had the focus before the
  41. current window acquired it.
  42.  
  43. Pressing Button 3 anywhere outside the focus window will give you the
  44. window manager's "Button 3 menu".  (Over the focus window, Button 3 is
  45. not grabbed and so is passed to the X client.)  The popup has the
  46. (hopefully useful) feature that it pops up with the same selection
  47. under the mouse as the one you last visited, unless this is impossible
  48. due to screen real-estate considerations.  To drop the menu without
  49. doing anything, move the cursor outside the menu as usual before
  50. releasing the button.  The selections highlight when you visit them.
  51. (All very standard popup-menu stuff.  "sam" users will have no problem.)
  52.  
  53. Here is a tour through the Button 3 menu.  You can cancel any operation
  54. that results in a target cursor by clicking Button 1 or 2, or confirm
  55. it by placing the target over the window to be affected and clicking
  56. or pressing and holding Button 3.
  57.  
  58. New:    Create a new window.  Gives a popup of machines.  Click outside
  59.     the popup to cancel the creation.
  60.  
  61. Reshape: Unfortunately un-Blit-like.  Use the target cursor to shoot
  62.     the corner of the window you want to drag, and hold it down
  63.     while dragging.  Raises the window.
  64.  
  65. Tromp:    Iconify a window or de-iconify an icon.  Shortcut this by
  66.     clicking Button 2 over an icon.  (Button 2 is not grabbed
  67.     anywhere except over icons.  You can also pick icons up and
  68.     drag them around with Button 1.  We inherited these latter
  69.     from Colas and found them acceptable.)
  70.  
  71. Move:    Like mux.  Warps the cursor to the upper left of the window
  72.     to be moved; you drag it on Button 3 with the sweep cursor
  73.     and release when satisfied with the new location.  We
  74.     deliberately do not grab the server during this operation,
  75.     so if you move the outline across windows that are having
  76.     stuff drawn in them, it will leave tracks.  (You can
  77.     customise this if you wish.)  Warps the cursor to the centre
  78.     of the moved window when the move is complete.  Raises the window.
  79.  
  80. Top:    Raises the window you shoot.
  81.  
  82. Bottom:    Lowers the window you shoot.
  83.  
  84. Current: Makes the window you shoot the focus window without changing
  85.     the stacking order.  (So, Button 1 is like a Current and a Top
  86.     combined, and Move and Reshape imply Top.)
  87.  
  88. Push:    A different kind of Move.  You almost never need this but when
  89.     you need it, you need it _badly_.  In the Blit world, windows
  90.     can't be larger than the screen; in the X world, they certainly
  91.     can.  All that cursor-warping doesn't help you if you need to
  92.     move a window that's larger than the screen, although it's
  93.     good for general usability.  This gets you a "push cursor"
  94.     which is attached to the window you shoot and lets you drag
  95.     it around as long as you hold Button 3 down.
  96.  
  97. Delete:    ICCCM-conforming client delete.
  98.  
  99. This may seem like a lot, but it's very easy to use.  Try it out
  100. once you've customised the profile and you'll see it is simple.
  101. The advantage of it is that you don't waste screen real-estate
  102. on all those horrendous decorations, title bars, gadgets, etc.
  103.  
  104. The window manager also grabs two modified buttons: Alt-Button 1 and
  105. Alt-Button 3.  After a short while, you will probably find that
  106. some clients raise fine when you click on them with Button 1 but
  107. they refuse to take the focus: their border doesn't go black, and
  108. you get a beep.  This means that either the client is broken and hasn't
  109. set its hints correctly (usually), or (almost never) the client
  110. actually doesn't accept input, even with the mouse, and so it
  111. makes no sense for it to have the focus.  Until you fix recalcitrant
  112. clients, you can use Alt-Button 1 (grabbed only if the mouse is
  113. not over the focus window) to force them to take the focus even
  114. though their hints say they don't want it.  Alt-Button 3 is grabbed
  115. everywhere and gives a popup of seldom-used and debugging operations
  116. which you can explore for yourself; "End" will exit gwm.
  117.  
  118. (All this can be customised fairly painlessly if you find that
  119. we've grabbed your application's favourite combination.  That's
  120. left as an exercise for the reader.)
  121.  
  122. Now we proceed to tell you how to localise the files.  In $home/gwm,
  123. you need to edit .profile.gwm to reflect your local conditions.  This
  124. is fairly easy.  You'll get the hang of it as you go along.  You can
  125. examine Colas's wool source, especially .gwmrc.gwm, if you want to know
  126. more.  (The reference manual is fairly unenlightening unless you
  127. actually intend to write substantial wool yourself.)
  128.  
  129. ":" is an assignment function like "setq", so
  130.  
  131. (: root-cursor blit-arrow)
  132.  
  133. sets the root window's cursor to be an arrow like that on the Blit.
  134. You could comment that out if you want to leave the root cursor
  135. unchanged, or you could set it to something else by adding the bitmap
  136. files to your gwm directory where "cursor-make" can find them
  137. (read this while looking at .profile.gwm and it will make sense).
  138.  
  139. You can uncomment the assignment to "screen-tile" if you want gwm to
  140. tile the root window for you.
  141.  
  142. Now you need to add machine names.  You must edit the assignment to
  143. "local-machines" to reflect the unadorned (domainless) names of the
  144. machines you feel likely to run gwm on.  They will all appear in the
  145. menu you get when you select "New" on the Button-3 menu, with "."
  146. at the top always meaning "here", i.e. the machine gwm is running
  147. on.  In addition to that, you can add machines which you would like
  148. to spawn xterm on remotely using an "rxterm" command, and machines you
  149. would like to run xterm for locally but spawn either rsh or telnet to
  150. connect to the machine in the new window.  You do these with the
  151. assignment that appends to "xterm-list", and the assignments to
  152. "xterm-rsh-list" and "xterm-telnet-list" respectively.  You can
  153. supply domains on those names if you wish; they will appear
  154. unadorned in the "New" menu but the domains will work.  Note
  155. that those names can just be wool symbols but that the names
  156. in "local-machines" must be wool strings, i.e. each enclosed
  157. in double quotes.  "xload-list" is not supported by our profile.
  158.  
  159. "Tromp" is a coinage meaning "toggle iconification state".
  160. "no-trompall-classes" is a list of strings matching application
  161. classes that should be unaffected by the "All" operations on
  162. the Alt-Button 3 menu.  "tty-window-classes" is a list of strings
  163. matching application classes that should automatically receive
  164. the focus on window creation; windows of other classes don't.
  165. "want-kill-session" controls whether you want a "Kill Session"
  166. entry on your Alt-Button 3 menu.  (You will need to make that
  167. work for yourself if you want to use it.)
  168.  
  169. Skipping down the file, the call to "no-legend" lists application
  170. classes that can be relied on to supply their own icons (which
  171. should be displayed unmodified by the window manager).  You
  172. can use the "set-icon" and "set-icon-window" stuff to control
  173. icon appearance.  (Experiment.)
  174.  
  175. "(set-placement ... user-positioning)" labels an application class
  176. that you want to place it manually unless there was a user-specified
  177. geometry in the hints.  "(set-icon-placement ... self-placement)"
  178. means that the window manager should use the application's
  179. icon geometry hints -- this is for applications that you
  180. typically (a) keep normally iconic; (b) normally run only one
  181. of which lasts your whole session.  Say, "xman".  Otherwise,
  182. the icon geometry is ignored and the manager places the icon in
  183. a stack; by default, along the right-hand edge of the screen,
  184. growing downwards and to the left if space runs out.  (Oh,
  185. the numbers here are good for a 1280 x 1024-pixel screen.)
  186.  
  187. Good luck, have fun, and experiment.  Mail me if you can't
  188. figure it out.
  189.  
  190. John Mackin <john@civil.su.oz.au>, or <john@physiol.su.oz.au>
  191. 2 August 1993
  192.