CoW — a stacking window manager for Wayland

88 points by hawski 12 hours ago on lobsters | 13 comments

ifreund | 8 hours ago

CoW is so cool! This is exactly the kind of thing I was hoping to see people build on top of river :)

(I am the river developer and will happily answer any river-related questions y'all might have)

[OP] hawski | 8 hours ago

I dabbled with starting a PoC compositor (codename Waxland) that would use X11 as an IPC between the compositor and a WM. This in theory should allow to run old unmodified X11 WM binaries to manage Wayland windows. I imagine with drawing it would require either implementing some X11 drawing primitives or being creative with XWayland.

Does it sound like a something that is doable with river?

ifreund | 7 hours ago

I'm not sure if 100% compatibility with all X11 window managers would be possible, I suspect that some X11 features which have no direct Wayland equivalent would cause issues.

Also, you would lose out on any chance at frame perfection since X11 window management doesn't double-buffer state and doesn't align with the river window management protocol's manage/render sequence state machine.

It does seem like a fun, if a bit crazy, idea to try!

ThomasAdam | 6 hours ago

Hi all,

Thanks for the comments, really appreciate it.

Cow is just a bit of fun for me, due to the risk of X11’s longevity being in question for a while, and I did not want to be without an environment under Wayland if I’m forced to use it, which was unfamiliar to me.

I’d previously written about this here: https://github.com/fvwmorg/fvwm3/discussions/1258

River is a hugely important project — and all of CoW owes its existence to Isaac for producing it. Thank you for this! Hopefully it will spawn other hobby WMs as well — the list on the River’s wiki (https://codeberg.org/river/wiki/src/branch/main/pages/wm-list.md) is already growing quite a bit.

The upfront cost of trying to create something like CoW with MWM borders is that SSD decorations have to be implemented from scratch — that’s the bulk of the work I’ve put in to this, to make that happen. Including vector button drawing routines.

A lot of people ask me if they can have something like FvwmButtons where applications are swallowed (reparented, in X parlance) — which would be great for creating dynamic panels. But Wayland does not support this — and this is perhaps of the cornerstones in FVWM’s history, the ability for people to create custom panels using external applications. Although CoW does have cowbuttons(1), it can only take this idea so far.

Although I’m “‘marketing” CoW as a FVWM/MWM replacement — it doesn’t have to look like that t all. If anything, it’s more of a framework for creating an environment for managing windows — both physically and cosmetically. So if you can look past the blocky-nature of the screenshots, you might find it useful. It also has the beginning of a DSL which is making scripting useful, but hopefully less ugly than FVWM’s Functions.

Any questions on CoW, come see us in #cow-wayland on irc.libera.chat.

Thanks everyone!

Thomas

CoW was started by Thomas Adam, long-time lead developer of Fvwm. It's intended as the Wayland-successor, because porting Fvwm from X isn't feasible.

ploum | 8 hours ago

That’s awesome! FVWM was my first WM ever and I believe that I still have a screenshot of my config on the official website. It was awesome for a beginner that wanted to custom everything.

Small laptop screens have sent me into the tiling tarpit (sway) but I still have a lot of love for fvwm.

bwbuhse | 8 hours ago

Oh wow, I had no clue he was actually the lead dev for Fvwm, neat.

ThomasAdam | 5 hours ago

I'm afraid so... ;)

I have been following his occasional toots on this project with interest https://bsd.network/@thomasadam

I love the direction River is going, so many cool window manager projects have popped up, including this one. :3

gunduzc | 7 hours ago

Can't wait to read the C code. Always fun to see new projects in C.

Thank goodness! Modern tiling wms like Sway/i3/&c drive me nuts, so I'm happy to have alternatives on Wayland.

I’ve been nerdsniped by River when I found out multiple window manager components for it written in Janet (in a phase of my life where I am in love with the language)

But I don’t know anyone who’s using it. I like how polished Niri is, has anyone experience with river?