unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* The Shepherd on Fibers
@ 2022-03-24  6:48 Brendan Tildesley
  2022-03-26 15:24 ` PipeWire as a PulseAudio replacement (was Re: The Shepherd on Fibers) Josselin Poiret
  0 siblings, 1 reply; 8+ messages in thread
From: Brendan Tildesley @ 2022-03-24  6:48 UTC (permalink / raw)
  To: ludo@gnu.org, guix-devel@gnu.org

I think you are doing amazing work! I hope socket activation can be added
because it may be helpful for launching the user services for pipewire, but I've
never really understood how it actually works.

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?


^ permalink raw reply	[flat|nested] 8+ messages in thread

* PipeWire as a PulseAudio replacement (was Re: The Shepherd on Fibers)
  2022-03-24  6:48 The Shepherd on Fibers Brendan Tildesley
@ 2022-03-26 15:24 ` Josselin Poiret
  2022-03-27 11:55   ` Brendan Tildesley
  0 siblings, 1 reply; 8+ messages in thread
From: Josselin Poiret @ 2022-03-26 15:24 UTC (permalink / raw)
  To: Brendan Tildesley, ludo@gnu.org, guix-devel@gnu.org

Hello Brendan,

Brendan Tildesley <mail@brendan.scot> 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


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: PipeWire as a PulseAudio replacement (was Re: The Shepherd on Fibers)
  2022-03-26 15:24 ` PipeWire as a PulseAudio replacement (was Re: The Shepherd on Fibers) Josselin Poiret
@ 2022-03-27 11:55   ` Brendan Tildesley
  2022-03-27 21:25     ` raingloom
  2022-03-29 13:22     ` Josselin Poiret
  0 siblings, 2 replies; 8+ messages in thread
From: Brendan Tildesley @ 2022-03-27 11:55 UTC (permalink / raw)
  To: Josselin Poiret, ludo@gnu.org, guix-devel@gnu.org

[-- Attachment #1: Type: text/plain, Size: 1956 bytes --]

On 27/3/22 01:24, Josselin Poiret wrote:

> Hello Brendan,
>
> Brendan Tildesley<mail@brendan.scot>  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,

[-- Attachment #2: Type: text/html, Size: 2930 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: PipeWire as a PulseAudio replacement (was Re: The Shepherd on Fibers)
  2022-03-27 11:55   ` Brendan Tildesley
@ 2022-03-27 21:25     ` raingloom
  2022-03-29 13:22     ` Josselin Poiret
  1 sibling, 0 replies; 8+ messages in thread
From: raingloom @ 2022-03-27 21:25 UTC (permalink / raw)
  To: guix-devel; +Cc: mail

On Sun, 27 Mar 2022 22:55:36 +1100
Brendan Tildesley <mail@brendan.scot> wrote:

> On 27/3/22 01:24, Josselin Poiret wrote:
> 
> > Hello Brendan,
> >
> > Brendan Tildesley<mail@brendan.scot>  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


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: PipeWire as a PulseAudio replacement (was Re: The Shepherd on Fibers)
  2022-03-27 11:55   ` Brendan Tildesley
  2022-03-27 21:25     ` raingloom
@ 2022-03-29 13:22     ` Josselin Poiret
  2022-04-28  9:27       ` Tanguy LE CARROUR
  1 sibling, 1 reply; 8+ messages in thread
From: Josselin Poiret @ 2022-03-29 13:22 UTC (permalink / raw)
  To: mail, ludo@gnu.org, guix-devel@gnu.org

Hello Brendan,

Brendan Tildesley <mail@brendan.scot> 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


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: PipeWire as a PulseAudio replacement (was Re: The Shepherd on Fibers)
  2022-03-29 13:22     ` Josselin Poiret
@ 2022-04-28  9:27       ` Tanguy LE CARROUR
  2022-04-28 12:48         ` Josselin Poiret
  0 siblings, 1 reply; 8+ messages in thread
From: Tanguy LE CARROUR @ 2022-04-28  9:27 UTC (permalink / raw)
  To: Josselin Poiret, guix-devel, mail

Hi Josselin, hi Brendan, hi Guix,


Quoting Josselin Poiret (2022-03-29 15:22:35)
> Brendan Tildesley <mail@brendan.scot> 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


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: PipeWire as a PulseAudio replacement (was Re: The Shepherd on Fibers)
  2022-04-28  9:27       ` Tanguy LE CARROUR
@ 2022-04-28 12:48         ` Josselin Poiret
  2022-04-29  7:28           ` Tanguy LE CARROUR
  0 siblings, 1 reply; 8+ messages in thread
From: Josselin Poiret @ 2022-04-28 12:48 UTC (permalink / raw)
  To: Tanguy LE CARROUR, guix-devel, mail

Hello Tanguy,

Tanguy LE CARROUR <tanguy@bioneland.org> 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


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: PipeWire as a PulseAudio replacement (was Re: The Shepherd on Fibers)
  2022-04-28 12:48         ` Josselin Poiret
@ 2022-04-29  7:28           ` Tanguy LE CARROUR
  0 siblings, 0 replies; 8+ messages in thread
From: Tanguy LE CARROUR @ 2022-04-29  7:28 UTC (permalink / raw)
  To: Josselin Poiret, guix-devel, mail

Hi Josselin,


Quoting Josselin Poiret (2022-04-28 14:48:55)
> Tanguy LE CARROUR <tanguy@bioneland.org> 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


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2022-04-29  7:34 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-24  6:48 The Shepherd on Fibers Brendan Tildesley
2022-03-26 15:24 ` PipeWire as a PulseAudio replacement (was Re: The Shepherd on Fibers) Josselin Poiret
2022-03-27 11:55   ` Brendan Tildesley
2022-03-27 21:25     ` raingloom
2022-03-29 13:22     ` Josselin Poiret
2022-04-28  9:27       ` Tanguy LE CARROUR
2022-04-28 12:48         ` Josselin Poiret
2022-04-29  7:28           ` Tanguy LE CARROUR

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).