1This is David Hogan's 9wm updated to behave more like 2Plan 9's rio. Since I cannot get approval for the changes 3and I'd prefer not to resort to patches, I have renamed it "rio". 4 5Current incompatibilities that would be nice to fix: 6 7- The command-line options should be made more like Plan 9. 8 9- Should work out a protocol between 9term and rio so that: 10 * 9term can tell rio to blue its border during hold mode 11 12- Should change window focus on b2/b3 clicks and then 13 pass along the click event to the now-focused window. 14 15- Should change 9term to redirect b3 clicks to rio so that rio 16 can put up the usual b3 menu. 17 18Axel Belinfante contributed the code to handle border grabbing 19for resize and various other improvements. 20 21The original README is below. 22 23- russ cox 24rsc@swtch.com 2530 march 2004 26 27 28 9wm Version 1.2 29 Copyright 1994-1996 David Hogan. 30 31What is 9wm? 32============ 33 349wm is an X window manager which attempts to emulate the Plan 9 window 35manager 8-1/2 as far as possible within the constraints imposed by X. 36It provides a simple yet comfortable user interface, without garish 37decorations or title-bars. Or icons. And it's click-to-type. This 38will not appeal to everybody, but if you're not put off yet then read 39on. (And don't knock it until you've tried it.) 40 41One major difference between 9wm and 8-1/2 is that the latter provides 42windows of text with a typescript interface, and doesn't need to run a 43separate program to emulate a terminal. 9wm, as an X window manager, 44does require a separate program. For better 8-1/2 emulation, you should 45obtain Matthew Farrow's "9term" program (ftp://ftp.cs.su.oz.au/matty/unicode), 46version 1.6 or later (earlier versions don't cooperate with 9wm in 47implementing "hold mode"). Of course, you can run xterm under 9wm as well. 48 49What is 9wm not? 50================ 51 529wm is not a virtual window manager. It is not customisable to any 53great extent. It is not large and unwieldy, and doesn't use the X 54toolkit. Requests to make it any of these things will be silently 55ignored (or flamed if I have had a bad day :-) If you want tvtwm 56or mwm, you know where to get them... 57 58Where do I get it? 59================== 60 61The latest version of 9wm is held at ftp://ftp.cs.su.oz.au/dhog/9wm 62 63Author 64====== 65 669wm was written by David Hogan (dhog@cs.su.oz.au), a postgraduate 67student at the Basser Department of Computer Science, University 68of Sydney (http://www.cs.su.oz.au/~dhog/). 69 70Licence 71======= 72 73 9wm is free software, and is Copyright (c) 1994-1996 by David Hogan. 74 Permission is granted to all sentient beings to use this software, 75 to make copies of it, and to distribute those copies, provided 76 that: 77 78 (1) the copyright and licence notices are left intact 79 (2) the recipients are aware that it is free software 80 (3) any unapproved changes in functionality are either 81 (i) only distributed as patches 82 or (ii) distributed as a new program which is not called 9wm 83 and whose documentation gives credit where it is due 84 (4) the author is not held responsible for any defects 85 or shortcomings in the software, or damages caused by it. 86 87 There is no warranty for this software. Have a nice day. 88 89How do I compile/install it? 90============================ 91 92Assuming your system is correctly configured, you should only need to 93run xmkmf to generate the Makefile, and then run make or make install. 94make install.man should copy the manpage (9wm.man) to the appropriate 95directory. 96 97If the make fails, complaining that the function _XShapeQueryExtension 98does not exist, try removing the "-DSHAPE" from the Imakefile, and 99run xmkmf and make again. 100 101If you don't have imake, or it is misconfigured, or you would prefer 102not to use it, try copying the file "Makefile.no-imake" to "Makefile", 103then edit the definitions in this Makefile to suit your system. This 104may require defining suitable compilation flags for your system 105(normally imake does this for you). For instance, on AIX you must 106include "-DBSD_INCLUDES" in CFLAGS. 107 108How do I use it? 109================ 110 111See the manual page for details. You should probably read the 112man page for 9term as well. 113 114What if I find a bug? 115===================== 116 117Please mail all bug reports to 9wm-bugs@plan9.cs.su.oz.au, so 118that I can incorporate fixes into the next release. If you can 119tell me how to fix it, all the better. 120 121Known Problems/Bugs 122=================== 123 1249wm tries hard to emulate 8-1/2, but isn't 100% compatible. If 125you are an experienced 8-1/2 user, please be patient with it. 126 127One intentional difference between 9wm and 8-1/2 is in the behaviour 128of the menu when the last hidden item is unhidden. Under 8-1/2, when 129the menu is next used, it pops up with "New" selected. Under 9wm, 130the (new) last menu item will be selected. This is a feature. It 131may be confusing if you frequently switch between 9wm and 8-1/2. 132If you don't like this feature, email me for the one line fix. 133 134There have been some problems encountered when resizing 9term on 135some platforms. This turns out to be a problem in 9term (actually 136in libXg, to be precise). Newer versions of 9term should be 137immune to this, see matty@cs.su.oz.au if your 9term needs fixing. 138 139Some client programs do weird things. One of these is Frame Maker. 140It appears that if it has a modal dialog on the screen, then if any 141of its windows are current, all keypresses are redirected to the 142modal dialog. This is not 9wm's fault -- Frame Maker is doing this. 143 144Programs like Netscape Navigator like to put riddiculously long 145icon name properties on their windows, of the form "Netscape: blah blah". 146There is no way that I know of to stop netscape from doing this. For this 147reason, 9wm truncates labels at the first colon it finds. This keeps the 148button 3 menu from becoming excessively wide. Note that with same 149applications, you can use an iconName resource to set the label; this 150works well for "xman", whose default icon name of "Manual Browser" 151is a tad too long. 152 153See Also 154======== 155 156http://www.cs.su.oz.au/~dhog/ 157 The 9wm Home Page 158 159ftp://ftp.cs.su.oz.au/matty/unicode/ 160 for source to 9term (get README first) 161 162ftp://plan9.att.com/plan9/unixsrc/sam/ 163 for source && info on Rob Pike's editor "sam" 164 165ftp://rtfm.mit.edu/pub/usenet/news.answers/unix-faq/shell/rc 166 for information on a publically available implementation 167 of the Plan 9 shell "rc" for unix (or look in comp.unix.shell). 168 169ftp://viz.tamu.edu/pub/rc 170 for source to the abovementioned implementation of rc. 171 172http://plan9.att.com/plan9/ 173http://plan9.att.com/magic/man2html/1/8%c2%bd 174 for information on Plan 9 (including the 8-1/2 manual entry) 175 176Acknowledgements 177================ 178 179Thanks to Rob Pike for writing the original 8-1/2 program (and 180before that, mux) which inspired the writing of 9wm. 181 182Thanks to John Mackin, whose gwm "wool code" for emulating mux 183was also an inspiration: I used it (and hacked it) until I got 184too frustrated with gwm's large memory requirements and lack of 185speed (sorry Colas!), and decided to write a dedicated program. 186 187Thanks to Matthew Farrow for writing 9term. 188 189A big thanks to Dave Edmondson for adding support for 190multi-screen displays. 191 192The following people helped beta test 9wm: 193 194 John Mackin 195 Noel Hunt 196 Fred Curtis 197 James Matthew Farrow 198 Danny Yee 199 Arnold Robbins 200 Byron Rakitzis 201 micro@cooper.edu 202