Acdwm, Part 1

a tinywm port in scheme

I've decided to write my own X window manager, despite the fact that X is dying and all that. I'm doing it for fun but also to get more better at scheme (CHICKEN) and C interop, I think... Anyway, I'm going to write about my experiences here. You can view the current state of the project at its git repository. <div>

I thought I should start small and simple. I got lucky that CHICKEN has an xlib egg, but not so lucky that it is pretty much a thin wrapper around Xlib.h and nothing more. Still, the simplest X window manager I know of is tinywm, so that's what I started with.

Because of my inexperience with C (and honestly, Scheme too), plus the bare-bones-ness of CHICKEN's xlib, even translating the repo pretty much directly from tinywm.c was challenging. I started prematurely generalizing the scheme code to be more schemely before realizing, "I just need something that works first." So the code at its current point is not very "schemely," as one friend put it ... most of my work at this point will not be adding features but schemifying the code.

problems!

I ran into a few problems by jamming the very imperative C original into the scheme language:

You've just read an exciting episode of my journey into writing an X window manager in CHICKEN scheme. Feel free to read the code (it's linked above) and tell me how awful it is by sending me an email!