David,
I agree with your assessment that CLX is abandon-ware, but it is even worse than that. It has code from the 70's (with no version control history beyond the early 2000's IIRC). It has a lot of code written with performance considerations that are no longer needed. Case in point: def-clx-class. Personally I've given up on CLX at this point. I've been the past month I've been working on XCB protocol implementation, that is what I intend to focus the next year. I hope to have something to show in 2-3 months. The Guile[0] and Emacs Lisp[1] xcb bindings are a good reference.
> It would also be great if we could finish the "make everything a package" approach to organizing a modern Lisp project. This would allow us to carve out bits of the StumpWM ecosystem for others to use.
For the mid-term, 5ys, this is a direction would like to follow. factoring out into systems non-ui code which could be reused elsewhere. For ease of distribution we could keep the systems in the same repo. For example a completion backend so we can improve our completing-read and implement a reverse search history in our prompts. (I'm thinking something along the lines of helm-sources). Incorporate lineedit[2] or something similar to our input prompt. Having a C-R. And Ultimately having StumpWM be an 'Emacs for the Desktop', or at least blur the lines. In that line the new feature of interactive-keymaps by Caio Oliveira are a great addition! Maybe work on an help system along the lines of the Documentation Examiner of old[3].
Regarding Wayland, I'm sure Linux will move towards it, but will *BSDs? From what I remember when reading the SPEC, the Wayland protocol is centered around shared-memory-pools, which makes our network based approach, impossible. I understand this is due to OpenGL and that even today the way OpenGL drivers work is by writing directly to the memory instead of having the Server draw for them. Bu for regular desktop usage, I rather have no FFI code. Maybe a solution that could work would be an ECL based compositor and a CL RPC to control it?