Re: PipeWire as a PulseAudio replacement (was Re: The Shepherd on Fibers)
Hi Josselin, Quoting Josselin Poiret (2022-04-28 14:48:55) > Tanguy LE CARROUR writes: > > > I recently switched from Xorg to Wayland and I'm quite happy with my new > > setup! The only last "little" thing that doesn't work for me is > > screen-sharing using Icecat and/or Chromium!? :-( > > I know that at least for icecat, it needs to dlopen pipewire for > screen-sharing to work, but for now it isn't included in the icecat > package. Oh! Any roadmap for that?! Is it discussed somewhere else?! > In the meantime, i've been using the command line > `LD_LIBRARY_PATH="$(guix build pipewire)/lib" icecat` to get > screensharing working in icecat. OK… I'll give it a try. > Also, you say you've set the env variables, but you need to set them for > dbus: that means running `update-dbus-activation-environment > WAYLAND_DISPLAY`, is that what you ended up doing? If you meant `dbus-update-activation-environment`… this so much what I have **NOT** done! :-D … I just set ENVVAR. ^_^' Sorry, but all of this is a bit of voodoo to me! But I'll give it a try. Thanks for your precious advice! -- Tanguy
Re: PipeWire as a PulseAudio replacement (was Re: The Shepherd on Fibers)
Hello Tanguy, Tanguy LE CARROUR writes: > I recently switched from Xorg to Wayland and I'm quite happy with my new > setup! The only last "little" thing that doesn't work for me is > screen-sharing using Icecat and/or Chromium!? :-( I know that at least for icecat, it needs to dlopen pipewire for screen-sharing to work, but for now it isn't included in the icecat package. In the meantime, i've been using the command line `LD_LIBRARY_PATH="$(guix build pipewire)/lib" icecat` to get screensharing working in icecat. Also, you say you've set the env variables, but you need to set them for dbus: that means running `update-dbus-activation-environment WAYLAND_DISPLAY`, is that what you ended up doing? HTH, -- Josselin Poiret
Re: PipeWire as a PulseAudio replacement (was Re: The Shepherd on Fibers)
Hi Josselin, hi Brendan, hi Guix, Quoting Josselin Poiret (2022-03-29 15:22:35) > Brendan Tildesley writes: > > Which environment variables are you talking about? I'm running pipewire on > > Guix System > > and it seems to work fine. > > Right, I think I conflated too many different things, basically my > use-case was making screensharing work on wlroots-based compositors, but > the service that need these env variables (at least WAYLAND_DISPLAY I > think) is xdg-desktop-portal-wlr. WirePlumber and PipeWire should be > fine by themselves, since they're started by the session D-Bus and thus > should have access to it, and shouldn't need anything else. I recently switched from Xorg to Wayland and I'm quite happy with my new setup! The only last "little" thing that doesn't work for me is screen-sharing using Icecat and/or Chromium!? :-( And, I won't go back to Xorg "just" for that! ^_^' I would be grateful if someone could tell me how to set up the PipeWire thingy!? I've installed `pipewire`, `xdg-desktop-portal-wlr`, and `wireplumber`… set up the ENV variables `WAYLAND_DISPLAY` and `XDG_CURRENT_DESKTOP`… set the proper flag in Chromium… but it doesn't seem to work!? I thought it would be dbus "auto-magic", but apparently not. Event if I manually start `pipewire` and `wireplumber`, nothing happens when I try to share my screen, for instance while in a Jitsi Meet meeting. Any advice welcome! … even a good old RTFM, if it comes with a link to get the information from! :-) Regards, -- Tanguy
Re: PipeWire as a PulseAudio replacement (was Re: The Shepherd on Fibers)
Hello Brendan, Brendan Tildesley writes: > Which environment variables are you talking about? I'm running pipewire on > Guix System > > and it seems to work fine. > >> Best, Right, I think I conflated too many different things, basically my use-case was making screensharing work on wlroots-based compositors, but the service that need these env variables (at least WAYLAND_DISPLAY I think) is xdg-desktop-portal-wlr. WirePlumber and PipeWire should be fine by themselves, since they're started by the session D-Bus and thus should have access to it, and shouldn't need anything else. Best, -- Josselin Poiret
Re: PipeWire as a PulseAudio replacement (was Re: The Shepherd on Fibers)
On Sun, 27 Mar 2022 22:55:36 +1100 Brendan Tildesley wrote: > On 27/3/22 01:24, Josselin Poiret wrote: > > > Hello Brendan, > > > > Brendan Tildesley writes: > >> I would like to replace pulseaudio with pipewire as the default in > >> %desktop-services, the only hurdle is how to launch the user > >> daemons in all the different desktop configurations one might use. > >> Other distros use systemd's socket activation to magically launch > >> pipewire. > >> > >> Otherwise XDG autostarts or some kind of guix home service could > >> launch it? > > The main issue for PipeWire is that it really doesn't support > > running a single system-wide daemon as we're doing with PulseAudio, > > so you would need to launch it through XDG autostart, guix home or > > something similar like you said! > > I think this is not right. Pulseaudio and Pipewire are both "user > services". The Guix (pulseaudio-service-type) merely sets up some > global configuration files and evironment variables. Actually these > could be a part of the user profile if one really wanted. The only > parts that actually need to be done by root is the udev service and > the alsa service setting two configuration files. > > Pulseaudio is automatically started by applications that make use of > it via DBUS. I don't understand how that works, but for whatever > reason Pipewire's official way to launch is via systemd sockets. > Systems without systemd use XDG autolaunch with a trivial script like > this one: > https://gitweb.gentoo.org/repo/gentoo.git/tree/media-video/pipewire/files/gentoo-pipewire-launcher.in > > So it is not difficult at all to run Pipewire, just a method must be > chosen. > > > > > One thing that I think is blocking right now is that PipeWire (or > > actually WirePlumber, I don't remember) would need to see some > > environment variables set by other user services eg. session D-Bus > > or even the compositor, which isn't possible yet with Shepherd. > > Which environment variables are you talking about? I'm running > pipewire on Guix System > > and it seems to work fine. > > > Best, This might be of interest. https://freeradical.zone/@craftyguy/107981283066383952 https://sr.ht/~craftyguy/superd
Re: PipeWire as a PulseAudio replacement (was Re: The Shepherd on Fibers)
On 27/3/22 01:24, Josselin Poiret wrote: Hello Brendan, Brendan Tildesley writes: I would like to replace pulseaudio with pipewire as the default in %desktop-services, the only hurdle is how to launch the user daemons in all the different desktop configurations one might use. Other distros use systemd's socket activation to magically launch pipewire. Otherwise XDG autostarts or some kind of guix home service could launch it? The main issue for PipeWire is that it really doesn't support running a single system-wide daemon as we're doing with PulseAudio, so you would need to launch it through XDG autostart, guix home or something similar like you said! I think this is not right. Pulseaudio and Pipewire are both "user services". The Guix (pulseaudio-service-type) merely sets up some global configuration files and evironment variables. Actually these could be a part of the user profile if one really wanted. The only parts that actually need to be done by root is the udev service and the alsa service setting two configuration files. Pulseaudio is automatically started by applications that make use of it via DBUS. I don't understand how that works, but for whatever reason Pipewire's official way to launch is via systemd sockets. Systems without systemd use XDG autolaunch with a trivial script like this one: https://gitweb.gentoo.org/repo/gentoo.git/tree/media-video/pipewire/files/gentoo-pipewire-launcher.in So it is not difficult at all to run Pipewire, just a method must be chosen. One thing that I think is blocking right now is that PipeWire (or actually WirePlumber, I don't remember) would need to see some environment variables set by other user services eg. session D-Bus or even the compositor, which isn't possible yet with Shepherd. Which environment variables are you talking about? I'm running pipewire on Guix System and it seems to work fine. Best,
PipeWire as a PulseAudio replacement (was Re: The Shepherd on Fibers)
Hello Brendan, Brendan Tildesley writes: > I would like to replace pulseaudio with pipewire as the default in > %desktop-services, the only hurdle is how to launch the user daemons in all > the > different desktop configurations one might use. Other distros use systemd's > socket activation to magically launch pipewire. > > Otherwise XDG autostarts or some kind of guix home service could > launch it? The main issue for PipeWire is that it really doesn't support running a single system-wide daemon as we're doing with PulseAudio, so you would need to launch it through XDG autostart, guix home or something similar like you said! One thing that I think is blocking right now is that PipeWire (or actually WirePlumber, I don't remember) would need to see some environment variables set by other user services eg. session D-Bus or even the compositor, which isn't possible yet with Shepherd. Best, -- Josselin Poiret