[comp.windows.x] Bellcore Window Manager

meo@stiatl.UUCP (Miles O'Neal) (04/28/89)

Has anyone used the Bellcore Window Manager posted a while back in
comp.sources.unix? If so, how did/do you like it? What are its
strengths/weaknesses? What is different between it and twm, awm, etc?

---------------------------------------------------------------------
Miles O'Neal                                        gatech!stiatl!meo

moraes@CSRI.TORONTO.EDU (Mark Moraes) (04/29/89)

The Bellcore window manager MGR is really a window system, a terminal
emulator window, and a window manager in the same package. (and it fits
into 240K on a Sun) (It was posted to comp.sources.unix in volume 17, 61
parts from v17i001 to v17i063 including a patch, so grab it from the
nearest archive site, or by anon. ftp from bellcore.com in pub/mgr. The
file MGR.summary there provides more info about it)

It is:

	small - as I said, it is 240K, which can be reduced by 40K if
you remove the snazzy startup demo. On a Sun, the size is 

	text    data    bss     dec     hex
	188416  32768   17428   238612  3a414

After a long session, with several windows, it grew to 650K (350
resident). Trying to get this thing to page is seriously hard work, even
with other users on the machine (a 4M Sun 3/50)! Many "applications" are
shell scripts, most others are 40-50K binaries.

The total src code is about 2M, the installed subtree is about 3.5M.

	fast - since the terminal emulator and window manager are within
the window system program, it can bring up windows instantly. Ditto for
resizing and suchlike. It also starts up very quickly. Switching from
window to window doesn't involve context switches.

	simple - you can only type in the top window, you have to click
to select the window. The supported user-interface is a menu - you are
allowed to specify walking menus which MGR will popup and manage on its
own. No subwindows. Only fixed width fonts. There is only one type of
window - the terminal emulator window, which also accepts graphics
commands and queries in the form of escape sequences. (The MGR library
provides macros which send these escape sequences) You can specify
regions within the window to restrict the text to, for implementing
scrollbars and things. There are fixed upper limits on the number of
windows, menus, fonts etc. It does backing pixmaps for you. (this can
grow the mgr server) MGR network transparency is sending escape
sequences across rlogin.  Various commands are bound to Meta key
combinations - Meta-N brings up a new 80x24 window. This means you can't
use the Meta key for applications like Emacs. The MGR C Library
Interface document reminds one of X10 days - a 50 page document which
you can read conveniently.

I use it on our Suns when I want to do something quickly and don't want
to wait for my X setup to start up (I start up xterms on several
machines, xbiff, xclock, xpostit...) - MGR starts up as quickly as a
small editor (like vi or Jove), so it isn't worth using the Sun console
directly.  Some of our users like it because it is fast and simple.

It has occasionally died on me, at least once with a segmentation fault
which I haven't traced down.

Other random comments:

- click to type is disconcerting for a regular X user. blit users would
probably feel at home.

- It doesn't send SIGWINCH so you need to run the the very vital
set_termcap and set_emacs commands. I strongly recommend aliasing
something like
	alias mgrtset "set noglob; eval `set_emacs`" for emacs users,
and running it as part of your .cshrc. In itself not too major a pain (I
have a similar macro for X). What is severely annoying is that it
doesn't appear to have any concept of SIGWINCH - you resize a window,
you have to run mgrtset again. Not nice.  (Oh yes - vi users will want
to run set_termcap instead; or they may want to run mgr/bin/vi which
does just that, followed by vi startup)

- non-window system editors (and applications can be configured to use
the mouse with appropriate bindings) - click to position the mouse in
vi is interesting, albeit weird.

- The complete lack of feedback on window size is a pain - makes it very
hard to get 80 column wide windows till you discover the shape command.
You can create windows with Meta-N and then resize them if you want to
make sure your windows are 80 columns wide.

- Resizing windows with the mouse is a pain, both because of the lack
of feedback on size in rows/cols, and because you have to literally
reshape your window rather than just adjust it. (blit style)

- Cut is a little awkward till you discover where the "hot-spot" on
the scissors is (the upper-left corner, approx!) Paste being bound to
the Meta-P key is handy.

peter@ficc.uu.net (Peter da Silva) (04/30/89)

Has anyone gotten MGR up under System V?
-- 
Peter da Silva, Xenix Support, Ferranti International Controls Corporation.

Business: uunet.uu.net!ficc!peter, peter@ficc.uu.net, +1 713 274 5180.
Personal: ...!texbell!sugar!peter, peter@sugar.hackercorp.com.