ifreund changed the topic of #river to: river - a dynamic tiling wayland compositor || https://github.com/riverwm/river || channel logs: https://libera.irclog.whitequark.org/river/
waleee has quit [Quit: WeeChat 3.3]
waleee has joined #river
waleee has quit [Ping timeout: 240 seconds]
snakedye has quit [Ping timeout: 240 seconds]
waleee has joined #river
snakedye has joined #river
waleee has quit [Ping timeout: 240 seconds]
waleee has joined #river
waleee has quit [Ping timeout: 268 seconds]
waleee has joined #river
notzmv has quit [Ping timeout: 268 seconds]
snakedye has quit [Ping timeout: 240 seconds]
<Anderson-D> View management protocol is probably what I anticipate the most. River has already become my primary compositor and I'm really loving it.
<Anderson-D> Sway feels so bloated now
<Anderson-D> I would have probably stayed with sway if not the home-brewn config file formats, refusal to adapt new changes due to compat with i3, and confusing layouts
<Anderson-D> In these terms, awesomewm was probably the best wm I've ever used in terms of flexibility & customization, but it has (and will never have) no wayland support. River & config-files-as-scripts is the future :)
snakedye has joined #river
<Anderson-D> tl;dr: keep up the great work guys, river is awesome (no pun intended)
elshize has quit [Ping timeout: 256 seconds]
elshize has joined #river
notzmv has joined #river
snakedye has quit [Ping timeout: 240 seconds]
Guest42 has joined #river
snakedye has joined #river
<snakedye> leon_p: thanks 👍
Guest2 has joined #river
Guest42 has quit [Ping timeout: 256 seconds]
Guest2 has quit [Quit: Client closed]
elshize has quit [Ping timeout: 256 seconds]
elshize has joined #river
snakedye has quit [Ping timeout: 240 seconds]
elshize has quit [Ping timeout: 240 seconds]
elshize has joined #river
notzmv has quit [Ping timeout: 240 seconds]
snakedye has joined #river
<dnkl> I'm having some issues with river's implementation of the foreign toplevel protocol
<dnkl> when an output is disabled, river sends out output_leave() events
<dnkl> but when the same output is re-enabled, no output_enter() events are fired
<dnkl> for reference, Sway doesn't seem to emit _any_ of those events (when an output is disabled/enabled)
<emersion> fwiw, sway seems wrong
<emersion> disabling an output removes the global
<emersion> which is an implicit leave
<dnkl> agreed, Sway's behavior doesn't really make sense. Just thought I'd mention it, in case someone is comparing behavior
<ifreund> dnkl: hmm, this is a nasty issue with how this protocol is designed
<ifreund> river does call the wlroots function to send enter events when an output is re-enabled, but it ends up being a no-op due to a race
<ifreund> it's very unlikely that the client will manage to bind the output global before river calls wlr_foreign_toplevel_handle_v1_output_enter()
<ifreund> not really sure what to do about this tbh
<dnkl> ifreund: ah, that's... annoying
<dnkl> I assume the same race exists at startup, unless the client defers binding the foreign toplevel interface until after all outputs have been bound?
<ifreund> yep that's right
<ifreund> which I've seen pretty much everyone trying to use the protocol hit
<dnkl> yeah, pretty sure yambar had this issue; looking at the code blue, we do defer binding the foreign interface
<dnkl> s/blue/now
<dnkl> sleep() - solves all problems 🙄
<ifreund> dnkl: actually, I'm going to call this a wlroots bug, wlroots solves this for wl_surface_enter() by listening for output bind in the surface code
<ifreund> the foreign toplevel management code should do the same
<ifreund> which would also get rid of the need to defer binding the interface on startup
<dnkl> that would be really nice
<ifreund> adding a comment there that the workaround doesn't work for the case you describe
<emersion> agreed
<dnkl> will do.
<dnkl> I'm guessing I can work around it by recreating the foreign manager every time a new output is created...
<ifreund> dnkl: I mean yeah, but I think it would be easier for you to patch wlroots :P
notzmv has joined #river
<dnkl> sure, but may want an interim solution...
<dnkl> I'll see if I can take a look, but I expect to be mostly offline over the holidays
<ifreund> no pressure of course, I think it should be a pretty straightforward fix though.
<ifreund> If nobody else has gotten to it by the time wlroots 0.16.0 is approaching I'll probably find time to do it myself
<dnkl> sounds like a great getting-into-wlroots-development issue :)
<emersion> it would be a reasonable candidate for a bugfix release