Archived
1
0
Fork 0

services: Add LXQt desktop service.

* gnu/services/desktop.scm (lxqt-desktop-service-type): New variable.
(<lxqt-desktop-configuration>): New record type.
(lxqt-desktop-configuration?): New procedure.
* doc/guix.texi (Desktop Services): Document this.

Co-authored-by: Oleg Pykhalov <go.wigust@gmail.com>
This commit is contained in:
Reza Alizadeh Majd 2020-10-19 23:58:49 +03:00 committed by Oleg Pykhalov
parent 807353fe14
commit 764d896668
No known key found for this signature in database
GPG key ID: 167F8EA5001AFA9C
2 changed files with 76 additions and 21 deletions

View file

@ -17606,27 +17606,27 @@ field of an @code{operating-system} declaration (@pxref{operating-system
Reference, @code{services}}). Reference, @code{services}}).
Additionally, the @code{gnome-desktop-service-type}, Additionally, the @code{gnome-desktop-service-type},
@code{xfce-desktop-service}, @code{mate-desktop-service-type} and @code{xfce-desktop-service}, @code{mate-desktop-service-type},
@code{enlightenment-desktop-service-type} procedures can add GNOME, Xfce, MATE @code{lxqt-desktop-service-type} and @code{enlightenment-desktop-service-type}
and/or Enlightenment to a system. To ``add GNOME'' means that system-level procedures can add GNOME, Xfce, MATE and/or Enlightenment to a system. To
services like the backlight adjustment helpers and the power management ``add GNOME'' means that system-level services like the backlight adjustment
utilities are added to the system, extending @code{polkit} and @code{dbus} helpers and the power management utilities are added to the system, extending
appropriately, allowing GNOME to operate with elevated privileges on a @code{polkit} and @code{dbus} appropriately, allowing GNOME to operate with
limited number of special-purpose system interfaces. Additionally, elevated privileges on a limited number of special-purpose system interfaces.
adding a service made by @code{gnome-desktop-service-type} adds the GNOME Additionally, adding a service made by @code{gnome-desktop-service-type} adds
metapackage to the system profile. Likewise, adding the Xfce service the GNOME metapackage to the system profile. Likewise, adding the Xfce
not only adds the @code{xfce} metapackage to the system profile, but it service not only adds the @code{xfce} metapackage to the system profile, but
also gives the Thunar file manager the ability to open a ``root-mode'' it also gives the Thunar file manager the ability to open a ``root-mode'' file
file management window, if the user authenticates using the management window, if the user authenticates using the administrator's
administrator's password via the standard polkit graphical interface. password via the standard polkit graphical interface. To ``add MATE'' means
To ``add MATE'' means that @code{polkit} and @code{dbus} are extended that @code{polkit} and @code{dbus} are extended appropriately, allowing MATE
appropriately, allowing MATE to operate with elevated privileges on a to operate with elevated privileges on a limited number of special-purpose
limited number of special-purpose system interfaces. Additionally, system interfaces. Additionally, adding a service of type
adding a service of type @code{mate-desktop-service-type} adds the MATE @code{mate-desktop-service-type} adds the MATE metapackage to the system
metapackage to the system profile. ``Adding Enlightenment'' means that profile. ``Adding Enlightenment'' means that @code{dbus} is extended
@code{dbus} is extended appropriately, and several of Enlightenment's binaries appropriately, and several of Enlightenment's binaries are set as setuid,
are set as setuid, allowing Enlightenment's screen locker and other allowing Enlightenment's screen locker and other functionality to work as
functionality to work as expected. expected.
The desktop environments in Guix use the Xorg display server by The desktop environments in Guix use the Xorg display server by
default. If you'd like to use the newer display server protocol default. If you'd like to use the newer display server protocol
@ -17694,6 +17694,24 @@ The MATE package to use.
@end table @end table
@end deftp @end deftp
@deffn {Scheme Variable} lxqt-desktop-service-type
This is the type of the service that runs the @uref{https://lxqt.github.io,
LXQt desktop environment}. Its value is a @code{lxqt-desktop-configuration}
object (see below).
This service adds the @code{lxqt} package to the system
profile.
@end deffn
@deftp {Data Type} lxqt-desktop-configuration
Configuration record for the LXQt desktop environment.
@table @asis
@item @code{lxqt} (default: @code{lxqt})
The LXQT package to use.
@end table
@end deftp
@deffn {Scheme Variable} enlightenment-desktop-service-type @deffn {Scheme Variable} 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

@ -11,6 +11,7 @@
;;; Copyright © 2019 Tim Gesthuizen <tim.gesthuizen@yahoo.de> ;;; Copyright © 2019 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
;;; Copyright © 2019 David Wilson <david@daviwil.com> ;;; Copyright © 2019 David Wilson <david@daviwil.com>
;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Reza Alizadeh Majd <r.majd@pantherx.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -53,6 +54,7 @@
#:use-module (gnu packages suckless) #:use-module (gnu packages suckless)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages libusb) #:use-module (gnu packages libusb)
#:use-module (gnu packages lxqt)
#:use-module (gnu packages mate) #:use-module (gnu packages mate)
#:use-module (gnu packages nfs) #:use-module (gnu packages nfs)
#:use-module (gnu packages enlightenment) #:use-module (gnu packages enlightenment)
@ -127,6 +129,11 @@
mate-desktop-service mate-desktop-service
mate-desktop-service-type mate-desktop-service-type
lxqt-desktop-configuration
lxqt-desktop-configuration?
lxqt-desktop-service
lxqt-desktop-service-type
xfce-desktop-configuration xfce-desktop-configuration
xfce-desktop-configuration? xfce-desktop-configuration?
xfce-desktop-service xfce-desktop-service
@ -1009,6 +1016,36 @@ system as root from within a user session, after the user has authenticated
with the administrator's password." with the administrator's password."
(service xfce-desktop-service-type config)) (service xfce-desktop-service-type config))
+
;;;
;;; Lxqt desktop service.
;;;
(define-record-type* <lxqt-desktop-configuration> lxqt-desktop-configuration
make-lxqt-desktop-configuration
lxqt-desktop-configuration?
(lxqt lxqt-package
(default lxqt)))
(define (lxqt-polkit-settings config)
"Return the list of LXQt dependencies that provide polkit actions and
rules."
(let ((lxqt (lxqt-package config)))
(map (lambda (name)
((package-direct-input-selector name) lxqt))
'("lxqt-admin"))))
(define lxqt-desktop-service-type
(service-type
(name 'lxqt-desktop)
(extensions
(list (service-extension polkit-service-type
lxqt-polkit-settings)
(service-extension profile-service-type
(compose list lxqt-package))))
(default-value (lxqt-desktop-configuration))
(description "Run LXQt desktop environment.")))
;;; ;;;
;;; X11 socket directory service ;;; X11 socket directory service