summaryrefslogtreecommitdiff
path: root/dthompson/home/pipewire.scm
diff options
context:
space:
mode:
Diffstat (limited to 'dthompson/home/pipewire.scm')
-rw-r--r--dthompson/home/pipewire.scm99
1 files changed, 5 insertions, 94 deletions
diff --git a/dthompson/home/pipewire.scm b/dthompson/home/pipewire.scm
index 9faa64c..7faa000 100644
--- a/dthompson/home/pipewire.scm
+++ b/dthompson/home/pipewire.scm
@@ -9,100 +9,11 @@
#:use-module (gnu services configuration)
#:use-module (gnu home services)
#:use-module (gnu home services shepherd)
- #:use-module (guix gexp))
+ #:use-module (guix gexp)
+ #:export (package-with-pw-jack
+ package-with-pw-wrapper))
-(define (home-pipewire-profile-service config)
- (map specification->package
- (list "pipewire"
- "wireplumber")))
-
-(define (home-pipewire-shepherd-service config)
- (list
- ;; Start Pipewire daemon
- (shepherd-service
- (requirement '(dbus))
- (provision '(pipewire))
- (stop #~(make-kill-destructor))
- (start #~(make-forkexec-constructor
- (list #$(file-append pipewire "/bin/pipewire"))
- #:log-file (string-append
- (or (getenv "XDG_LOG_HOME")
- (format #f "~a/.local/var/log"
- (getenv "HOME")))
- "/pipewire.log")
- #:environment-variables
- (append (list "DISABLE_RTKIT=1")
- (default-environment-variables)))))
- ;; Start Pipewire PulseAudio module
- (shepherd-service
- (requirement '(pipewire))
- (provision '(pipewire-pulse))
- (stop #~(make-kill-destructor))
- (start #~(make-forkexec-constructor
- (list #$(file-append pipewire "/bin/pipewire-pulse"))
- #:log-file (string-append
- (or (getenv "XDG_LOG_HOME")
- (format #f "~a/.local/var/log"
- (getenv "HOME")))
- "/pipewire-pulse.log")
- #:environment-variables
- (append (list "DISABLE_RTKIT=1")
- (default-environment-variables)))))
- ;; Start Wireplumber session manager
- (shepherd-service
- (requirement '(pipewire))
- (provision '(wireplumber))
- (stop #~(make-kill-destructor))
- (start #~(make-forkexec-constructor
- (list #$(file-append wireplumber "/bin/wireplumber"))
- #:log-file (string-append
- (or (getenv "XDG_LOG_HOME")
- (format #f "~a/.local/var/log"
- (getenv "HOME")))
- "/wireplumber.log")
- #:environment-variables
- (append (list "DISABLE_RTKIT=1")
- (default-environment-variables)))))))
-
-(define (home-pipewire-xdg-configuration-service config)
- `(("alsa/asoundrc"
- ,(mixed-text-file
- "asoundrc"
- #~(string-append
- "<"
- #$(file-append
- pipewire "/share/alsa/alsa.conf.d/50-pipewire.conf")
- ">\n<"
- #$(file-append
- pipewire "/share/alsa/alsa.conf.d/99-pipewire-default.conf")
- ">\n"
- "
-pcm_type.pipewire {
- lib " #$(file-append pipewire "/lib/alsa-lib/libasound_module_pcm_pipewire.so")
- "
-}
-ctl_type.pipewire {
- lib " #$(file-append pipewire "/lib/alsa-lib/libasound_module_ctl_pipewire.so")
- "
-}
-")))))
-
-(define-public home-pipewire-service-type
- (service-type (name 'home-pipewire)
- (extensions
- (list (service-extension
- home-profile-service-type
- home-pipewire-profile-service)
- (service-extension
- home-shepherd-service-type
- home-pipewire-shepherd-service)
- (service-extension
- home-xdg-configuration-files-service-type
- home-pipewire-xdg-configuration-service)))
- (default-value #f)
- (description "Configures and runs the Pipewire audio system.")))
-
-(define-public (package-with-pw-jack pkg program)
+(define (package-with-pw-jack pkg program)
(package
(name (package-name pkg))
(version (package-version pkg))
@@ -147,7 +58,7 @@ ctl_type.pipewire {
(home-page (package-home-page pkg))
(license (package-license pkg))))
-(define-public (package-with-pw-wrapper pkg program)
+(define* (package-with-pw-wrapper pkg #:optional (program (package-name pkg)))
(package
(name (package-name pkg))
(version (package-version pkg))