{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreie3pgblqdpdcpw6yx3osz4g3bkgvrqkn2cs3gbhzi4yc6p3cwio5y",
"uri": "at://did:plc:pi6woz4d47bkuws673w2il2r/app.bsky.feed.post/3mjez5to44cx2"
},
"path": "/t/ann-rivulet-window-manager/13921#post_9",
"publishedAt": "2026-04-13T12:40:41.000Z",
"site": "https://discourse.haskell.org",
"tags": [
"directly implementing a compositor",
"basing it on river"
],
"textContent": "Oh huh, there’s dozens of us!\n\nI’ve made some progress on directly implementing a compositor and this week pivoted to basing it on river rather than a whole compositor. You’ve got a lot further than I have.\n\nOne of the insights I’ve had is that the callback based mechanism generated by wayland-scanner does not feel very Haskell-y and forces IO everywhere. I’ve instead been building an event stream that feels more natural, and will allow unit testing the pure bits of the code.\n\nLet me know if you’d like to collaborate or if I can help out with something.",
"title": "[ANN] Rivulet Window Manager"
}