diff options
author | Ricardo Wurmus <rekado@elephly.net> | 2023-02-28 23:14:23 +0100 |
---|---|---|
committer | Ricardo Wurmus <rekado@elephly.net> | 2023-02-28 23:17:22 +0100 |
commit | d7f9eb0e876257b28672057bea3561fef2fe5c0f (patch) | |
tree | a0cb6378261e8e273a2701361ce5dc774b72e730 | |
parent | 3ad3006c23b594cb47addbf175243f7f493a1922 (diff) |
gnu: sugar-desktop-configuration: Allow specification of activities.
* gnu/services/desktop.scm (<sugar-desktop-configuration>): Add new fields for
activities and gobject-introspection.
(sugar-gobject-introspection, sugar-activities): New procedures.
(sugar-desktop-service-type): Install packages for activities and
gobject-introspection alongside the sugar package.
* doc/guix.texi (Desktop Services): Document changes.
-rw-r--r-- | doc/guix.texi | 31 | ||||
-rw-r--r-- | gnu/services/desktop.scm | 11 |
2 files changed, 36 insertions, 6 deletions
diff --git a/doc/guix.texi b/doc/guix.texi index 73e3d1aa92..6ff525d0ff 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -23185,10 +23185,9 @@ 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. +This service adds the @code{sugar} package to the system profile, as +well as any selected Sugar activities. By default it only includes a +minimal set of activities. @end defvar @deftp {Data Type} sugar-desktop-configuration @@ -23197,9 +23196,33 @@ Configuration record for the Sugar desktop environment. @table @asis @item @code{sugar} (default: @code{sugar}) The Sugar package to use. +@item @code{gobject-introspection} (default: @code{gobject-introspection}) +The @code{gobject-introspection} package to use. This package is used +to access libraries installed as dependencies of Sugar activities. +@item @code{activities} (default: @code{(list sugar-help-activity)}) +A list of Sugar activities to install. @end table @end deftp +The following example configures the Sugar desktop environment with a +number of useful activities: + +@lisp +(use-modules (gnu)) +(use-package-modules sugar) +(use-service-modules desktop) +(operating-system + ... + (services (cons* (service sugar-desktop-service-type + (sugar-desktop-configuration + (activities (list sugar-browse-activity + sugar-help-activity + sugar-jukebox-activity + sugar-typing-turtle-activity)))) + %desktop-services)) + ...) +@end lisp + @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 42f35e9a75..4724294433 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -1530,7 +1530,11 @@ rules." (define-record-type* <sugar-desktop-configuration> sugar-desktop-configuration make-sugar-desktop-configuration sugar-desktop-configuration? - (sugar sugar-package (default sugar))) + (sugar sugar-package (default sugar)) + (gobject-introspection + sugar-gobject-introspection (default gobject-introspection)) + (activities + sugar-activities (default (list sugar-help-activity)))) (define (sugar-polkit-settings config) "Return the list of packages that provide polkit actions and rules." @@ -1543,7 +1547,10 @@ rules." (list (service-extension polkit-service-type sugar-polkit-settings) (service-extension profile-service-type - (compose list sugar-package)))) + (lambda (config) + (cons* (sugar-package config) + (sugar-gobject-introspection config) + (sugar-activities config)))))) (default-value (sugar-desktop-configuration)) (description "Run the Sugar desktop environment."))) |