(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")))