9wm Version 1.1 Copyright 1994 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/basser_home.html). Licence ======= Copyright (c) 1994 David Hogan Copyright (c) 2009 The Estate of David Hogan Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicence, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 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. Multi-screen displays (aka "Zaphod Mode") are not supported. Fixing this requires major changes to the source, so don't expect to see this fixed for some time. 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 wierd 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. See Also ======== ftp://ftp.cs.su.oz.au/matty/unicode/ for source to 9term (get README first) ftp://research.att.com/dist/sam/ for source && info on Rob Pike's editor "sam" ftp://rtfm.mit.edu/pub/usenet/comp.unix.shell/rc-FAQ 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. ftp://research.att.com/dist/plan9doc/ ftp://research.att.com/dist/plan9man/ 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. 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