Show HN: Xlambda – A window manager extensible in Guile
github.com
github.com
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/
I haven't heard of Rwind! I used Racket mainly, before this, so it's definitely interesting to me. I'll definitely look into that.
Xmonad is one of my favorite projects and Xlambda is a reference to its name :D
I usually use one-app-at-a-time window management, so I'll want to make sure that sort of setup is very comfortable.
Also, wow! Your project of combining PostmarketOS and Racket is amazing!
A reason why I didn't use Racket for Xlambda is because the FFI wasn't as easy to figure out as Guile's was. Otherwise, I would have gone with Racket.
Also, same! Guile (and Scheme, in general) are growing in popularity a lot and it makes me really happy.
This doesn't seem like a user-oriented thing.
It is very "experimental" right now because it's such an early release, but that should change as time goes on.
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).
http://web.mit.edu/nawm/www/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.
A question to finish: what do you think of https://github.com/paperwm/PaperWM?
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.
Can you provide a source on this? I can’t seem to find it with a cursory DDG search.
(I don't know if it's officially deprecated, but here's a related article)