<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
<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 -_- )
<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.
<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>
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>
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