summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorLiliana Marie Prikler <liliana.prikler@gmail.com>2026-02-04 10:20:55 +0100
committerLiliana Marie Prikler <liliana.prikler@gmail.com>2026-03-10 11:23:30 +0100
commitde8b977d4e62bca47f696f7f1debf69a3b9078d4 (patch)
treedcdc32be9d54d933c1c421537d4ca4a9f4929def /doc
parent06c6c3ede530585f643e09afa7259498299cef78 (diff)
services: Generalize alsa-configuration.
* gnu/packages/sound.scm (alsa-pcm-configuration, alsa-ctl-configuration): New configuration records. (serialize-alsa-pcm-configuration, serialize-alsa-ctl-configuration): New variables. (<alsa-configuration>): Remove alsa-plugins and pulseaudio?. Add default-pcm and default-ctl. Rename extra-options to options. (alsa-config-file): Adjust accordingly. (alsa-servcice-type): Add compose and extend. (<pulseaudio-configuration>): Add alsa-lib. (pulseaudio-alsa-configuration): New procedure. (pulseaudio-service-type): Extend alsa-servcice-type.
Diffstat (limited to 'doc')
-rw-r--r--doc/guix.texi58
1 files changed, 46 insertions, 12 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index 44873afa2a4..b0ab0c1db5b 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -27878,24 +27878,47 @@ record as in this example:
See below for details about @code{alsa-configuration}.
@end defvar
-@deftp {Data Type} alsa-configuration
-Data type representing the configuration for @code{alsa-service}.
+@deftp {Data Type} alsa-pcm-configuration
+Data type representing an ALSA @code{pcm} block.
@table @asis
-@item @code{alsa-plugins} (default: @var{alsa-plugins})
-@code{alsa-plugins} package to use.
+@item @code{alsa-pcm-configuration-type} (type: symbol)
+The type of the PCM (if not builtin to alsa, should be introduced via a ``pcm_type'' block).
+@item @code{alsa-pcm-configuration-hint} (type: maybe-string)
+A human-readable description of the PCM.
-@item @code{pulseaudio?} (default: @var{#t})
-Whether ALSA applications should transparently be made to use the
-@uref{https://www.pulseaudio.org/, PulseAudio} sound server.
+@item @code{alsa-pcm-configuration-configuration} (type: list-of-string)
+Raw additional configuration.
+Each item will be printed on a separate line.
+@end table
+@end deftp
-Using PulseAudio allows you to run several sound-producing applications
-at the same time and to individual control them @i{via}
-@command{pavucontrol}, among other things.
+@deftp {Data Type} alsa-ctl-configuration
+Data type representing an ALSA @code{ctl} block.
-@item @code{extra-options} (default: @var{""})
-String to append to the @file{/etc/asound.conf} file.
+@table @asis
+@item @code{alsa-pcm-configuration-type} (type: symbol)
+The type of the ctl (if not builtin to alsa, should be introduced via a ``ctl_type'' block).
+@item @code{alsa-pcm-configuration-configuration} (type: list-of-string)
+Raw additional configuration.
+Each item will be printed on a separate line.
+@end table
+@end deftp
+
+@deftp {Data Type} alsa-configuration
+Data type representing the configuration for @code{alsa-service}.
+
+@table @asis
+@item @code{default-pcm} (default: #f)
+The configuration to use for the default @code{pcm}.
+
+@item @code{default-ctl} (default: #f)
+The configuration to use for the default @code{ctl}.
+
+@item @code{options} (default: '()) (type: list-of-strings)
+Additional configuration strings to
+append to the @file{/etc/asound.conf} file.
@end table
@end deftp
@@ -27934,6 +27957,12 @@ pcm.!default @{
See @uref{https://www.alsa-project.org/main/index.php/Asoundrc} for the
details.
+Services can likewise extend alsa-service-type to add options and
+configure the default PCM and CTL. One service, which transparently
+extends alsa-service-type to make use of the
+@uref{https://www.pulseaudio.org/, PulseAudio} sound server,
+is the pulseaudio-service-type, shown below.
+
@defvar pulseaudio-service-type
This is the type for the @uref{https://www.pulseaudio.org/, PulseAudio}
sound server. It exists to allow system overrides of the default settings
@@ -27985,6 +28014,11 @@ commands, refer to @command{man pulse-cli-syntax}.
@item @code{system-script-file} (default: @code{(file-append pulseaudio "/etc/pulse/system.pa")})
Script file to use as @file{system.pa}.
+
+@item @code{alsa-lib}
+The alsa-lib package to use for defining the “pulse” pcm_type
+and ctl_type.
+
@end table
The example below sets the default PulseAudio card profile, the default