Subject: [bug#63863] [PATCH] gnu: home: Add support for home-pipewire-service

From: Andrew Tropin <[email-masked]>
Date: Tue, 13 Jun 2023 08:39:16 +0400

On 2023-06-12 11:56, Brian Cully wrote:

> Andrew Tropin <[email-masked]> writes:
>>> +(define (home-pipewire-shepherd-service config)
>>> +  (shepherd-service
>>> +   (documentation "PipeWire screen and audio sharing.")
>>
>> The description seems a little bit missleading, while PipeWire 
>> can do
>> screensharing, it's not only or even primary role.
>
> I'm not sure I understand the objection. Would you rather I 
> mention its audio capabilities before screen sharing?

Nope.

> Or would something like "PipeWire media processing" seem to suit it
> better for you?

Yep.

> Truth be told, I find succinctly describing PipeWire for this 
> context to be pretty difficult. It does a lot, and it's all pretty 
> abstract. PipeWire is just plumbing for services people actually 
> care about, and I don't think "PipeWire make media worky" is going 
> to fly 😉.
>

"PipeWire make media worky" would work great! :D jk

Real-time multimedia capturing, processing and playback or low-latency,
graph-based audio and video processing engine or something like that.

>> Thank you for the patch!  You may also want to add pipewire 
>> backend for
>> alsa:
>> https://git.sr.ht/~abcdw/rde/tree/525f8c7f25783c6b8fa55f21c8e62237bc0d4a04/src/rde/features/linux.scm#L100
>
> Thanks for the pointer. I'll try to dig through the documentation 
> to see what I can do. I find the Linux sound ecosystem to be 
> pretty confusing. For instance: I thought ALSA was the backend 
> that PipeWire used on Linux already, so I don't understand how 
> ALSA can also use PipeWire as a backend.
>
> My use for this patch was Wayland-motivated, and everything 
> outside of basic functionality (screen sharing and playing audio 
> from Firefox and MPD) wasn't something I spent much time on — 
> since I really don't know much about it — in the hopes that we 
> could provide a minimum level of service for people and add better 
> support as people needed it as time went on.

Yep, we have similiar use cases in rde and configuration mentioned
earlier serves them quite well.  According to Alsa: I don't have deep
knowledge in this area too, but according to my knowledge pipewire can
be loaded as a shared library and injected into alsa user-facing API to
process requests, so maybe a backend for ALSA-based applications or
middleend for ALSA will be more apropriate name for the pipewire role
here :)

Anyway, without the config above alsamixer doesn't work on my system,
probably with some configuration it's possible to make it work, but
bypassing pipewire, however I think it would be nice to go full
pipewire.

-- 
Best regards,
Andrew Tropin