summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2022-01-31 15:49:31 -0500
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2022-02-26 09:03:01 -0500
commite680c4086178c03eea58c1e987ea2216653dbd6a (patch)
tree6eea3fab138746df708514c2633bb2c6f3cbfd13
parent60cb647a2807c4ff1ec3eeae589bb985fe7bde28 (diff)
services: pulseaudio: Deploy the configuration files to /etc/pulse.
* gnu/services/sound.scm (pulseaudio-environment) [PULSE_CONFIG, PULSE_CLIENTCONFIG]: Use fixed locations, and move logic to... (pulseaudio-etc): ... this service extension. Guard against producing empty files.
-rw-r--r--gnu/services/sound.scm27
1 files changed, 19 insertions, 8 deletions
diff --git a/gnu/services/sound.scm b/gnu/services/sound.scm
index fca6f13dc5b..8410ba24187 100644
--- a/gnu/services/sound.scm
+++ b/gnu/services/sound.scm
@@ -144,11 +144,11 @@ ctl.!default {
144(define pulseaudio-environment 144(define pulseaudio-environment
145 (match-lambda 145 (match-lambda
146 (($ <pulseaudio-configuration> client-conf daemon-conf default-script-file) 146 (($ <pulseaudio-configuration> client-conf daemon-conf default-script-file)
147 `(("PULSE_CONFIG" . ,(apply mixed-text-file "daemon.conf" 147 ;; These config files kept at a fixed location, so that the following
148 "default-script-file = " default-script-file "\n" 148 ;; environment values are stable and do not require the user to reboot to
149 (map pulseaudio-conf-entry daemon-conf))) 149 ;; effect their PulseAudio configuration changes.
150 ("PULSE_CLIENTCONFIG" . ,(apply mixed-text-file "client.conf" 150 '(("PULSE_CONFIG" . "/etc/pulse/daemon.conf")
151 (map pulseaudio-conf-entry client-conf))))))) 151 ("PULSE_CLIENTCONFIG" . "/etc/pulse/client.conf")))))
152 152
153(define (extra-script-files->file-union extra-script-files) 153(define (extra-script-files->file-union extra-script-files)
154 "Return a G-exp obtained by processing EXTRA-SCRIPT-FILES with FILE-UNION." 154 "Return a G-exp obtained by processing EXTRA-SCRIPT-FILES with FILE-UNION."
@@ -190,8 +190,8 @@ computed-file object~%") file))))
190 190
191(define pulseaudio-etc 191(define pulseaudio-etc
192 (match-lambda 192 (match-lambda
193 (($ <pulseaudio-configuration> _ _ default-script-file extra-script-files 193 (($ <pulseaudio-configuration> client-conf daemon-conf default-script-file
194 system-script-file) 194 extra-script-files system-script-file)
195 `(("pulse" 195 `(("pulse"
196 ,(file-union 196 ,(file-union
197 "pulse" 197 "pulse"
@@ -203,7 +203,18 @@ computed-file object~%") file))))
203 ,@(if (null? extra-script-files) 203 ,@(if (null? extra-script-files)
204 '() 204 '()
205 `(("default.pa.d" ,(extra-script-files->file-union 205 `(("default.pa.d" ,(extra-script-files->file-union
206 extra-script-files))))))))))) 206 extra-script-files))))
207 ,@(if (null? daemon-conf)
208 '()
209 `(("daemon.conf"
210 ,(apply mixed-text-file "daemon.conf"
211 "default-script-file = " default-script-file "\n"
212 (map pulseaudio-conf-entry daemon-conf)))))
213 ,@(if (null? client-conf)
214 '()
215 `(("client.conf"
216 ,(apply mixed-text-file "client.conf"
217 (map pulseaudio-conf-entry client-conf))))))))))))
207 218
208(define pulseaudio-service-type 219(define pulseaudio-service-type
209 (service-type 220 (service-type