leopoldek has quit [Remote host closed the connection]
pinpoxIRC has quit [Quit: Ping timeout (120 seconds)]
pinpoxIRC has joined #river
Den4ikRus has joined #river
sm222 has joined #river
sm222 has quit [Ping timeout: 264 seconds]
MrBrownFR has joined #river
mtm has quit [Ping timeout: 246 seconds]
<MrBrownFR>
Hello ! I've been watching the river repo for a bit now, and it says a major refactoring is coming for 0.4, does anyone has an idea for a potential release date ? The layout generator stuff is really cool but I'm afraid if I invest my time into writing one now it will become useless for the next release...
mtm has joined #river
tiosgz has joined #river
<tiosgz>
MrBrownFR: i wouldn't expect it to land any sooner than a year from now or later, especially since this is a major change
<tiosgz>
the plan so far is to make a compatibility layer so that layout generators have time to migrate to full window managers (dunno if that will be temporary or permanent)
<MrBrownFR>
tiosgz thank you ! I'll see what I can achieve with the current API then :)
<tiosgz>
good luck!
<MrBrownFR>
thanks !
Palanix has quit [Ping timeout: 245 seconds]
Palanix has joined #river
MrBrownFR has left #river [#river]
tiosgz has quit [Quit: nyaa~]
ramblurr has joined #river
<ramblurr>
hi folks o/
<ramblurr>
i've been on an wayland wm/compositor finding mission and ran across river..
<ramblurr>
I was wondering what's the state of the idea that isaac describes in "Balancing Flexibility and Complexity in River" to move more windo management features into a separate process.. how's that going?
<ifreund>
the protocol design seems pretty good so far, lots of implementation work still to be done though
<ramblurr>
wow, great! i find the idea of a high-level window management wayland protocol very interesting!
leopoldek has joined #river
<ifreund>
Yeah, I think it has a lot of potential
<ramblurr>
i'd like to explore some window management / desktop environment ideas in clojure and was looking for a wayland compositor that is at a high enough level. river jumped out because of its out of process layout generator
<ramblurr>
smithay and louvre are wlroots alternatives but they are both still rather low level for what i wanted to play with
<ifreund>
cool, yeah I'd say have a look at the draft protocol and see what you think
<ramblurr>
fwiw i've managed to port the example layout.c in contrib/ to clojure with jdk 22's new FFI features
<ifreund>
if you notice anything that seems to limiting for your vision feel free to leave a comment on the PR
<ifreund>
cool, I know that leon-p is working on a higher level C ABI library to make the client-side implementation of WMs nicer
<ifreund>
and in particular easier to use from guile scheme, though I believe it's intended to be general purpose
<ramblurr>
is pr #1100 at a state where clients could be written against it?
<ifreund>
the server side implementation isn't complete yet but I'm pretty confident the general structure of the protocol won't change drastically
<ifreund>
so clients can be written in theory but not really tested yet as there is not yet a complete server implementation
<ramblurr>
hmm i'd be interested in seing that library, i suppose it's related to their work on riverguile?
<ifreund>
As I understand it, it is a rewrite with lessons learned from riverguile and targeted at the new draft protocol
<ramblurr>
in clojure the biggest pain point of implementing FFI is that static inline functions defined in headers aren't callable, because they aren't compiled as standalone symbols
<ramblurr>
and it seems most of what wayland-scanner produces is static inline functions :\
<ifreund>
doesn't seem to be actively used/maintained, but gfxstrand very much knows their stuff
<ramblurr>
yea that's one of the first things i came across, unfortunately it uses JNI the older way of doing FFI on the jvm.
<ramblurr>
something like it could (should?) be created for the new way
sewn has quit [Remote host closed the connection]
sewn has joined #river
sewn has quit [Remote host closed the connection]
sewn has joined #river
glenneth^ has joined #river
glenneth has quit [Ping timeout: 255 seconds]
glenneth^ has quit [Changing host]
glenneth has joined #river
uncomfy has joined #river
sm222 has joined #river
<leon-p>
ramblurr: the library I am working on explicitly avoids the user needing ot install callback functions and instead has a blocking next_event() function
<leon-p>
the API is designed with FFIs in mind (at least the ones I know how to use)
<ramblurr>
sounds handy! is it available to play with?
<leon-p>
language bindings can of course expose that in whatever way they see fit, f.e. the guile bindings don't expose that function and instead calls it internally and uses it to raise hooks
<leon-p>
I don't think I have pushed it anywhere yet
<leon-p>
either way, it can't do much without a server implementation
<leon-p>
if it helps, I can descrive how events work though: The function returns a C struct with an enum tag follows by a union.
<leon-p>
Some languages have issues parsing C unions, so instead there is also another function which returns a pointer to that event struct, since pointercasts seems to be easier to do than struct casts
<leon-p>
since all events come through the single next_event() function, it isn't exactly object oriented like wayland, you just get opaque pointers for windows/outputs/etc
<leon-p>
I should probably do an implementation of the current layout protocol with that library, so the basic design can be tested right now
<leon-p>
maybe later
<larstiq>
leon-p: ah, what made you decide on the next-event way?
<leon-p>
I did not want callback functions, the language bindings should decide how to dispatch
<ramblurr>
how would a user of that lib register listeners like river's layout listener"
<leon-p>
that would be behind-the-scenes magic
<ramblurr>
in your lib?
<larstiq>
leon-p: sounds sensible
<leon-p>
you create the library context, init the connection and go into your event-loop calling next_event()
<leon-p>
the library does the rest
<ramblurr>
ah so this is a very river specific lib :)
<leon-p>
probably
<leon-p>
I am not interested in writing a general purpose high-level wayland
<leon-p>
this is specifically for writing a WM with that exact protocol
<leon-p>
other wayland servers can of course choose to implement that very same protocol, in which case it may work with them as well
<leon-p>
ramblurr: if you are enthusiastic about writing a WM, you should focus on what you can do and test right now: f.e. I spend a significant amount of time already writing the code that will draw the desktop shell elements. That can be tested via the layer shell and later ported to proper widgets
<leon-p>
although I am on the fence whether the library should include that or just expose the pixman_image_t
<The_Buhs>
Is there some simple explanation of what's part of window management versus the compositor (once they become separated)? Is the wm: window layout, keybinds, ssd/csd, and the mouse pointer?
<bist>
I'm using archcraft with wayland and river. Could someone point me in the right direction where I can configure the time on the screensave/lock screen? I checked in .config/river/init but found nothing.
<leon-p>
the screenlocker is not part of river but an external program
<leon-p>
you need to find out which one
<leon-p>
the one I am aware of which can display time is swaylock
<andrew`>
I am using river in a virtual machine and am seeing significant lag in cursor movement. Does anyone know if this is expected or if there is a workaround?
Den4ikRus has quit [Ping timeout: 255 seconds]
uncomfy has quit [Remote host closed the connection]