You can get the original TinyWM source tree at: http://incise.org/tinywm.html I was excited to do "something" with a window manager, just as a matter of exercise. I like the minimalist nature of TinyWM, but there are maybe two things I'd like to add: 1. Root-window click actions. I added left and middle click to launch two programs of your choice (at compile time,) and right-click at coords 0,0 to exit the wm. Since the wm runs as the user executing it, not priviledged I didn't feel too terrible about using a system() call. Those with more knowledge than me might have a thing or two to say about that. 2. A way to either: a) move windows down/under; or, b) re- size windows smaller (almost like a roll-up); or, c) minimize to icon. I opted for a cheap trick to solve this for now. By default with TinyWM, the user can mod1+F1 to raise a window; I added mod1+F2 to lower a window, mod1+F3 to "shrink" and lower a window- that is, set it immediately to 150x20 px in size and drop it to the bottom, thus getting it out of the way- and mod1+F4 to close/destroy a window. You can also mod1+F3 on a "shrunken" window to restore it to a workable size. I had to add a few other commands on one system, because my windows were being obscured by some unknown, unseen issue. This only happened on my ubuntu box- even after attempting to make sure that nothing else was using the X server- and not on my barebones Debian install. The commands just ensure that a window gets the focus after being raised or moved. You can just drop my .c file into the normal source tree and run make. You might have to modify the define at the top that tells it which binary to run.