-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME
201 lines (152 loc) · 7.68 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
9wm-xcb is an attempt to port David Hogan's excellent 9wm to the xcb
libraries. For more information about xcb, see http://xcb.freedesktop.org.
I started this port with the idea of learning the inner working of a
window manager, to better understand Xlib programming, and to learn xcb
programming.
To build use `make`. Then `make install` will install into the default
install prefix, which is /usr/local. To clean out build files, use
`make clean`. A debug version is also available with `make debug`, though
use of this for any but actual debugging is discouraged; 9wm-xcb.dbg
outputs a vast amount of info that will make your X log files bulge.
9wm-xcb uses the same licence as 9wm.
For bug reports, see the 9wm-xcb github page. No new features will be added
to 9wm-xcb, but wishlist items may be concidered for future plans on a new
window manager I plan to write this year.
Original README for the pre-9wm-1.2.tar.gz archive:
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 ([email protected]), a postgraduate
student at the Basser Department of Computer Science, University
of Sydney (http://www.cs.su.oz.au/~dhog/).
Licence
=======
Copyright (c) 1994-1996 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 [email protected], 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 [email protected] 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