summary refs log tree commit diff
path: root/gnu/services
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2023-02-28 18:11:08 +0100
committerRicardo Wurmus <rekado@elephly.net>2023-02-28 18:12:19 +0100
commit6118c1e2289d9b9ab24b9d82891628f519ae3d01 (patch)
tree8c70bbc27448c60ef9030de876097df3d6274905 /gnu/services
parent93fb9cb02fca94d407d994465644f7db58d2a439 (diff)
downloadguix-6118c1e2289d9b9ab24b9d82891628f519ae3d01.tar.gz
services: Add sugar-desktop-service-type.
* gnu/services/desktop.scm (sugar-desktop-service-type): New variable.
(sugar-polkit-settings, sugar-desktop-configuration,
make-sugar-desktop-configuration, sugar-desktop-configuration?,
sugar-package): New procedures.
(<sugar-desktop-configuration>): New record.
* doc/guix.texi (Desktop Services): Document it.
Diffstat (limited to 'gnu/services')
-rw-r--r--gnu/services/desktop.scm32
1 files changed, 31 insertions, 1 deletions
diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 2034b3d099..42f35e9a75 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -6,7 +6,7 @@
 ;;; Copyright © 2017, 2020, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2017 Nikita <nikita@n0.is>
 ;;; Copyright © 2018, 2020, 2022 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2018, 2023 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017, 2019 Christopher Baines <mail@cbaines.net>
 ;;; Copyright © 2019 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
 ;;; Copyright © 2019 David Wilson <david@daviwil.com>
@@ -59,6 +59,7 @@
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages scanner)
   #:use-module (gnu packages suckless)
+  #:use-module (gnu packages sugar)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages lxqt)
@@ -144,6 +145,10 @@
             lxqt-desktop-configuration?
             lxqt-desktop-service-type
 
+            sugar-desktop-configuration
+            sugar-desktop-configuration?
+            sugar-desktop-service-type
+
             xfce-desktop-configuration
             xfce-desktop-configuration?
             xfce-desktop-service
@@ -1519,6 +1524,31 @@ rules."
 
 
 ;;;
+;;; Sugar desktop service.
+;;;
+
+(define-record-type* <sugar-desktop-configuration> sugar-desktop-configuration
+  make-sugar-desktop-configuration
+  sugar-desktop-configuration?
+  (sugar sugar-package (default sugar)))
+
+(define (sugar-polkit-settings config)
+  "Return the list of packages that provide polkit actions and rules."
+  (list (sugar-package config)))
+
+(define sugar-desktop-service-type
+  (service-type
+   (name 'sugar-desktop)
+   (extensions
+    (list (service-extension polkit-service-type
+                             sugar-polkit-settings)
+          (service-extension profile-service-type
+                             (compose list sugar-package))))
+   (default-value (sugar-desktop-configuration))
+   (description "Run the Sugar desktop environment.")))
+
+
+;;;
 ;;; X11 socket directory service
 ;;;