summaryrefslogtreecommitdiff
path: root/gnu/services
diff options
context:
space:
mode:
author陈功 <andy@andycbruce.com>2026-03-12 12:47:36 -0700
committerLiliana Marie Prikler <liliana.prikler@gmail.com>2026-03-19 07:37:06 +0100
commitfd9d0b3530485305033cfea37e0dc96f85209011 (patch)
treec7ed77cbdcac1b0b4a82a388be2a89661fafbddc /gnu/services
parent9bfbf735b916253c4601ca74b8d3dca6d90584f2 (diff)
services: dbus: Add rtkit service.
* gnu/services/dbus.scm (rtkit-service-type): New variable. (rtkit-configuration): New record. Change-Id: I5078cb5032824c7799e7d26962911bbc67527562 Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
Diffstat (limited to 'gnu/services')
-rw-r--r--gnu/services/dbus.scm38
1 files changed, 37 insertions, 1 deletions
diff --git a/gnu/services/dbus.scm b/gnu/services/dbus.scm
index 76e04bf2215..40f2c9264ef 100644
--- a/gnu/services/dbus.scm
+++ b/gnu/services/dbus.scm
@@ -29,6 +29,7 @@
#:use-module ((gnu packages glib) #:select (dbus))
#:use-module (gnu packages polkit)
#:use-module (gnu packages admin)
+ #:use-module (gnu packages freedesktop)
#:use-module (guix deprecation)
#:use-module (guix gexp)
#:use-module ((guix packages) #:select (package-name))
@@ -45,7 +46,10 @@
polkit-configuration
polkit-configuration?
polkit-service-type
- polkit-service)) ; deprecated
+ polkit-service ; deprecated
+
+ rtkit-configuration
+ rtkit-service-type))
;;;
;;; D-Bus.
@@ -442,4 +446,36 @@ the capability to suspend the system if the user is logged in locally."
(service polkit-service-type
(polkit-configuration (polkit polkit))))
+(define-record-type* <rtkit-configuration>
+ rtkit-configuration make-rtkit-configuration
+ rtkit-configuration?
+ (rtkit rtkit-configuration-rtkit
+ (default rtkit)))
+
+(define %rtkit-account
+ ;; Account used by rtkit.
+ (user-account
+ (name "rtkit")
+ (group "nogroup")
+ (system? #t)
+ (comment "Realtime kit user")
+ (home-directory "/var/empty")
+ (shell (file-append shadow "/sbin/nologin"))))
+
+(define rtkit-service-type
+ (let ((rtkit-package (compose list rtkit-configuration-rtkit)))
+ (service-type
+ (name 'rtkit)
+ (extensions
+ (list (service-extension
+ polkit-service-type rtkit-package)
+ (service-extension dbus-root-service-type rtkit-package)
+ (service-extension
+ account-service-type
+ (const (list %rtkit-account)))))
+ (default-value (rtkit-configuration))
+ (description
+ "Return a service that sets up D-Bus and PolKit so that the Realtime Kit
+daemon is readily usable."))))
+
;;; dbus.scm ends here