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.
This commit is contained in:
Ricardo Wurmus 2023-02-28 18:11:08 +01:00
parent 93fb9cb02f
commit 6118c1e228
No known key found for this signature in database
GPG Key ID: 197A5888235FACAC
2 changed files with 52 additions and 2 deletions

View File

@ -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}.

View File

@ -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
@ -1517,6 +1522,31 @@ rules."
(default-value (lxqt-desktop-configuration))
(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