Rubywm: An X11 window manager in pure Ruby
github.com
github.com
https://news.ycombinator.com/item?id=39087609
Note that the warnings still apply. I have used it continuously since, and there are a few bugs here and there but it mostly works for my use which is very basic, and does e.g. not involve more than a single monitor.
https://monroeclinton.com/build-your-own-window-manager/
By the way, it is much easier to develop and test these things using VNC, so running an X server in a separate window.
I recently also became aware of a tiling window manager written in Janet which I'm sure will be a hit with Emacs and lisp fans![1]
[1]: https://agentkilo.itch.io/jwno/devlog/871672/scroll-jwno-scr...
If you like it, note the X binding is also pure Ruby. Though incomplete it covers most of the important stuff, including enough of XRender to let my (pure Ruby, but translated from a C project) font renderer use it (not used by the wm, but used by my terminal; I really need to clean up the terminal enough to be comfortable pushing the current version of to Github)
Have you used it with multiple monitors by chance?
Thanks for sharing!
You're spoilt for choice really...
But isn’t sway a drop in replacement for i3? Or does it make life easier with some additional functionality or features?
Thanks for the link in any case, I just gotta spend some time one of these weekends getting whatever I end up using working smoothly
XMonad works fine with multiple monitors. Each monitor displays one of the many virtual desktops. The normal keys for desktops and for windows work pretty intuitively with multiple monitors.
https://github.com/conformal/spectrwm
Plus I find it handles multiple monitors well.
It is the wm I use daily, but I also know where to look if it crashes or otherwise misbehaves.
It definitely has bugs - there's something Chrome does when the file open dialog window opens that makes it sometimes fail to refresh unless I resize it that I haven't bothered tracking down, for example.
I had basically two motivations to write my own: 1) because I could, 2) because bspwm - at least at the time had a couple of quirks I disliked: a) if I ran a file manager, it'd open on all the desktops, b) it took a hack that wasn't very satisfying to get one desktop to be floating while the others were tiled. Those were minor, and so if I hadn't already been working on extending X11 bindings for Ruby for my other Ruby projects I probably would've stayed on bspwm, but since my usage was also very simple, I figured I'd see how long I'd last, and I got close enough within a few days to decide it was viable to keep using my own instead of trying to fix bspwm.
My tolerance level for weird quirks that I'm in control of is very high, though. It feels very different when its your own bugs :)
Likewise for me and the idea that I could hack at it in Ruby is making trying it out very tempting. If I test it on multiple monitors I’ll let ya know if it works and if it doesn’t I might try to find time on the weekends to work it out and submit a patch.
I’m basically committed to not using Wayland so it wouldn’t hurt me to learn more about how X11 actually works lol.
Thanks for your thorough and thoughtful reply!