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/
buffet3 has joined #river
buffet has quit [Ping timeout: 256 seconds]
buffet3 is now known as buffet
snakedye has quit [Ping timeout: 240 seconds]
snakedye has joined #river
cabal704 has quit [Quit: WeeChat 3.4]
Nulo has quit [Ping timeout: 240 seconds]
waleee has quit [Ping timeout: 272 seconds]
snakedye has quit [Ping timeout: 240 seconds]
Guest25 has joined #river
Guest25 has quit [Quit: Client closed]
snakedye has joined #river
Guest25 has joined #river
<Guest25> Hi, i'm running river with nouveau and xf86-video-nouveau and the mouse cursor is moving extremely slow. I am currently running the example init file.
<Guest25> The mouse cursor slows down if 1. i have windows open on two monitors (i only have a need for one, so i disabled the other) 2. i run applications like firefox (mouse slows down a lot) and waybar (mouse movement comes to a halt almost completely)
<Guest25> If i change to a different workspace with no window present the mouse cursor is speedy again.
<Guest25> i tried both WLR_NO_HARDWARE_CURSORS=1 and 0
<leon-p> Guest25: what do the logs say?
<Guest25> waybar itself (launched on the terminal) throws no errors, "sudo -f journalctl" throws errors regarding the portal service
<Guest25>  Failed to start Portal service (GNOME implementation). This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem. Failed to start Xdg Desktop Portal For KDE.  Failed to start Portal service.
<Guest25> Umm... One thing i might have done wrong is forgetting -Dxwayland while building. Might that be it?
<leon-p> no
<leon-p> that just means you have no XWayland
<leon-p> also I meant rivers logs :)
<leon-p> start river with `river -log-level debug 2> river-logs`
Guest25 has quit [Quit: Client closed]
Guest25 has joined #river
Guest25 has quit [Client Quit]
Guest25 has joined #river
<Guest25> log incoming (:
<leon-p> ah, as I expected: nouveau is failing and wlroots is falling back to software rendering
<leon-p> probably a driver bug?
<leon-p> actually, I think line 16 indicates that a library is missing
<Guest25> Mesa and Mesa-dri packages are installed on openSUSE. But yeah that line is worrysome
<Guest25> There is a package Mesa-dri-nouveau, which i have not installed. It warns that is experimental stuff so i didn't  bother. The package "Mesa-dri" also has "3D acceleration" in it's discription
<Guest25> That package includes the missing so file, so i will try and see if the problem is then solved
<Guest25> thanks for troubleshooting :)
Guest25 has quit [Quit: Client closed]
Guest25 has joined #river
<Guest25> Just reporting back, problem solved! Aesome thanks :)
Guest25 has quit [Quit: Client closed]
l4s8g has joined #river
l4s8g has left #river [#river]
l4s8g has joined #river
cabal704 has joined #river
Nulo has joined #river
<novakane> ifreund: any reason zig-wayland doesn't have wl_display_prepare_read?
snakedye has quit [Ping timeout: 272 seconds]
l4s8g has left #river [#river]
snakedye has joined #river
notzmv has quit [Ping timeout: 252 seconds]
<leon-p> managed to soft-lock river again
<leon-p> not sure if I can reproduce though
<leon-p> yes, I can reproduce :D
<leon-p> I am connecting to an ftp server with nautilus (via gvfs) and when the server is slow to respond / the connection is failing and I try to manually disconnect, river does not respond until nautilus crashes. Moving the mouse cursor works, but nothing else. If I have a terminal open and Ctrl-D it, the shell will exit but the view won't close until river is good again. Switching to a TTY still works, where some riverctl commands work (f.e. quit) while
<leon-p> others don't (close, list-inputs, focus-previos-tags, etc.)
notzmv has joined #river
<novakane> how do you manage to always crash river :P
<leon-p> well, it's not a crash, after a minute or so nautilus usually dies and river is good again :D
<leon-p> but it's probably because of the hardware. It's not particularly fast, so I'll probably notive things a bit stronger and longer that on more modern hardware isn't quite as noticable
<leon-p> my current hypothesis is that fuse manages to gobble up all IO time. Maybe I'll need to play with rivers IO niceness a bit.
<novakane> you just need to upgrade these hardware and stop blaming river :P
<novakane> but I guess better IO would be great too :D
<leon-p> I'll upgrade as soon as there is a more modern device with libre firmware and no IME / PSP crap. So probably not anytime soon :P
<leon-p> *affordable device
<leon-p> the Power9 architecture by IBM is pretty close to what I'd like, but nowhere near my price range
<ifreund> novakane: no particular reason, I probably just skipped it as I think mixing threads with libwayland is a bad idea
<ifreund> that said, I wouldn't be opposed to adding bindings for it
<novakane> leon-p: yeah affordable not gonna happen soon unfortunately
<novakane> ifreund: allright, so what would be the better solution for multithread, just using system library?
snakedye has quit [Ping timeout: 240 seconds]
<novakane> and client_display_functions.zig is like wayland-client-core.h?
snakedye has joined #river
<ifreund> novakane: better solution would be to avoid threads altogether :P
<ifreund> I suppose they do have some use cases though
<ifreund> client_display_functions.zig is only the wl_display_* functions from wayland-client-core.h
<leon-p> as long as you only do Wayland things in one single thread it should be fine, the problems arise when you have multiple threads trying to send and receive things. You can get by using message queues, but it's not very nice.
<novakane> well yeah but trying to do a wayland lemonbar I'm not sure how I could avoid multi threads, I spend way too long thinking about the design/abstractions lol
<novakane> ifreund: thanks maybe I'll do the missing functions then
<leon-p> novakane: do you really run into problems when using only a single thread? Can't you just poll?
elshize has quit [Ping timeout: 240 seconds]
<ifreund> you may need a separate thread for non-blocking read/write I/O without io_uring
<ifreund> that doesn't mean you can't keep your libwayland usage to a single thread though
<leon-p> for a status bar, non-blocking read/write is probably a bit overkill
<ifreund> I would do nearly anything to avoid multiple threads though
<ifreund> yes indeed, I'm sure lemon bar just blocks
<leon-p> I'd just arrange the event loop so that Wayland events take precedence over stdin being readable and it should be fine
<novakane> well I try with one thread then, I"ll see what I can do
<novakane> one of my problem is the order of info I receive, I feel like sometime wayland events are random ^^
<leon-p> unless the order of events is specified, then they effectively are
<leon-p> but this is really not that different from your river-tag-overlay clone: just instead of a timeout you have an additional fd
<novakane> yeah I'm trying to use wl_surface.frame(), it's not conclusive at the moment^^
<leon-p> I think I use that in lavalauncher, if you need an example
<novakane> I think I started with too many idea at the same time
waleee has joined #river
<leon-p> wl_surface.frame only really makes sense if you expect to render many times a second
<novakane> yeah? like for a clock module or something like that, like someont using sleep 1 it doesn't makes sense?
<leon-p> not really I think
<leon-p> and you can always add it later, if it turns out you do need it
<ifreund> novakane: generally wl_surface.frame will be called at roughly the output's refresh rate if the surface is visible, which means 60 times a second or more
<ifreund> that's 60 times more often than a clock needs to be re-rendered
<novakane> ah yeah doesn't makes sense then, thanks
<ifreund> also I personally wouldn't want my status bar sucking up so much cpu rendering that often
<novakane> I don't see a use case where something would be updated so often yeah
<leon-p> ^ only if you attach it that often, IIRC an instance dies after receiving the event
<ifreund> yes, if you always create a new callback after rendering
<leon-p> you are free to delay your rendering after receiving a frame callback. I only use it to reduce rendering on mouse movement events.
<novakane> well I'm gonna simplify all that, already spend too much time on the wayland part wich is the simplest part :P
<novakane> the zig-wlroots ci is really a mystery :/
<ifreund> yeah, no idea what's up there
<novakane> that's annoying, and good luck for debugging somthing like this
<novakane> how safe is it to select an output with wl_output.name? I mean using like a flag --output "eDP-1" to chose the monitor
Guest26 has joined #river
notzmv has quit [Ping timeout: 252 seconds]
<Guest26> Hi, i'm running the latest river release and my touchpad does not work, so i tried issuing the "rivertctl list-inputs" command and get "error: The Wayland server does not support river-control-unstable-v1; Do your versions of river and riverctl match?" -> How can river and riverctl not match, since they are build and installed from the same repo ?
<Guest26> -> Do you have any suggestions how i can get the riverctl command working again?
<novakane> so on river 0.1.3?
<Guest26> glad you asked :) river -version shows 0.2.0-dev-8943307, i had the wrong assumption that building from the master branch would have the stable version
<leon-p> novakane: pretty safe, I guess.
<leon-p> Guest26: it's actually quite easy to have mismatched river and riverctl version. For example instead of installing with zig build, some people manually copy the executable
<novakane> leon-p: I hope so because it the easiest way
<Guest26> ah ok. Anyways, i'm off trying with 0.1.3 and willl report back here :)
<novakane> how did you install it? you shouldn't have any problem with master
Guest26 has quit [Quit: Client closed]
<leon-p> novakane: it's not the easiest way, I am pretty sure it's the /only/ way to match outputs
<leon-p> but be prepared for the case that the server does not send that events
<leon-p> I don't think it's mandatory
<novakane> right, so still the easiest way, also the hardest :P
<novakane> yeah I probably use the first output in the list if the name is null
<leon-p> I'd probably sync after binding the registry and then sync again after the sync handler has been called the first time. By the second time the sync handler is called, it's pretty safe that you'll have received wl_output.name events for all outputs you have bound during the initial registry wave.
Guest26 has joined #river
<novakane> yep, that's what I have
<Guest26> Ok i'm here again, with river 0.1.3 riverctl works again. I tried configuring the touchpad, but that doesn't work.  I configured the touchpad like so: "riverctl list-inputs" -> Chose device with "*_Touchpad" and  "type: pointer" and "configured: true" and then isued the commands "riverctl input INPUTNAME events enabled" "riverctl input INPUTNAME
<Guest26> tap enabled" "riverctl input INPUTNAME tap-button-map left-right-middle" with INPUTNAME being XXXX:XXXXX:XXXXXXXX:XX_XXXX:XXXX_Touchpad".
<leon-p> the latest release changed the format of input device names, are you sure you got the right one?
<novakane> heh classic zig :P https://0x0.st/o84r.txt
<leon-p> :D
<Guest26> leon-p: Well i just took the name output by "riverctl list-inputs" and used that.
<leon-p> did you run riverctl list-inputs before or after updating river?
<Guest26> after building river 0.1.3
<leon-p> because the naming scheme XXX:XXX:XXX_Touchpad you said to have used is definitely wrong for version 0.1.3
<Guest26> river -version shows 0.1.3.
<leon-p> whoops, wait a minute
<leon-p> ifreund: I think you made a mistake when tagging 0.1.3, you included the first commit from the input dev name PR, but not the second :D
<Guest26> :D do i need to move one commit furhter?
<ifreund> leon-p: wasn't the second a breaking change?
<leon-p> yes, it was
<ifreund> it can't be in 0.1.3 then, it would have to be 0.2.0
<leon-p> makes sense, I was somehow under the impression it belonged into 0.1.3
<leon-p> Guest26: you don't necessarily need to update to master branch, use the device names your current river version gives you
<Guest26> yeah i'm fiddling around but the touchpad is not doing anything
<leon-p> riverctl list-inputs should show whether the device is configured or not. That's a good way of seeing if you used the right device name
<Guest26> configured: yes and type: pointer
<Guest26> configured: true
<leon-p> well, then the problem is probably the command
<novakane> and what does `riverctl list-input-configs` say?
<Guest26> 1739:32552:MSFT0001:00_06CB:7F28_Touchpad
<Guest26>     events: enabled
<Guest26>     natual-scroll: enabled
<Guest26>     tap: enabled
<Guest26>     tap-button-map: left-right-middle
<novakane> doesn't looks like the problem comes from here then
<Guest26> ok :) so the kernel might be at fault
<Guest26> I will reboot and  try gnome or kde and see if the touchpad works there
<Guest26> Thank your for your help
Guest26 has quit [Quit: Client closed]
l4s8g has joined #river
l4s8g has quit [Remote host closed the connection]
snakedye has quit [Ping timeout: 272 seconds]
snakedye has joined #river
l4s8g_ has joined #river
l4s8g_ has quit [Client Quit]
snakedye has quit [Ping timeout: 240 seconds]
snakedye has joined #river
l4s8g has joined #river
waleee has quit [Ping timeout: 252 seconds]
waleee has joined #river
l4s8g has quit [Quit: l4s8g]
notzmv has joined #river
elshize has joined #river
occivink has quit [Ping timeout: 240 seconds]
occivink has joined #river
waleee has quit [Ping timeout: 256 seconds]
waleee has joined #river
waleee has quit [Ping timeout: 240 seconds]
NickH has quit [Ping timeout: 256 seconds]
NickH has joined #river
waleee has joined #river