aboutsummaryrefslogtreecommitdiffstats
path: root/oni/home/services
diff options
context:
space:
mode:
authorGravatar Tom Willemse2023-03-07 23:51:42 -0800
committerGravatar Tom Willemse2023-03-07 23:51:42 -0800
commit20f5597d394ae7dd1764e184d084257652a7ca10 (patch)
tree29c5eb06821298000f8b52c872d506461e113444 /oni/home/services
parent82ae1b59a6f346e43ee07f23f405a9cdf02030a0 (diff)
downloadnew-dotfiles-20f5597d394ae7dd1764e184d084257652a7ca10.tar.gz
new-dotfiles-20f5597d394ae7dd1764e184d084257652a7ca10.zip
Add service for notifications for MPD
Diffstat (limited to 'oni/home/services')
-rw-r--r--oni/home/services/mpd.scm44
1 files changed, 43 insertions, 1 deletions
diff --git a/oni/home/services/mpd.scm b/oni/home/services/mpd.scm
index c64fef2..992a6c2 100644
--- a/oni/home/services/mpd.scm
+++ b/oni/home/services/mpd.scm
@@ -9,13 +9,18 @@
#:use-module (srfi srfi-1)
#:use-module (oop goops)
#:use-module (ice-9 string-fun)
+ #:use-module ((oni packages mpd-notify)
+ #:select (mpd-notify))
#:export (home-mpd-service-type
home-mpd-configuration
<home-mpd-audio-output>
home-mpc-update-service-type
- home-mpc-update-configuration))
+ home-mpc-update-configuration
+
+ home-mpd-notify-service-type
+ home-mpd-notify-configuration))
(define (serialize-boolean field value)
"")
@@ -161,3 +166,40 @@
(compose identity)
(default-value (home-mpc-update-configuration))
(description "Install and configure mpc update.")))
+
+(define-configuration home-mpd-notify-configuration
+ (package
+ (package mpd-notify)
+ "Package to use for setting MPD notify")
+ (auto-start?
+ (boolean #t)
+ "Should mpd notify be started automatically?"))
+
+(define (add-mpd-notify-packages config)
+ (list (home-mpd-notify-configuration-package config)))
+
+(define (home-mpd-notify-shepherd-service config)
+ (list
+ (shepherd-service
+ (documentation "Show notifications for MPD player state changes")
+ (provision '(mpd-notify))
+ (auto-start? (home-mpd-notify-configuration-auto-start? config))
+ (start
+ #~(make-forkexec-constructor
+ (list #$(file-append (home-mpd-notify-configuration-package config) "/bin/mpd-notify"))
+ #:log-file (format #f "~a/.local/var/log/mpd-notify.log" (getenv "HOME"))))
+ (stop #~(make-kill-destructor)))))
+
+(define home-mpd-notify-service-type
+ (service-type
+ (name 'home-mpd-notify)
+ (extensions
+ (list (service-extension
+ home-profile-service-type
+ add-mpd-notify-packages)
+ (service-extension
+ home-shepherd-service-type
+ home-mpd-notify-shepherd-service)))
+ (compose identity)
+ (default-value (home-mpd-notify-configuration))
+ (description "Install and configure mpd notifications.")))