ifreund changed the topic of #river to: river - a dynamic tiling wayland compositor || https://github.com/ifreund/river || channel logs: https://libera.irclog.whitequark.org/river/
waleee-cl has quit [Ping timeout: 252 seconds]
waleee-cl has joined #river
waleee-cl has quit [Ping timeout: 272 seconds]
waleee-cl has joined #river
waleee-cl has quit [Ping timeout: 268 seconds]
<leon-p> ifreund: submitted a PR for directional output focusing
<leon-p> I think that makes sense for more complex output layouts
<ifreund> leon-p: I'll take a look at using zig's gpa for debug builds, it wouldn't catch us forgetting to destroy the wlroots stuff that needs it though
<ifreund> definitely intend to make sure valgrind comes up clean before 0.1.0
<ifreund> leon-p: RE output stuff, yeah that probably makes sense though I won't be able to test properly until I'm back in germany (same goes for your other open PR)
<leon-p> damn, according to valgrind we are leaking at least 10k D:
<ifreund> elshize: If you're not aware, there is an in progress attempt to rewrite wlroots and parts of libwayland in rust. It's been in development for over 4 years but is nowhere near feature parity with wlroots
<ifreund> It's also full of non-zero-cost abstractions, which I find ironic given rust's motto
<leon-p> huh, now I wonder what they use in redoxOS for client-display-server communication
<ifreund> they have their own thing
<ifreund> "orbital" iirc
<leon-p> I was wondering how they handle the over-the-wire part
<ifreund> wayland-rs or redox?
<ifreund> anyhow, I'm off to eat dinner, be back later
<leon-p> redox. I am curious how they designed their protocol considering the ruty restrictions they work with
<leon-p> *rusty
<leon-p> have fun
<leon-p> Seems like they just have some sort of named pipe for the display over which they send commands as simple strings.
<leon-p> the interesting bit is that there does not seem to be some sort of per-client display object representing the connection
<leon-p> maybe their display server tracks the clients by PID or something
novakane has joined #river
yyp has joined #river
leon-p has quit [Quit: leaving]
leon-p has joined #river
snakedye has joined #river
<snakedye> ifreund: I assume you mean smithay and wayland-rs when you talk about rewritting libwayland and wlroots. Isn't it just a rust implementation of the protocol?
<yyp> snakedye: yes, it's just an implementation of the protocol (or optionally bindings to libwayland)
<leon-p> I am thinking of also implementing spacial focusing for views. Might be nice for the crazier layout generators I have seen in screenshots on reddit
<snakedye> like left, right, up and down?
<leon-p> yes. I initially was vocally against it, but I have changed my stance on this
<snakedye> what made you change your mind?
<leon-p> using river on a few more devices and experimenting with layouts a bit.
<leon-p> Don't get me wrong, layouts are still lists. But focusing in spacial directions should be possible
<snakedye> are directions something river would have to figure out from the layout or is the layout generator involved in this?
<leon-p> the layout generator is not involved. river would just loop over the list, get the coords and dims and check whichs views center is closest to the center of the focused view in a given direction
<snakedye> what about when windows are stacked on top of each others?
<leon-p> haven't gotten that far yet :P
<snakedye> understandable, I'm looking forward to it :)
<snakedye> btw did you write or intend to write a blog on the layout protocol
<leon-p> yes but I got sidetracked writing a static site generator for my blog. until that one is done, writing articles is on hold
<leon-p> but I have the draft already on my other laptop
<snakedye> Nice!
<snakedye> What are you using for your site? I've seen a few people use Hugo recently
<leon-p> I am writing my own one in zig
<novakane> yeah your rss feed doesn't clutter my feed list :P
<leon-p> ^ there it is
<snakedye> :V
<leon-p> as you might have already guessed, I easiely fall victim to the NIHS :D
<snakedye> there is no such thing as too much static site generators
yyp has quit [Ping timeout: 252 seconds]
yyp has joined #river
waleee-cl has joined #river
<elshize> FYI, seems like the AUR package lost its maintainer; thought you'd like to know since you link it from your readme.
snakedye has quit [Ping timeout: 244 seconds]
<novakane> elshize: it is automatically linked in the readme, ifreund doesn't handle any packages or packages maintening
<elshize> novakane: yeah, I know, just letting you know because the link's there, and if the package gets abandoned, you might wanna remove it; (hopefully someone pick it up though)
<leon-p> elshize: we can't remove it. The badge it (automatically?) generated by repology. We just link it.
<leon-p> also linking the package increases the chance someone adopts it :)
<novakane> and maintening packages will be easier once river has a stable release
<elshize> leon-p: wasn't aware it worked this way
<elshize> makes sense.
<elshize> novakane: are you close to stable?
<novakane> river 0.1.0 should be close yeah, no ETA as far as I know but I think ifreund's todo list before the release is almost empty
<elshize> novakane: cool, good to hear
priner[m] has quit [Read error: Connection reset by peer]
sjtio has quit [Read error: Connection reset by peer]
sjtio has joined #river
priner[m] has joined #river
<leon-p> just cleaned up my layout generator, if anyone is interested: https://git.sr.ht/~leon_plickat/stacktile
<leon-p> it features a main area with different sublayouts, a stack that keeps windows reasoably sized by just stacking them and "real" gaps instead of just padding around views.
<novakane> that's remind me, that's I recently push my very slightly modified version of rivertile too https://git.sr.ht/~novakane/rivercarro
<novakane> leon-p: so what's real gaps? what's the differences?
<leon-p> novakane: rivertile just shrinks the view in all directions for the padding. So it would be impossible to have only padding between views with no outer padding.
<novakane> leon-p: oh yeah that's great I need to look how you did that then
<leon-p> novakane: btw, added your layout to rivers wiki
<novakane> leon-p: oh cool thanks
<novakane> leon-p: I tried your layout out of curiosity, and indeed gaps are really great
<novakane> not sure where you handle this in the source code though
<leon-p> novakane: here is the rough theory. Imagine you want to divide a length a into two equal lengths b with a padding c between them -> b = 0.5 * (a - c). a_1 is placed at 0, a_2 at a+c
snakedye has joined #river
elshize has quit [Ping timeout: 272 seconds]
<leon-p> is it just me or is spawn-tagmask a bit useless? It would be useful to exclude tags, but it can't do that because it and's them...
<novakane> leon-p: allright I see where you handle it now, thanks, maybe I'll try to add it to my layout
yyp has quit [Remote host closed the connection]
<snakedye> e nice thing with padding is that it's independant from your layout.t.
<snakedye> it isn't as neat as gaps but I don't think there's really an use case for inner gaps without outer gaps
<leon-p> snakedye: I find it nice on small screens, where I don't want to waste space but like windows to be divided by more than a small border
<leon-p> (writing this from an X200 which is tiny)
<novakane> exactly, with a small screen I just want inner gaps, especially now that I don't have any bars, I want windows that take the whole screen
<novakane> but like leon-p said, gaps are nicer than border to divide windows
<leon-p> ok, spawn-tagmask is not useless, I just failed to interpret the description correctly
<snakedye> if space is really an issue I would not use gaps at all but I can see your perspective
snakedye has quit [Quit: ]
<leon-p> the gaps are to make windows more distinct. I find that really helpful when all windows are terminals with the same colour
<novakane> yeah space is important but a little gap is a good compromise between wasting space and usability
<leon-p> just put the explanation to create a scratchpad into the wiki. It was a bit hard to find previously
<novakane> nice! I tried one time but was not satisfied and give up
<leon-p> it is actually pretty easy
<leon-p> and very elegant
snakedye has joined #river
<snakedye> My approach to the scratchpad was just too assign a random tag to a key
<leon-p> that's exactly how to do it.
novakane has quit [Quit: WeeChat 3.2]
novakane has joined #river
<novakane> leon-p: works great, nice!
<leon-p> I wonder what other knowledge snippets are somewhere in issues / PRs that should go into the wiki
<novakane> hmm don't know, but yeah it always cool when there is a great wiki with some nice tips
<snakedye> If you have multiple monitors, you can use a for loop with focus-output next to apply a configuration on them.
<leon-p> instead of adding that to the wiki, I'd rather implement a way to set default values for output-specific configs
<leon-p> wait, are there actually still any output specific configs left? I only see layout, but that has a default. attach-mode has recently been made global by novakane
<novakane> I don't think so
<snakedye> Yeah only layout
<leon-p> probably makes sense if you want a different layout per output
<novakane> I guess so, as long as there is a default
<novakane> leon-p: btw, I wasn't home these last days, but testing thz zsh completion I saw you really improve the output of inputs commands
<novakane> looking really nice now
<novakane> nice job
<leon-p> yeah I changed list-inputs to be more machine parseable
<leon-p> thanks
<novakane> look way more user friendly, great for river 0.1.0
novakane has quit [Quit: WeeChat 3.2]
novakane has joined #river
<ifreund> looks like a wlroots release is imminent, will probably relase river 0.1.0 right after that
<ifreund> very cool to see all the cool stuff y'all are working on by the way :)
yyp has joined #river
<leon-p> added a wiki page to explain tags
<leon-p> I'll write another one for layouts soon
<ifreund> sweet
elshize has joined #river
elshize has quit [Quit: WeeChat 3.2]
elshize has joined #river
<elshize> has anyone experience certain apps taking a long time to start under river? both waybar and pavucontrol take about 10-15 seconds to open
<ifreund> elshize: I've seen that rarely when running multiple wayland compositors in parallel on separate ttys
<ifreund> pretty sure it's a gtk bug
<novakane> a wlroots release with the new xdg_activation protocol? Could be cool to have urgent windows
<ifreund> novakane: yeah, definitely want to implement that eventually. Not going to block 0.1.0 on it though
<leon-p> is the activation thing already in wlroots?
<leon-p> from what I've seen the protocol is fairly simple, wlroots probably does all of it. I can imagine all we'd have to do to support it is a single activation request
<novakane> ifreund: nice, fair enough it's not a priority
<ifreund> leon-p: we'd probably want to expose urgency over river-status
<leon-p> ifreund: I'd rather have some sort of add-on protocol for xdg-foreign-toplevel, tbh
<leon-p> for urgency that it
<leon-p> s/it/is/
<novakane> I have already write the wlr_xdg_activation_v1.h bind though :P
<elshize> ifreund: thanks. I wasn't aware waybar was gtk; buty yeah, pavucontrol-qt opens immediately
<ifreund> leon-p: maybe that would be better, I haven't looked at this stuff in detail yet
<leon-p> maybe some sort of river-toplevel-status protocol, that extends xdg-foreign-toplevel by river specific states, like float vs tiled, tags, etc
<leon-p> should be fairly simple to implement
<ifreund> would that then replace river-status?
<leon-p> re: activation; I think we should focus the view if it is already on screen. The xdg foreign activation request should be handled the same way
<leon-p> ifreund: at least some of it
<leon-p> or actually all of
<leon-p> we can have three different protocols: river-toplevel, river-output and river-seat
<leon-p> or get rid of seat status, not sure if that info is actually important
<leon-p> then we should make sure the done event of the xdg_toplevel / wl_output is send for consistency. The current river-status does not do this
<leon-p> ifreund: created a draft PR to explore river-toplevel-v1
<novakane> leon-p: damn you didn't waste any time
<leon-p> novakane: am at my mothers place for a few days and forgot to take a book and this laptop does not have hardware accelerated video playback, so I don't really have anything else to do :D
<novakane> leon-p: so in 3 days we'll be at river 0.5.0 then :P
<leon-p> nah, I'll be home tomorrow night :D
<novakane> ah too bad, well only river 0.3.0 :P
elshize has quit [Quit: WeeChat 3.2]
<ifreund> we've got a next-wlroots branch for zig-wlroots and river now
<ifreund> is there some compositor agnostic cli tool implementing wlr-output-power-management?
<ifreund> someone sent me an email asking what the river equivalent to sway's dpms command is
<leon-p> not yet
<leon-p> or maybe wlrandr can do it?
<ifreund> pretty sure that only does wlr-output-management
<leon-p> give me 10min and there is a client
<ifreund> heh :D
<ifreund> maybe it would make more sense to add --dpms-on/--dpms-off to wlr-randr though since it's already packaged everywhere?
<ifreund> cc emersion ^
<novakane> 8min best we can do sorry :P
<leon-p> yeah that would make more sense
<emersion> maybe there's a wlroots example?
<ifreund> there is indeed, but it's not packaged anywhere
elshize has joined #river
<emersion> i don't see dpms stuff in xrandr
<emersion> how do they manage this stuff?
<ifreund> xset maybe?
<leon-p> I faintly remember setting it with xset once uppon a time
<emersion> i don't really like it being part of the wlr-randr binary because it's not part of wlr-output-management's atomic updates
<emersion> maybe it can be a new binary in wlr-randr
<emersion> 's repo
<emersion> and with a better name/interface than xset, because that's just confusing :P
<leon-p> I am currently writing a client for it
<emersion> well, feel free to PR if you'd like
yyp has quit [Remote host closed the connection]
<emersion> btw "dpms" is a legacy name
novakane has quit [Quit: WeeChat 3.2]
<leon-p> ifreund emersion ^
<leon-p> took me slightly longer than 10min, got distracted
<ifreund> leon-p: nice, sent the person who emailed me a link
leon-p has quit [Quit: leaving]
elshize has quit [Quit: WeeChat 3.2]