<Guest46>
Hi guys. I have an issue so I want to ask for help.
<Guest46>
One of the last thing I do in my river init file is start pipewire (which then starts wireplumber). The issue shows up when I want to exit river to tty and then start river again. At that point, the first pipewire process is still runing and by starting river I start another one. That creates a problem as wireplumber should never run before
<Guest46>
pipewire (my understanding at least) and my sound (controls) get messed up.
<Guest46>
Can I map my exit shortcut to not only exit river but also execute commands to kill pipewire? For example
<Guest46>
riverctl map normal Super+Shift E exit && spawn 'pkill wireplumber ; pkill pipewire'
<Guest46>
(above does not seem to work --- I haven't figured out how to chain river commands with spawn...)
<Guest46>
Or is it okay to do something like:
<Guest46>
riverctl map normal Super+Shift E spawn 'pkill wireplumber ; pkill pipewire; pkill river'
<leon-p>
are you sure you actually need to manually spawn pipewire?
<leon-p>
It works fine with socket-activation for me
<Guest46>
I am not.
<Guest46>
What do you do exactly?
<leon-p>
gimme a sec, I'll get the link for the two lines in the init that should make this happen
<leon-p>
although this is for systemd though, no idea how this works on lesser inits
<Guest46>
With either of these configurations, launching pipewire should be sufficient to establish a working PipeWire session that uses wireplumber for session management.
<Guest46>
Which indicated to me I should launch it
notzmv has joined #river
<Guest46>
To be fair, they also say:
<Guest46>
There are several methods for starting wireplumber alongside pipewire. If your window manager or desktop environment auto-start mechanism is used to start pipewire, it is recommended to use the same mechanism for starting wireplumber. The wireplumber package includes a wireplumber.desktop Desktop Entry file that may be useful in this situation.
<leon-p>
yeah, I think other inits don't do socket activation
<Guest46>
let me see what you sent
<Guest46>
Thanks a lot for the effort by the way
<leon-p>
on systemd, these things "just work" for me
<Guest46>
Also I use seatd on void (not elogind which is a systemd-logind alternative from my understanding)
<leon-p>
we have a few void users here, however I think they are all asleep right now. If you wait a few hours, you can probably get void-specific help
<Guest46>
Okay, thanks, I'll ask the question again tomorrow as I am on US NY time zone.
<Guest46>
as of rn, is it okay to use:
<Guest46>
riverctl map normal Super+Shift E spawn 'pkill wireplumber ; pkill pipewire; pkill river'
<Guest46>
or is there a way to chain commands in river that would look something like below (which does not work):
<Guest46>
riverctl map normal Super+Shift E exit && spawn 'pkill wireplumber ; pkill pipewire'
<leon-p>
if it works for you 🤷
<Guest46>
so is pkill river == to exit?
<Guest46>
This is what I see in the man page:
<Guest46>
exit = Exit the compositor, terminating the Wayland session.
<Guest46>
Does pkill also do the part of terminating the Wayland session or not. Sorry if it is a dumb question I just am not sure how this works in the background
<leon-p>
you can also just `riverctl exit`
<Guest46>
by exit I mean riverctl exit
<Guest46>
lol
<Guest46>
I just figured that as I was typing
<Guest46>
thanks
<Guest46>
I'll use that for now and try to find a more elegant solution tomorrow
<Guest46>
Appreciate the help
<leon-p>
np
<leon-p>
at least one person benefits from my shit day-night cycle
<Guest46>
Yes definitely. And this is not the first time you helped. I love this little community and as I learn more I will definitely register and keep it online to perhaps answer at least a more basic questions and return the favor. My name is vladimir by the way
<leon-p>
would be nice to have a few more regulars here
Guest46 has quit [Quit: Client closed]
vladimir has joined #river
vladimir has quit [Quit: Client closed]
<aktina>
Guest46: i use void, but i haven't properly setup that pipewire thing properly on my system
<aktina>
but currently i use runsvdir to run some userservices, with which i manage pipewire service, ig this would make it a bit easier if you wish to start or terminate your river sessions
<aktina>
leon-p: thanks for your suggestion, but won't it hog a bit of too much resource (i.e ram) when you have it nested like that ?
<leon-p>
not really
<leon-p>
and even less in the future
<aktina>
oh, i'll try it out then, if i do like this method, but find it hogging more ram (my laptop is simply not built for it), i may have dwm run it like that
<leon-p>
life is too short to worry about a few megs of am usage🤷
<leon-p>
*RAM
<aktina>
i can't afford it with meager 4gb ram, and having a damn pentium core inside ^tm
notzmv has quit [Ping timeout: 260 seconds]
<Nosrep>
river just by itself really doesnt use that much mem
<Nosrep>
right now it's using about 1% of my 16 gigs
<Nosrep>
that's like less than a browser tab
leopoldek has quit [Ping timeout: 245 seconds]
notzmv has joined #river
<aktina>
Yes, but like, when you compare it with a terminal multiplexer, say tmux, I think tmux would use even less.
notzmv has quit [Ping timeout: 240 seconds]
occivink1 is now known as occivink
Ordoviz has joined #river
Guest93 has joined #river
Guest93 has quit [Client Quit]
jao has joined #river
darkbit[m] has quit [Server closed connection]
darkbit[m] has joined #river
alexherbo2 has joined #river
notzmv has joined #river
alexherbo2 has quit [Remote host closed the connection]
notzmv has quit [Ping timeout: 260 seconds]
alexherbo2 has joined #river
alexherbo2 has quit [Remote host closed the connection]
alexherbo2 has joined #river
elshize has joined #river
elshize1 has joined #river
alexherbo2 has quit [Remote host closed the connection]
alexherbo2 has joined #river
alexherbo2 has quit [Remote host closed the connection]
notzmv has joined #river
alexherbo2 has joined #river
ayushnix has joined #river
elshize has quit [Quit: elshize]
elshize has joined #river
dvzrv_ has joined #river
Guest78 has joined #river
elshize has quit [Client Quit]
Guest78 has quit [Client Quit]
dvzrv has quit [Ping timeout: 264 seconds]
dvzrv_ has quit [Quit: WeeChat 3.8]
dvzrv has joined #river
JustineSmithies has joined #river
leopoldek has joined #river
<JustineSmithies>
Is there anyway to get the currently focussed output from River ?
leopoldek has quit [Ping timeout: 240 seconds]
dvzrv has quit [Quit: WeeChat 3.8]
dvzrv has joined #river
alexherbo2 has quit [Remote host closed the connection]
ayushnix has quit [Ping timeout: 246 seconds]
groknull has joined #river
groknull has quit [Remote host closed the connection]
leopoldek has joined #river
elshize1 has quit [Ping timeout: 245 seconds]
<leon-p>
JustineSmithies: yes, with the river-status protocol extension
<leon-p>
I don't know your usecase, but writing a simple wayland client that dumps the focused output of the first seat should be simple
groknull has joined #river
groknull has quit [Remote host closed the connection]
alexherbo2 has joined #river
rick42 has quit [Quit: Client closed]
alexherbo2 has quit [Remote host closed the connection]
alexherbo2 has joined #river
waleee has joined #river
alexherbo2 has quit [Remote host closed the connection]
alexherbo2 has joined #river
leopoldek has quit [Ping timeout: 240 seconds]
rick42 has joined #river
<rick42>
for `riverctl rule-add float -app-id popup` I get `error: unknown command`. Is that because I'm running an old version of riverctl?
<rick42>
`riverctl -version` yields `0.2.4`.
<leon-p>
rick42: commands are all server side, you are running an old version of river
Ordoviz has quit [Quit: WeeChat 4.0.0]
<rick42>
leon-p: thanks
Ordoviz has joined #river
alexherbo2 has quit [Remote host closed the connection]
<rick42>
so when I start a river session, and I immediately open a terminal, I'm surprised to see that it starts on the monitor I wasn't expecting / looking at. Is there a way to tell river, "No, use this other monitor to start off"? Thanks.
<rick42>
also, when I used bspwm, I used to say Super '[' and Super ']' to go "backward" and "forward" to "adjacent" tags (as if they were workspaces). Is this possible to do in river as a builtin command? If not -- if I knew how to query the system for the current tag(s) -- I could script such a solution. Thanks for any help.
Ordoviz has quit [Quit: WeeChat 4.0.0]
leopoldek has joined #river
<waleee>
ifreund_ has this in his river init "riverctl map normal $mod Tab focus-previous-tags"
<waleee>
ah. It didn't do that (it jumps between previous selected tags)
zdykstra has joined #river
alexherbo2 has joined #river
vladimir has joined #river
<vladimir>
Hi. I had a question yesterday that I would like to expand on if there are any
<vladimir>
Void Linux users active. Here is my situation:
<vladimir>
One of the last thing I do in my river init file is start pipewire (which then
<vladimir>
starts wireplumber). (Is this even the best approach? I use seatd btw.) The
<vladimir>
issue shows up when I want to exit river to tty and then start river again. At
<vladimir>
that point, the first pipewire process is still runing and by starting river I
<vladimir>
start another one. That creates a problem as wireplumber should never run before
<vladimir>
pipewire (my understanding at least) and my sound (controls) get messed up.
<vladimir>
I solved it by exiting the river in the following manner:
<vladimir>
riverctl map normal Super+Shift E spawn 'riverctl exit; pkill -f -9 pipewire'
<vladimir>
This seems hacky (in a bad way) and I feel like there is a better solution out
alexherbo2 has quit [Remote host closed the connection]
<novakane>
the problem is if your runit for it, it doesn't works with xdg-desktop-portal so that is the only solution I think
<vladimir>
I'm taking a look thanks
vladimir has quit [Ping timeout: 246 seconds]
<leon-p>
the weirdest thing just happened: the weirdo gaming laptop I had as a teenager, which literally /blew up/, just resurrected somehow? So... guess who has modern-ish hardware again. I don't trust it, but I'll take it.
<novakane>
a zombie laptop, that's how you start the apocalypse I think
<leon-p>
perhaps
<leon-p>
I mean, it's battery is still dead, so it's not getting far at least
<leon-p>
probably will just use it as a replacement for my desktop workstation. I'll keep lugging the X200 around as my mobile office, I just trust it more to not give up on me when I need it
<novakane>
well that's gonna be a disappointing apocalypse
<novakane>
that's probably be safer yeah
vladimir has joined #river
<vladimir>
novakane For some reason, I got disconnected and my response was never sent.
<vladimir>
I am starting it in a somewhat similar way by running:
<vladimir>
I followed Void Handbook and made wireplumber and pulse start automatically after pipewire is launched.
<vladimir>
I have 2 questions:
<vladimir>
- What is the issue with using xdg-desktop-portal (I use it btw)
<vladimir>
- I still don't see (and apologies if it is obvious) how you are killing the pipewire session when you exit river? In other words, if you exit to tty and launch river again, wouldn't you end up with two pipwire sessions. And the second one would be launched after wireplumber (lefover from the first session) and it would mess up the sound for you in
<vladimir>
your new session
<vladimir>
novakane Also, how important is to have this:
<vladimir>
Okay thanks a lot. I guess the killing of pipewire can always be done manually so my way of doing it seems to be my preference. I will keep using it by mapping exit to (exit + kill pipewire)
<novakane>
the dbus-update... in th init is something for xdg-desktop-portal again
<vladimir>
I read the thing about xdg-desktop-portal-wlr. However, I do not have an issue sharing my screen. Works fine in Firefox and OBS for example, but Signal-Desktop explodes once I press the button to share the screen lol
<novakane>
vladimir: well using riverctl exit should kill pipewire, but it no gonna hurt if you kill it manually
<vladimir>
Thanks a lot. It actually does not kill it for me for some reason
<vladimir>
I will export these in my shrc
<vladimir>
# [ Wayland env variables ]
<vladimir>
export XDG_SESSION_TYPE=wayland
<vladimir>
export XDG_CURRENT_DESKTOP=river
<vladimir>
export MOZ_ENABLE_WAYLAND=1
<vladimir>
And lastly when it comes to screen sharing I will keep doing what I am doing (unless you suggest that there is something wrong with it) as I have no issues with most apps I need
<novakane>
for me the problem with portals was just with flatpaks, it works nice without anything if I don't use flatpaks, so if it works for you no reason to change for now
<novakane>
for the variables you need to make sure there set before river launch so that's why I use a wrapper script for this
<novakane>
instead of putting it in you whatever she'll config file you're using
<novakane>
shell*
<vladimir>
Thanks a lot for the reassurance and further explanation with xdg-desktop-portal
<vladimir>
so for your last comment about EVs
<vladimir>
1. As of right now I launch river manually, so .profile (that's where I defined those EVs) will obviously source first
<vladimir>
2. If I decide to start river automatically on TTY login can't I just put the line that executes river after exporting those EVs
<vladimir>
That way I am always guaranteed they are set before river launches
alexherbo2 has joined #river
<vladimir>
And last question*: I see you have exec dbus-run-session river
<vladimir>
is it necessary to launch it with dbus-run-session or is that logic from that github post related to xdg-desktop-portal
<vladimir>
I have dbus service enabled btw
JustineSmithies has quit [Quit: WeeChat 4.0.0]
<novakane>
I mean once you launched river and you check the EVs and it's all good then, your way of doing it is fine. I launch it manually in the tty too and I prefer the wrapper script
<novakane>
vladimir: necessary, probably not, it is usually a good way to do it through, and not just for xdg desktop portals
<vladimir>
novakane Thank you so much for everything. Only if you have time, it would be great if you can tell me why I should start river (for example) with dbus-run-session.
<vladimir>
I read the man page for it and it makes sense why you would use, but I am curious as to what is the "downside" if I do not? Are there any risks if I don't start river with dbus
<vladimir>
Regardless thanks a lot and I really mean it
<vladimir>
I'll check the rest of your dotfiles :)
<novakane>
not sure about any downside tbh, I'm far from an expert on dbus, I'm just sure I have a fresh session that exit with river like that
alexherbo2 has quit [Remote host closed the connection]
<novakane>
anyway I'm off to bed now, but feel free to ask if you have others questions later
<rick42>
vladimir: I too start river with dbus-run-session. I have no reason why -- I just copied ifreund config so I could quickly onboard.
<vladimir>
Okay, thanks guys! I'll use it to just to be safe as I am probably even less of an expert on dbus :D