[net.unix] UNIX Windows

gek@ihuxj.UUCP (Glenn Kapetansky) (03/30/84)

I just noticed in the Usenix Newsletter (February), that Roger Jacob
of NRL has "posted to the net" his software for a window mangement
facility.  This facility requires no changes to the kernel. Did
anyone see it? Could it get re-"posted to the net" ? I'd like to
play with it...

glenn kapetansky
ihnp4!ihu1j!gek

jacob@Nrl-Css.ARPA (04/04/84)

From:  Rob Jacob <jacob@Nrl-Css.ARPA>

I just came across a recent message on info-unix asking about my
window manager program (WM) for Unix.  I described it at the
USENIX conference in Washington last January.  I originally
wrote WM for a PDP-11/45 running vanilla v6 Unix.  (This was a
long time ago!) I wanted to do it without any kernel changes.  I
have since ported it to v7, 2.8bsd, 4.1bsd, 4.1c on a SUN, and,
soon, 4.2, all without kernel mods.

WM runs as a collection of user processes, connected by pipes.
(Yes, this means you can't run screen editors and other neat
programs inside it yet.  But you will be able to run them in
4.2bsd, where I use PTY's instead of pipes.)

I haven't posted the code, but I'll be glad to mail it to anyone
who is interested.  There are presently 3 1/2 versions of the
program, so tell me which you are interested in.  Source for
each is about 80k bytes.  I'll mail them to anyone who is
interested if you're on the arpanet or if your uucp path
won't choke on that size message -- or send me a tape and I'll
put all the versions on it.  I'd also be glad to hear from
anyone with general questions or comments on this stuff and/or
to send them a copy of my USENIX paper.

These are the versions of the program that I have now--

wm.v6	 runs on vanilla v6 Unix, a relic from the ancient past.

wm.v7	 runs on vanilla v7 Unix on a PDP-11, also on 2.8bsd, on
	 a VAX on 4.1bsd and (probably) 4.2bsd, and on a SUN on
	 4.1c, but it doesn't exploit the later Unixes.  Uses
	 TERMCAP if you have it, but can also run without it.
	 This is the most robust and portable version, but it lacks
	 some of the neat features of the later ones.

wm.v7c 	 runs on v7 Unix systems that have CURSES.  This has
	 been tested only on 4.1bsd on a VAX, but should work on
	 v7 or 2.8bsd on a PDP-11 if it will fit.  It runs faster
	 and has some extra features, but is a little less robust
	 and less portable than wm.v7.

wm.v42 	 (this is the 1/2 version) completely redesigned to use
	 features available only in 4.2bsd Unix, namely
	 non-blocking i/o and PTY's.  HOWEVER, I have not been
	 able to test it properly on 4.2, so I suspect it needs
	 a little hacking to make it run.  I have sent it to
	 some people who report that they got it to run on their
	 4.2 systems, but "caveat emptor" until we get 4.2 up
	 here again so I can fix it.

Finally, this is a brief description of what the program (all
versions) does:  WM manages a collection of windows on a display
terminal.  Each window has its own shell, running in parallel
with those in the other windows.  This permits a user to conduct
several interactions in parallel, each in its own window.  The
user can move from one window to another, re-position a window,
or create or delete a window at any time without losing his or
her place in any of the windows.  Windows can overlap or
completely obscure one another; obscured windows can be "lifted"
up and placed on top of the other windows.

Hope this answers your questions,

Robert Jacob

ARPANET:	jacob@nrl-css
UUCP:		{decvax,linus}!nrl-css!jacob
SNAIL:		Code 7590, Naval Research Lab, Washington, D.C. 20375