summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--yellowsquid/services/pipewire.scm27
1 files changed, 26 insertions, 1 deletions
diff --git a/yellowsquid/services/pipewire.scm b/yellowsquid/services/pipewire.scm
index 222df28..b899e0c 100644
--- a/yellowsquid/services/pipewire.scm
+++ b/yellowsquid/services/pipewire.scm
@@ -3,10 +3,35 @@
#:use-module (gnu home services shepherd)
#:use-module (gnu packages linux)
#:use-module (gnu services)
+ #:use-module (gnu services dbus)
+ #:use-module (gnu system shadow)
#:use-module (guix gexp)
- #:export (home-pipewire-service-type
+ #:use-module (yellowsquid packages rtkit)
+ #:export (rtkit-service-type
+ home-pipewire-service-type
home-wireplumber-service-type))
+(define %rtkit-accounts
+ (list (user-group (name "rtkit") (system? #t))
+ (user-account
+ (name "rtkit")
+ (group "rtkit")
+ (system? #t)
+ (comment "RealtimeKit daemon user")
+ (home-directory "/var/empty")
+ (shell "/run/current-system/profile/sbin/nologin"))))
+
+(define rtkit-service-type
+ (service-type (name 'rtkit)
+ (extensions
+ (list (service-extension dbus-root-service-type
+ list)
+ (service-extension account-service-type
+ (const %rtkit-accounts))))
+ (default-value rtkit)
+ (description "Realtime Kit scheduling policy daemon.")))
+
+;; TODO: add dependency on rtkit-service-type.
(define (home-pipewire-shepherd-service pipewire)
"Return a shepherd service for PipeWire."
(list (shepherd-service