44 lines
1.9 KiB
Scheme
44 lines
1.9 KiB
Scheme
|
(define-module (ryan-services spotify)
|
||
|
#:use-module (gnu packages)
|
||
|
#:use-module (gnu packages rust-apps)
|
||
|
#:use-module (gnu services)
|
||
|
#:use-module (gnu services configuration)
|
||
|
#:use-module (gnu home services)
|
||
|
#:use-module (gnu home services shepherd)
|
||
|
#:use-module (guix gexp))
|
||
|
|
||
|
(define (home-spotifyd-profile-service config)
|
||
|
(map specification->package
|
||
|
(list "spotifyd")))
|
||
|
|
||
|
(define (home-spotifyd-shepherd-service config)
|
||
|
;; spotifyd daemon
|
||
|
(list (shepherd-service
|
||
|
(requirement '(pipewire))
|
||
|
(provision '(spotifyd))
|
||
|
(stop #~(make-kill-destructor))
|
||
|
(start #~(make-forkexec-constructor
|
||
|
(list #$(file-append spotifyd "/bin/spotifyd")
|
||
|
"--volume-normalisation"
|
||
|
"-B320"
|
||
|
(format #f "--device-name=~a" (gethostname))
|
||
|
"--device-type=computer"
|
||
|
"--no-daemon")
|
||
|
#:log-file (string-append
|
||
|
(or (getenv "XDG_LOG_HOME")
|
||
|
(format #f "~a/.local/var/log"
|
||
|
(getenv "HOME")))
|
||
|
"/spotifyd.log"))))))
|
||
|
|
||
|
(define-public home-spotifyd-service-type
|
||
|
(service-type (name 'home-spotifyd)
|
||
|
(extensions
|
||
|
(list (service-extension
|
||
|
home-profile-service-type
|
||
|
home-spotifyd-profile-service)
|
||
|
(service-extension
|
||
|
home-shepherd-service-type
|
||
|
home-spotifyd-shepherd-service)))
|
||
|
(default-value #f)
|
||
|
(description "Provides spotifyd daemon in the background")))
|