| This is David Hogan's 9wm updated to behave more like |
| Plan 9's rio. Since I cannot get approval for the changes |
| and I'd prefer not to resort to patches, I have renamed it "rio". |
| |
| Current incompatibilities that would be nice to fix: |
| |
| - The command-line options should be made more like Plan 9. |
| |
| - Should work out a protocol between 9term and rio so that: |
| * 9term can tell rio to blue its border during hold mode |
| |
| - Should change window focus on b2/b3 clicks and then |
| pass along the click event to the now-focused window. |
| |
| - Should change 9term to redirect b3 clicks to rio so that rio |
| can put up the usual b3 menu. |
| |
| Axel Belinfante contributed the code to handle border grabbing |
| for resize and various other improvements. |
| |
| The original README is below. |
| |
| - russ cox |
| rsc@swtch.com |
| 30 march 2004 |
| |
| |
| 9wm Version 1.2 |
| Copyright 1994-1996 David Hogan. |
| |
| What is 9wm? |
| ============ |
| |
| 9wm is an X window manager which attempts to emulate the Plan 9 window |
| manager 8-1/2 as far as possible within the constraints imposed by X. |
| It provides a simple yet comfortable user interface, without garish |
| decorations or title-bars. Or icons. And it's click-to-type. This |
| will not appeal to everybody, but if you're not put off yet then read |
| on. (And don't knock it until you've tried it.) |
| |
| One major difference between 9wm and 8-1/2 is that the latter provides |
| windows of text with a typescript interface, and doesn't need to run a |
| separate program to emulate a terminal. 9wm, as an X window manager, |
| does require a separate program. For better 8-1/2 emulation, you should |
| obtain Matthew Farrow's "9term" program (ftp://ftp.cs.su.oz.au/matty/unicode), |
| version 1.6 or later (earlier versions don't cooperate with 9wm in |
| implementing "hold mode"). Of course, you can run xterm under 9wm as well. |
| |
| What is 9wm not? |
| ================ |
| |
| 9wm is not a virtual window manager. It is not customisable to any |
| great extent. It is not large and unwieldy, and doesn't use the X |
| toolkit. Requests to make it any of these things will be silently |
| ignored (or flamed if I have had a bad day :-) If you want tvtwm |
| or mwm, you know where to get them... |
| |
| Where do I get it? |
| ================== |
| |
| The latest version of 9wm is held at ftp://ftp.cs.su.oz.au/dhog/9wm |
| |
| Author |
| ====== |
| |
| 9wm was written by David Hogan (dhog@cs.su.oz.au), a postgraduate |
| student at the Basser Department of Computer Science, University |
| of Sydney (http://www.cs.su.oz.au/~dhog/). |
| |
| Licence |
| ======= |
| |
| 9wm is free software, and is Copyright (c) 1994-1996 by David Hogan. |
| Permission is granted to all sentient beings to use this software, |
| to make copies of it, and to distribute those copies, provided |
| that: |
| |
| (1) the copyright and licence notices are left intact |
| (2) the recipients are aware that it is free software |
| (3) any unapproved changes in functionality are either |
| (i) only distributed as patches |
| or (ii) distributed as a new program which is not called 9wm |
| and whose documentation gives credit where it is due |
| (4) the author is not held responsible for any defects |
| or shortcomings in the software, or damages caused by it. |
| |
| There is no warranty for this software. Have a nice day. |
| |
| How do I compile/install it? |
| ============================ |
| |
| Assuming your system is correctly configured, you should only need to |
| run xmkmf to generate the Makefile, and then run make or make install. |
| make install.man should copy the manpage (9wm.man) to the appropriate |
| directory. |
| |
| If the make fails, complaining that the function _XShapeQueryExtension |
| does not exist, try removing the "-DSHAPE" from the Imakefile, and |
| run xmkmf and make again. |
| |
| If you don't have imake, or it is misconfigured, or you would prefer |
| not to use it, try copying the file "Makefile.no-imake" to "Makefile", |
| then edit the definitions in this Makefile to suit your system. This |
| may require defining suitable compilation flags for your system |
| (normally imake does this for you). For instance, on AIX you must |
| include "-DBSD_INCLUDES" in CFLAGS. |
| |
| How do I use it? |
| ================ |
| |
| See the manual page for details. You should probably read the |
| man page for 9term as well. |
| |
| What if I find a bug? |
| ===================== |
| |
| Please mail all bug reports to 9wm-bugs@plan9.cs.su.oz.au, so |
| that I can incorporate fixes into the next release. If you can |
| tell me how to fix it, all the better. |
| |
| Known Problems/Bugs |
| =================== |
| |
| 9wm tries hard to emulate 8-1/2, but isn't 100% compatible. If |
| you are an experienced 8-1/2 user, please be patient with it. |
| |
| One intentional difference between 9wm and 8-1/2 is in the behaviour |
| of the menu when the last hidden item is unhidden. Under 8-1/2, when |
| the menu is next used, it pops up with "New" selected. Under 9wm, |
| the (new) last menu item will be selected. This is a feature. It |
| may be confusing if you frequently switch between 9wm and 8-1/2. |
| If you don't like this feature, email me for the one line fix. |
| |
| There have been some problems encountered when resizing 9term on |
| some platforms. This turns out to be a problem in 9term (actually |
| in libXg, to be precise). Newer versions of 9term should be |
| immune to this, see matty@cs.su.oz.au if your 9term needs fixing. |
| |
| Some client programs do weird things. One of these is Frame Maker. |
| It appears that if it has a modal dialog on the screen, then if any |
| of its windows are current, all keypresses are redirected to the |
| modal dialog. This is not 9wm's fault -- Frame Maker is doing this. |
| |
| Programs like Netscape Navigator like to put riddiculously long |
| icon name properties on their windows, of the form "Netscape: blah blah". |
| There is no way that I know of to stop netscape from doing this. For this |
| reason, 9wm truncates labels at the first colon it finds. This keeps the |
| button 3 menu from becoming excessively wide. Note that with same |
| applications, you can use an iconName resource to set the label; this |
| works well for "xman", whose default icon name of "Manual Browser" |
| is a tad too long. |
| |
| See Also |
| ======== |
| |
| http://www.cs.su.oz.au/~dhog/ |
| The 9wm Home Page |
| |
| ftp://ftp.cs.su.oz.au/matty/unicode/ |
| for source to 9term (get README first) |
| |
| ftp://plan9.att.com/plan9/unixsrc/sam/ |
| for source && info on Rob Pike's editor "sam" |
| |
| ftp://rtfm.mit.edu/pub/usenet/news.answers/unix-faq/shell/rc |
| for information on a publically available implementation |
| of the Plan 9 shell "rc" for unix (or look in comp.unix.shell). |
| |
| ftp://viz.tamu.edu/pub/rc |
| for source to the abovementioned implementation of rc. |
| |
| http://plan9.att.com/plan9/ |
| http://plan9.att.com/magic/man2html/1/8%c2%bd |
| for information on Plan 9 (including the 8-1/2 manual entry) |
| |
| Acknowledgements |
| ================ |
| |
| Thanks to Rob Pike for writing the original 8-1/2 program (and |
| before that, mux) which inspired the writing of 9wm. |
| |
| Thanks to John Mackin, whose gwm "wool code" for emulating mux |
| was also an inspiration: I used it (and hacked it) until I got |
| too frustrated with gwm's large memory requirements and lack of |
| speed (sorry Colas!), and decided to write a dedicated program. |
| |
| Thanks to Matthew Farrow for writing 9term. |
| |
| A big thanks to Dave Edmondson for adding support for |
| multi-screen displays. |
| |
| The following people helped beta test 9wm: |
| |
| John Mackin |
| Noel Hunt |
| Fred Curtis |
| James Matthew Farrow |
| Danny Yee |
| Arnold Robbins |
| Byron Rakitzis |
| micro@cooper.edu |