Ye Olde X11 Window Manager
30 Dec 2025
In 1984, my boss informed his team of young programmers (including moi) that he had just installed a copy of 4.2 BSD on a spare VAX 11/780 machine in our hitherto all-VMS shop, thus starting me on my 40+ year adventure in UNIX programming. In 1987, he brought in more cool UNIX software, this time a copy of version 11 release 1 (a.k.a. X11R1) of the X Window System, which we installed on all of our Sun 2 and Sun 3 desktop workstations. [1]
After spending quite a bit of time writing regular X11 clients using Xlib, I decided it would be fun to try my hand at writing my own X11 window manager. How hard could it be? I stupidly asked myself. Hard, and confusing, especially after reading (and re-reading) the infamous Inter-Client Communication Conventions Manual. [2]
I stared at the source code for uwm and twm and then hacked a bunch of prototypes until I settled on a simple design that (1) surrounded each client window with a simple border, (2) drew a set of window manager text buttons at the top of the (single) screen, and (3) rendered zero or more text buttons representing the currently “minimized” client windows at the bottom of the screen. It wasn't much, but it worked (sort of).
I named the thing rwm (“Raoul's window manager”) and started on a paper entitled “Design and Implementation of the RWM Window Manager”. Unfortunately, I lost track of both my C source code and the troff source to my unfinished paper, so all I have now is a hardcopy folder's worth of (scanned) memories.
Notes
Copyright © 2025 by Paul Eissen. Powered by w3.css