me
/
guix
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>
master
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}}).
Additionally, the @code{gnome-desktop-service-type},
@code{xfce-desktop-service}, @code{mate-desktop-service-type} and
@code{enlightenment-desktop-service-type} procedures can add GNOME, Xfce, MATE
and/or Enlightenment to a system. To ``add GNOME'' means that system-level
services like the backlight adjustment helpers and the power management
utilities are added to the system, extending @code{polkit} and @code{dbus}
appropriately, allowing GNOME to operate with elevated privileges on a
limited number of special-purpose system interfaces. Additionally,
adding a service made by @code{gnome-desktop-service-type} adds the GNOME
metapackage to the system profile. Likewise, adding the Xfce service
not only adds the @code{xfce} metapackage to the system profile, but it
also gives the Thunar file manager the ability to open a ``root-mode''
file management window, if the user authenticates using the
administrator's password via the standard polkit graphical interface.
To ``add MATE'' means that @code{polkit} and @code{dbus} are extended
appropriately, allowing MATE to operate with elevated privileges on a
limited number of special-purpose system interfaces. Additionally,
adding a service of type @code{mate-desktop-service-type} adds the MATE
metapackage to the system profile. ``Adding Enlightenment'' means that
@code{dbus} is extended appropriately, and several of Enlightenment's binaries
are set as setuid, allowing Enlightenment's screen locker and other
functionality to work as expected.
@code{xfce-desktop-service}, @code{mate-desktop-service-type},
@code{lxqt-desktop-service-type} and @code{enlightenment-desktop-service-type}
procedures can add GNOME, Xfce, MATE and/or Enlightenment to a system. To
``add GNOME'' means that system-level services like the backlight adjustment
helpers and the power management utilities are added to the system, extending
@code{polkit} and @code{dbus} appropriately, allowing GNOME to operate with
elevated privileges on a limited number of special-purpose system interfaces.
Additionally, adding a service made by @code{gnome-desktop-service-type} adds
the GNOME metapackage to the system profile. Likewise, adding the Xfce
service not only adds the @code{xfce} metapackage to the system profile, but
it also gives the Thunar file manager the ability to open a ``root-mode'' file
management window, if the user authenticates using the administrator's
password via the standard polkit graphical interface. To ``add MATE'' means
that @code{polkit} and @code{dbus} are extended appropriately, allowing MATE
to operate with elevated privileges on a limited number of special-purpose
system interfaces. Additionally, adding a service of type
@code{mate-desktop-service-type} adds the MATE metapackage to the system
profile. ``Adding Enlightenment'' means that @code{dbus} is extended
appropriately, and several of Enlightenment's binaries are set as setuid,
allowing Enlightenment's screen locker and other functionality to work as
expected.
The desktop environments in Guix use the Xorg display server by
default. If you'd like to use the newer display server protocol
@ -17694,6 +17694,24 @@ The MATE package to use.
@end table
@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
Return a service that adds the @code{enlightenment} package to the system
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 David Wilson <david@daviwil.com>
;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Reza Alizadeh Majd <r.majd@pantherx.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -53,6 +54,7 @@
#:use-module (gnu packages suckless)
#:use-module (gnu packages linux)
#:use-module (gnu packages libusb)
#:use-module (gnu packages lxqt)
#:use-module (gnu packages mate)
#:use-module (gnu packages nfs)
#:use-module (gnu packages enlightenment)
@ -127,6 +129,11 @@
mate-desktop-service
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-service
@ -1009,6 +1016,36 @@ system as root from within a user session, after the user has authenticated
with the administrator's password."
(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