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/
elshize has quit [Ping timeout: 256 seconds]
Guest63 has joined #river
Guest63 has quit [Client Quit]
notzmv has joined #river
waleee has quit [Ping timeout: 268 seconds]
The_Buhs5 has joined #river
The_Buhs has quit [Ping timeout: 264 seconds]
The_Buhs5 is now known as The_Buhs
eShaev9z_ has joined #river
eShaev9z has quit [Ping timeout: 260 seconds]
leopoldek has quit [Remote host closed the connection]
Guest52 has joined #river
Guest52 has quit [Client Quit]
traidare has joined #river
Guest78K has joined #river
Guest78K has quit [Client Quit]
ninewise has quit [Remote host closed the connection]
ninewise has joined #river
dagle is now known as EmotionalDamage
EmotionalDamage is now known as dagle
itshog has joined #river
<itshog> Hello, I'm currently trying to build river with a local installation of wlroots following the instructions in this issue
<itshog> But it doesn't work
<itshog> It seems like `zig build` can't find wlroots
<ifreund> itshog: what does pkg-config -l wlroots say?
itshog has quit [Ping timeout: 255 seconds]
peelz has quit [Read error: Connection reset by peer]
peelz has joined #river
peelz has quit [Changing host]
peelz has joined #river
itshog has joined #river
<itshog> ifreund: The -l flag is not recognized
<itshog> But running `pkg-config --libs wlroots` gives `-L/usr/local/lib -lwlroots`
itshog has quit [Quit: WeeChat 4.2.1]
<ifreund> and is your wlroots installed there?
<ifreund> if so everything should work fine
itshog has joined #river
<itshog> No, it's in a test directory at .local/tmp/usr/local/lib
<ifreund> well there's your problem
<ifreund> you need to point pkg-config to the wlroots.pc file for your local install
<ifreund> the pkg-config man page should tell you how to do so
itshog has quit [Quit: WeeChat 4.2.1]
IchikaZou has joined #river
IchikaZou has quit [Remote host closed the connection]
traidare has quit [Ping timeout: 272 seconds]
elshize has joined #river
leopoldek has joined #river
lordmzte has joined #river
<lordmzte> I'm having a very strange issue: sometimes when an SDL2 window in an application I wrote opens, river crashes. Unfortunately the log (will send a link in a bit) isn't very helpful, as there are no debug symbols to generate a stack trace with. I use the most recent version of river, built with the river-git AUR package. When I build manually however, I cannot reproduce this (neither in Debug nor
<lordmzte> ReleaseFast build modes).
<lordmzte> https://paste.rs/RvpPm (a lot of this is output from child processes spawned by init)
waleee has joined #river
Guiltyfart has joined #river
<ifreund> lordmzte: can you get a stack trase from a coredump?
<ifreund> (coredumpctl gdb on arch)
<Guiltyfart> How do I get wlroots 17.1 ? I am on a stable distro  so I had to build wlroots from source but, but after building current master branch from source, zig build complains that I have wlroots version 17.0 installed and not 17.1
<ifreund> Guiltyfart: river is not compatible with wlroots master, you need to check out the 0.17.1 tag in the wlroots git repo
<ifreund> or use an 0.17.1 tarball from the wlroots releases page
<ifreund> lordmzte: also, from a quick glance the AUR PKGBUILD uses ReleaseSafe not ReleaseFast, have you tried that outside of the PKGBUILD?
<Guiltyfart> thanks for pointing that out, my bad for not scrolling down the listed branches pop up
<ifreund> lordmzte: actually, I think your crash is https://github.com/riverwm/river/issues/963
<ifreund> the debug log indicates that wlroots hits the broken codepath... should be fixed by wlroots 0.17.2 when it's out
<ifreund> (though it would be quite useful to confirm that https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4524 fixes it)
<ifreund> Guiltyfart: no problem!
<Guiltyfart> have you ever seen this before? I will I make an issue out of it?
<Guiltyfart> ```
<Guiltyfart> install transitive failure
<Guiltyfart> └─ install river transitive failure
<Guiltyfart>    └─ zig build-exe river ReleaseSafe native 1 errors
<Guiltyfart> river/InputConfig.zig:118:14: error: root struct of file 'c' has no member named 'libinput_device_config_dwtp_set_enabled'
<Guiltyfart>         _ = c.libinput_device_config_dwtp_set_enabled(device, switch (dwtp_state) {
<Guiltyfart>   ```
<Guiltyfart> *or will i make a github issue i should say
<Guiltyfart> I have a libinput pkg installed (1.20)that was required for building wlroots, maybe if i build wlroots with a neewer version of this lib it might solve the issue.
<Guiltyfart> libinput-dev is for ver 1.20
<ifreund> Guiltyfart: yeah, error is due to the libinput version being too old... I think that function has been around for at least a year though
<ifreund> it was added in 1.21, libinput is currently on 1.25...
<Guiltyfart> yep I found the github pull / issue where this line was added. currently compiling new libinput
<ifreund> you using debian?
<lordmzte> ifreund: I doubt it's #963, as the crash happens on opening the window, not closing it. Will get a stack trace.
<Guiltyfart> pop os (needed ubuntu derivative to run vivado on -_- )
<lordmzte> Actually, it might be: https://paste.rs/jCcSO
<ifreund> lordmzte: you would be surprised at the crazy illogical things X11 programs and SDL do...
<ifreund> would you mind trying with the linked wlroots patch?
<lordmzte> hah yea - SDL2 is currently just the contemporary backend for my GUI engine. will get rid of it :D
<lordmzte> sure!
lordmzte has quit [Quit: WeeChat 4.2.1]
lordmzte has joined #river
<lordmzte> If I run river master with the wlr commit of the PR you linked in LD_PRELOAD, I get a crash immediately when starting river. Log: https://paste.rs/pdSrK stack trace: https://paste.rs/neY2o
<lordmzte> This is a debug build now, turns out I just couldn't repro it earlier because I was missing -Dxwayland
<ifreund> lordmzte: I think you're using wlroots master but need to be using the 0.17 branch
<lordmzte> I'm using the PR you linked here.
<ifreund> wlroots master has breaking changes not compatible with river and in particular zig-wlroots
<ifreund> that PR is a PR to master branch, you can either cherry-pick that commit onto 0.17.1 or use the 0.17 branch
<ifreund> sorry for not making that clear
<lordmzte> Oh I see. I actually was using the tip of the 0.17 branch already with a small patch to fix screenshare on nvidia - I also managed to repro it there.
<ifreund> actually, I don't think the 0.17 branch has the cherry-picked version of that commit yet, you could use this backports branch: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4525
<lordmzte> I can just cherry-pick it on if it doesn't have it.
<lordmzte> Alright, will try it. BRB
<ifreund> thanks :)
lordmzte has quit [Quit: WeeChat 4.2.1]
lordmzte has joined #river
<lordmzte> It is indeed fixed!
<ifreund> excellent, thanks for confirming. I never could reproduce that issue but I don't use much X11 stuff
<lordmzte> I'll work on #635 now. One question to begin with: what's the best way to express "unmap this input from any output" on the CLI?
<lordmzte> The interface I have in mind for now is `riverctl input INPUT_NAME map-to-output OUTPUT_NAME`
<lordmzte> s/INPUT_NAME/INPUT_GLOB
<ifreund> lordmzte: perhaps just `riverctl input <glob> map-to-output disable`
<lordmzte> wouldn't that be a little misleading as, to my understanding, it should be something like "all" instead?
<lordmzte> sorry, I'm asking too many questions that we should probably discuss in the PR
<ifreund> I don't think either all or disable is inherently more correct, it's just a matter of perspective
<lordmzte> fair
<ifreund> feel free to do either for now, we can worry about the bikeshedding once the rest of the patch is ready
<lordmzte> heh yea :D
traidare has joined #river
waleee has quit [Ping timeout: 268 seconds]
<alebastr> ifreund: is zig 0.12 really planned for next week?
<lordmzte> ough that means they'll postpone async again
Guiltyfart has quit [Quit: Client closed]
traidare has quit [Ping timeout: 255 seconds]
<lordmzte> How should I get a `wlr.InputDevice` given a `c.libinput_device`?
<lordmzte> I think the best way would be to change the fact that settings in InputConfig currently take libinput_devices and have them take the wlr device instead. Should be easy enough.
<ifreund> alebastr: no, what gave you that idea?
<ifreund> lordmzte: I think it would be cleaner to put all the libinput config options in a LibinputConfig struct and separate them out into a separate file
<ifreund> then have a field of the InputConfig struct be `libinput_config` or similar
<ifreund> In general, all the current input config code is pretty libinput specific
<ifreund> your call if you want to try to refactor things in that way or not though.
<ifreund> actually, I'd recommend just special casing your new config option and trying to touch as few lines as possible for the feature addition PR
<ifreund> it's always nicer to review refactoring stuff separately from new features
<alebastr> ifreund: date on the github milestone :(
<ifreund> alebastr: ah, that didn't used to be there. I don't know the full story but I haven't heard enough release noises to make me think it will really happen in 6 days
<ifreund> last I heard the idea was to not set a hard deadline for 0.12.0 and rather try and fix as many issues impacting real world projects as possible
ninewise has quit [Remote host closed the connection]
ninewise has joined #river
<lordmzte> Sounds like that'd be best left for another PR, right?
lordmzte has quit [Ping timeout: 246 seconds]
angry_vi` has joined #river
lordmzte has joined #river
angry_vincent has quit [Ping timeout: 268 seconds]
<lordmzte> It appears that there is a bug in zig-wlroots I'm blocked on here: zig-wlroots declares the extern function `wlr_cursor_map_input_to_output` taking a non-optional output pointer, whereas that argument should actually be nullable. I do not believe the behavior of the output being null is documented anywhere, but reading the implementation, it should have the desired effect.
<ifreund> lordmzte: luckily that's easy to fix, just send a PR over to https://codeberg.org/ifreund/zig-wlroots
<lordmzte> :)
<ifreund> and yeah, reading the source code is usually necessary to do things with wlroots
<lordmzte> But fair warning: it's unconfirmed whether it's actually optional, but the function will handle it just fine with the current impl and would set a field to null that is null-checked everywhere it's used :D
<ifreund> lordmzte: I'm pretty sure passing NULL is fine, sway does it for example
<lordmzte> great
<ifreund> It probably just didn't look fine at first glance when I wrote the zig-wlroots type signature
<lordmzte> Would appreciate a quick merge so I don't need to mess too much with the submodule in river :D
waleee has joined #river
<lordmzte> Thanks!
<ifreund> no problem :)
<lordmzte> How do I check whether a given wlr_input_device is attached to a given wlr_cursor?
<ifreund> lordmzte: until support for multiple seats is added, there is only one wlr_cursor
<ifreund> (adding support for multiple seats mostly involves some CLI code to assign input devices to seats + fixing bugs)
<lordmzte> Yea but there are some output devices (keyboards) that belong to no cursor at all, and it'd be nice to have a check for those to not spam the log with wlr errors
leopoldek has quit [Remote host closed the connection]
<lordmzte> Hmm, if I map my mouse to an output, then physically unplug that output, river crashes once I move my cursor. trace: https://paste.rs/ggLpz
<lordmzte> only happens if inputs are mapped to the output
<ifreund> lordmzte: you should be able to check the type of the input device to make sure it is not a keyboard
angry_vi` has quit [Remote host closed the connection]
<ifreund> as for the crash on output unplug, sounds like you need to add some code to handle that...
angry_vi` has joined #river
<lordmzte> Yea, I should be fine if I just recalculate the mappings deactivateOutput
<lordmzte> I'd prefer not having to check a keyboard, as it seems to me like it would be cleaner to just check the association. Even if strictly all keyboards (and no other input devices) never belong to a cursor, this will pop up again with multi-seat support eventually.
angry_vi` has quit [Remote host closed the connection]
<lordmzte> Wow, I was wondering why my touchpad wasn't being recognized and turns out it's the old having done a kernel upgrade, forgetting to reboot and then being confused why stuff doesn't work. brb.
lordmzte has quit [Quit: WeeChat 4.2.1]
angry_vincent has joined #river
lordmzte has joined #river
<lordmzte> I'll head to bed. Talk to you tomorrow!
lordmzte has quit [Quit: WeeChat 4.2.1]
traidare has joined #river
leopoldek has joined #river
<vyivel> huh river intends to support multiple seats
<ifreund> vyivel: is that surprising? :D
<vyivel> idk, feels like an explosion in complexity with little reward personally
<vyivel> but you do you
<ifreund> I don't think it's acutally that much complexity
<ifreund> It's mostly just a UX problem as far as I can tell
<vyivel> i'm fairly sure most programs don't know how to deal with multiple seats either
<ifreund> Most of river's code is already theoretically multi-seat aware but I've been too lazy to add the config bits for assigning input devices to seats
<ifreund> yeah, programs being unable to handle multiple seats is probably very common, what can you do though
<vyivel> /shrug
<vyivel> what do people use multiple seats for?
<ifreund> I think the wayvnc remoting stuff seems like the most common practical use-case
<ifreund> ask the sway users though, river users cant use multiple seats yet
<vyivel> hm, vnc makes sense
traidare has quit [Ping timeout: 246 seconds]
<leon-p> gnome uses multi-seat to give drawing tablets their own cursor
Guest5 has joined #river
<Guest5> has anyone/is there a guide to doing a clear install of river under arch?
<Guest5> i was using sway up till now and it just feels really sluggish, and i wanted to give river a try
<Guest5> the only reason i was able to install sway was because of archinstall haha
Guest5 has quit [Client Quit]
Guest5 has joined #river
<Guest5> and what login/dm is everyone using?
Guest5 has quit [Quit: Client closed]