<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