[Haskell-cafe] ANNOUNCE / POST MORTEM: hswm, version ()

Remi Turk rturk at science.uva.nl
Sun Oct 28 18:27:21 EDT 2007


Hi everyone,

HSWM was my attempt at a Haskell Window Manager, mostly written
during the first half of 2006 as a personal research project, and
out of frustration with some not to be named other window
managers. Although I have been running it myself for almost two
years, I never got around to polishing it into something
releasable due to lack of time. [1]
Since, as of today, its number of users is officially back to zero [2],
this seems like a good moment to release version () of HSWM:
The first and last version of my own window manager.

Features are:
- includes a lambda mouse cursor
- multiple desktops
- sticky windows
- about 2300 lines, about half of which is X boilerplate and user
  configuration
- somewhat based on evilwm
- still regularly dies due to unhandled X errors, so a script to
  automatically restart in that case is included
- my first Xlib program ever

The basic idea is an event loop inside an X monad
providing three services to "plugins":
- registering X Event handlers
- registering X Error handlers
- registering/requesting "services", to be used by other
  "plugins" (a global registry of named Dynamics, basically)

Compared to XMonad:
- no tiling
- much less stable
- no extensions
- needs no external libs

So you might want to look at it, but even _I_ don't use it anymore.

HSWM only was its working name, so if anybody ever feels like
writing another window manager and calling it HSWM,
I certainly won't mind.

The BSD-licensed code:

darcs get http://student.science.uva.nl/~rturk/hswm/

`make' compiles, and that's it.

Greetings, Remi

[1] Technical detail: The one feature I really wanted before releasing it,
    but never got around to implementing, is having the WM add a
    frame for each managed window and reparenting the window
    below that frame. This way, focusing windows can go right even
    when the WM dies, among others.

[2] It once had 3 users: Me at home, me at the University of
    Amsterdam and me at Utrecht University.
    Utrecht now runs KDE and the rest xmonad.


More information about the Haskell-Cafe mailing list