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