~ruther/guix-local

7080aaf08102ec4c9c976582d6adfa0c14e6c640 — Janneke Nieuwenhuizen 1 year, 4 months ago 9525164
gnu: home: home-pipewire: Add extra-content to configuration.

This allows for setting the default sound card/device, e.g.:

    pcm.!default {type hw card 0 device 2}
    ctl.!default {type hw card 0 device 2}

* gnu/home/services/sound.scm (home-pipewire-configuration)[extra-content]:
New field.
* gnu/home/services/sound.scm (home-pipewire-asoundrc): Append it to
"asoundrc".
* doc/guix.texi (Sound Home Services): Update accordingly.

Change-Id: I6ecebaaab41cd7313b16a5f365c21789db65664e
2 files changed, 11 insertions(+), 3 deletions(-)

M doc/guix.texi
M gnu/home/services/sound.scm
M doc/guix.texi => doc/guix.texi +3 -0
@@ 48150,6 48150,9 @@ The WirePlumber package to use.
@item @code{enable-pulseaudio?} (default: @code{#t}) (type: boolean)
When true, enable PipeWire's PulseAudio emulation support, allowing
PulseAudio clients to use PipeWire transparently.

@item @code{extra-content} (default: @code{""}) (type: string)
Extra content to add to the end of @file{~/.config/alsa/asoundrc}.
@end table
@end deftp


M gnu/home/services/sound.scm => gnu/home/services/sound.scm +8 -3
@@ 1,6 1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2023 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2023 Brian Cully <bjc@spork.org>
;;; Copyright © 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 49,7 50,10 @@
  (enable-pulseaudio?
   (boolean #t)
   "When true, enable PipeWire's PulseAudio emulation support, allowing
PulseAudio clients to use PipeWire transparently."))
PulseAudio clients to use PipeWire transparently.")
  (extra-content
   (string "")
   "Extra content to add to the end of @file{~/.config/alsa/asoundrc}."))

(define (home-pipewire-shepherd-service config)
  (shepherd-service


@@ 93,7 97,7 @@ PulseAudio clients to use PipeWire transparently."))

(define (home-pipewire-asoundrc config)
  (match-record config <home-pipewire-configuration>
                (pipewire)
                (pipewire extra-content)
    (mixed-text-file
     "asoundrc"
     "<" pipewire "/share/alsa/alsa.conf.d/50-pipewire.conf>\n"


@@ 103,7 107,8 @@ PulseAudio clients to use PipeWire transparently."))
     "}\n"
     "ctl_type.pipewire {\n"
     "  lib \"" pipewire "/lib/alsa-lib/libasound_module_ctl_pipewire.so\"\n"
     "}\n")))
     "}\n"
     extra-content)))

(define home-pipewire-disable-pulseaudio-auto-start
  (plain-file "client.conf" "autospawn = no"))