Rwind is a more recent related project, in Racket (a big Scheme variant), and probably needs a developer to build higher-level features: https://pkgs.racket-lang.org/package/rwind
Although it's in Haskell rather than a Scheme, Xmonad has been solid as a daily driver, and presumably is worth looking at for a relatively modern WM implementation (compared to trying to figure out the whats and whys of how Fvwm works): https://en.wikipedia.org/wiki/Xmonad
If you make a Guile-based WM that does a good job of smartphone-like one-app-displayed-at-a-time window management (like the old Matchbox WM did), with status bar and popup keyboard, then I would like to use it on GNU/Linux handhelds, and might be tempted to switch the entire project from Racket to Guile: https://www.neilvandyke.org/postmarketos/
If you can do Xlambda with Guile, that's probably preferable to doing it with Racket, for purposes such as getting it into GNU/Linux distros. This is exactly one of the kinds of purposes for which Guile was intended. I'm also very happy to see the recent energy put into Guile, including your project.
FYI: Footwm is my little window manager written in Chez scheme. It draws one window at a time and supports EWMH status bars like tint2. https://github.com/akce/footwm-chez
I'll record a demo this week!
I wouldn't recommend trying it as a standalone window manager right now. Maybe by V3 it should be usable.
I don't know much about EXWM, but I would guess the fact it uses Guile affords different powers than using Elisp.
Honest question: is there a major difference? I thought they were just dialects of lisp (guile is technically scheme, but isn't scheme just a descendant of lisp?)? I figured they might have slightly different syntax and that's it.
There are differences in how you'd use them. Scheme is very focused on a minimal core and extension through macros and similar constructs, whereas, as far as I know (nb: I don't use emacs) Elisp has a lot of pre-built constructs that are used far more.
Also, Guile being the implementation chosen is not incidental, the GNU project is moving towards Guile as an extension language everywhere (The big example here would be GuixSD).
I love the idea of a wm calculus I hope that it comes to life somehow.
What I can recommend you to look at, not sure it is very on-topic, is related to layouting is cassowary and constraint-based layout systems, autolayout is one of them, along the browser layout engine like css grid and flexbox.
Reproduced below:
I actually have a pretty good reason for doing so, libwm already had most of the functionality I needed (I had used wmutils in the past, and that’s where I got most of my ideas for this project. (You can see the end result of me modifying the basic wmutils scripts here: https://github.com/kori/wm), and it was small enough that extending it with Guile would be the fastest way to get a working prototype, and it would help me learn about how to use its FFI, which is actually very important, too, because I plan to integrate Guile with other software I use!
I'll definitely look into all kinds of layouts. I think it's important to be as flexible as possible, when it comes to a window manager.
PaperWM seems nice, I like the idea of a scrollable window manager, I think it's a great idea for touchscreens, not so much for the standard keyboard+mouse combo, though.
The moment I come across a well-behaved Wayland version of Xmonad, I'll switch personal systems from Xmonad/Xorg and work systems from Unity/default Ubuntu (Wayland-based) to it.
They are very, very powerful tools (Lisp/Scheme/Haskell based WMs).
That’s very interesting. I wonder if the community will pick up the slack when Red Hat stops supporting X, or if they’ll all move in favor of Wayland. I would expect a split between the two at first, with a slow transition to mostly Wayland as it gets optimized to run well on older hardware.
Scwm is an old but interesting X window manager using Scheme: https://en.wikipedia.org/wiki/Scwm
Rwind is a more recent related project, in Racket (a big Scheme variant), and probably needs a developer to build higher-level features: https://pkgs.racket-lang.org/package/rwind
Although it's in Haskell rather than a Scheme, Xmonad has been solid as a daily driver, and presumably is worth looking at for a relatively modern WM implementation (compared to trying to figure out the whats and whys of how Fvwm works): https://en.wikipedia.org/wiki/Xmonad
Also the popular tiling window manager i3, and how its Wayland drop-in, Sway, work: https://en.wikipedia.org/wiki/I3_(window_manager)
If you make a Guile-based WM that does a good job of smartphone-like one-app-displayed-at-a-time window management (like the old Matchbox WM did), with status bar and popup keyboard, then I would like to use it on GNU/Linux handhelds, and might be tempted to switch the entire project from Racket to Guile: https://www.neilvandyke.org/postmarketos/