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.
This commit is contained in:
Ricardo Wurmus 2023-02-28 23:14:23 +01:00
parent 3ad3006c23
commit d7f9eb0e87
No known key found for this signature in database
GPG Key ID: 197A5888235FACAC
2 changed files with 36 additions and 6 deletions

View File

@ -23185,10 +23185,9 @@ This is the type of the service that runs the
@uref{https://www.sugarlabs.org, Sugar desktop environment}. Its value @uref{https://www.sugarlabs.org, Sugar desktop environment}. Its value
is a @code{sugar-desktop-configuration} object (see below). is a @code{sugar-desktop-configuration} object (see below).
This service adds the @code{sugar} package to the system profile. It This service adds the @code{sugar} package to the system profile, as
does not install any Sugar Activity. Add packages providing activities well as any selected Sugar activities. By default it only includes a
to the list of packages to be installed globally to make them available minimal set of activities.
to users of the Sugar desktop environment.
@end defvar @end defvar
@deftp {Data Type} sugar-desktop-configuration @deftp {Data Type} sugar-desktop-configuration
@ -23197,9 +23196,33 @@ Configuration record for the Sugar desktop environment.
@table @asis @table @asis
@item @code{sugar} (default: @code{sugar}) @item @code{sugar} (default: @code{sugar})
The Sugar package to use. 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 table
@end deftp @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 @defvar enlightenment-desktop-service-type
Return a service that adds the @code{enlightenment} package to the system Return a service that adds the @code{enlightenment} package to the system
profile, and extends dbus with actions from @code{efl}. profile, and extends dbus with actions from @code{efl}.

View File

@ -1530,7 +1530,11 @@ rules."
(define-record-type* <sugar-desktop-configuration> sugar-desktop-configuration (define-record-type* <sugar-desktop-configuration> sugar-desktop-configuration
make-sugar-desktop-configuration make-sugar-desktop-configuration
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) (define (sugar-polkit-settings config)
"Return the list of packages that provide polkit actions and rules." "Return the list of packages that provide polkit actions and rules."
@ -1543,7 +1547,10 @@ rules."
(list (service-extension polkit-service-type (list (service-extension polkit-service-type
sugar-polkit-settings) sugar-polkit-settings)
(service-extension profile-service-type (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)) (default-value (sugar-desktop-configuration))
(description "Run the Sugar desktop environment."))) (description "Run the Sugar desktop environment.")))