guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: PipeWire as a PulseAudio replacement (was Re: The Shepherd on Fibers


From: Brendan Tildesley
Subject: Re: PipeWire as a PulseAudio replacement (was Re: The Shepherd on Fibers)
Date: Sun, 27 Mar 2022 22:55:36 +1100


    
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,

reply via email to

[Prev in Thread] Current Thread [Next in Thread]