guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

02/05: services: Add sugar-desktop-service-type.


From: guix-commits
Subject: 02/05: services: Add sugar-desktop-service-type.
Date: Tue, 28 Feb 2023 12:20:22 -0500 (EST)

rekado pushed a commit to branch master
in repository guix.

commit 6118c1e2289d9b9ab24b9d82891628f519ae3d01
Author: Ricardo Wurmus <rekado@elephly.net>
AuthorDate: Tue Feb 28 18:11:08 2023 +0100

    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.
---
 doc/guix.texi            | 22 +++++++++++++++++++++-
 gnu/services/desktop.scm | 32 +++++++++++++++++++++++++++++++-
 2 files changed, 52 insertions(+), 2 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index a7ef00f421..73e3d1aa92 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -30,7 +30,7 @@ Copyright @copyright{} 2015, 2016 Mathieu Lirzin@*
 Copyright @copyright{} 2014 Pierre-Antoine Rault@*
 Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@*
 Copyright @copyright{} 2015, 2016, 2017, 2019, 2020, 2021, 2023 Leo Famulari@*
-Copyright @copyright{} 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Ricardo 
Wurmus@*
+Copyright @copyright{} 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 
Ricardo Wurmus@*
 Copyright @copyright{} 2016 Ben Woodcroft@*
 Copyright @copyright{} 2016, 2017, 2018, 2021 Chris Marusich@*
 Copyright @copyright{} 2016, 2017, 2018, 2019, 2020, 2021, 2022 Efraim 
Flashner@*
@@ -23180,6 +23180,26 @@ The LXQT package to use.
 @end table
 @end deftp
 
+@defvar sugar-desktop-service-type
+This is the type of the service that runs the
+@uref{https://www.sugarlabs.org, Sugar desktop environment}.  Its value
+is a @code{sugar-desktop-configuration} object (see below).
+
+This service adds the @code{sugar} package to the system profile.  It
+does not install any Sugar Activity.  Add packages providing activities
+to the list of packages to be installed globally to make them available
+to users of the Sugar desktop environment.
+@end defvar
+
+@deftp {Data Type} sugar-desktop-configuration
+Configuration record for the Sugar desktop environment.
+
+@table @asis
+@item @code{sugar} (default: @code{sugar})
+The Sugar package to use.
+@end table
+@end deftp
+
 @defvar enlightenment-desktop-service-type
 Return a service that adds the @code{enlightenment} package to the system
 profile, and extends dbus with actions from @code{efl}.
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
@@ -1518,6 +1523,31 @@ rules."
    (description "Run LXQt desktop environment.")))
 
 
+;;;
+;;; 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
 ;;;



reply via email to

[Prev in Thread] Current Thread [Next in Thread]