Subject: bug#68512: Qutebrowser 3, no sound from pipewire-only system

From: Sergey Trofimov <[email-masked]>
Date: Fri, 26 Jan 2024 06:56:01 +0100

chris <[email-masked]> writes:

> Sergey,
>
> Yesterday after reporting back here, I found that I was able to 
> change the commands used by sway from this
> ```
> exec_always killall -wqr "(pipewire|wireplumber)" \
>   || sleep 1 && ((pipewire &); sleep 2 && (wireplumber &))
> ```
>
> To this
> ```
> exec sleep 2 && pipewire
> exec sleep 4 && wireplumber
> ```

Ugh, why don't you use home-pipewire-service-type?

>
> In order to script-generate the asoundrc file, I wish to use 
> pipewire's store
> directory path inside a scheme function. WOuld you teach me how 
> to do this? eg,
> `$(guix build pipewire) #
> /gnu/store/8572wxb5138hanhvn1lbfdm1kicxsd2k-pipewire-1.0.0`
>
> No success trying various things from this thread 
> https://www.mail-archive.com/[email-masked]/msg11871.html
>

Packages are file-like, i.e. replaced with their location when 
used in g-exp.
Here is an example how to define the configuration, I've adapted 
it from gnu/home/services/home.scm

--8<---------------cut here---------------start------------->8---
(simple-service 'pipewire-configs 
home-xdg-configuration-files-service-type
  `(("alsa/asoundrc")
    ,(mixed-text-file
        "asoundrc"
        "<" pipewire "/share/alsa/alsa.conf.d/50-pipewire.conf>\n"
        "<" pipewire 
        "/share/alsa/alsa.conf.d/99-pipewire-default.conf>\n"
        "pcm_type.pipewire {\n"
        "  lib \"" pipewire 
        "/lib/alsa-lib/libasound_module_pcm_pipewire.so\"\n"
        "}\n"
        "ctl_type.pipewire {\n"
        "  lib \"" pipewire 
        "/lib/alsa-lib/libasound_module_ctl_pipewire.so\"\n"
        "}\n")))
--8<---------------cut here---------------end--------------->8---