ManaGeR or MGR is an early windowing system originally designed and developed for Sun 2/120 workstations in 1984 by Stephen A. Uhler, then at Bellcore.
MGR features overlapped, asynchronous windows and an applications interface that was both machine and network independent.
Each MGR window has support for both character terminal operations as well as basic graphics operations. It is controlled by mousing pop-up menus, by keyboard interaction, and by escape sequences written on pseudo-terminals by client software.
The system was presented at the USENIX Fourth Computer Graphics Workshop in 1987 as "MGR - a Window System for UNIX".[1] The entire MGR source code was posted to the comp.sources.unix Usenet newsgroup, Volume 17, Issue 1, in January 1989.[2]
Internally, MGR was pronounced as munger referring to mung, although the users pronounced each letter.
MGR provided each client window with:
All these features worked equally well if the client program was executing on the same computer as the MGR server or if the client was executed on a remote computer. The type of connection was insignificant. You could use telnet over TCP/IP or a modem dial-up connection equally well, for instance. Bitmaps, however, presented issues on lower bandwidth connections. To use a bitmap, it had to be downloaded to the window manager over the communications channel. Bitmap heavy applications would often download bitmaps to be used at application start, which could make an application look like it was hung. Since applications used input and output streams, there could be problems when unexpected input arrived, say from line noise or from a system message.
External programs such as Stephen Uhler's own MTX[3] and Howard Chu's rmgr made it possible to multiplex several windows over a single connection to a remote host, even using a normal modem dial-up connection.
A later feature, $HOME MOVIE,[4] made it possible to record user interaction for later display.
MGR ran on at least these systems: SunOS on Sun workstations (the original development platform),[5] Apple Macintosh, Unix System V on the AT&T UNIX PC, Ultrix on the DECstation 3100, MiNT on the Atari ST, OS-9, Coherent, Linux, FreeBSD and VSTa.
The initial Macintosh port was done on a Macintosh Plus computer using the Lightspeed C compiler. It was a hybrid port in that many of the low-level operations were passed on to QuickDraw instead of using the internal bitmap code. The application did not conform to the Macintosh user interface guidelines as it took over the entire screen. The initial version used either available serial port as the communications channel. A later update of the port could use either Ethernet or serial communications.