@@ -53,6 +53,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 enlightenment)
#:use-module (guix deprecation)
@@ -131,6 +132,11 @@
xfce-desktop-service
xfce-desktop-service-type
+ lxqt-desktop-configuration
+ lxqt-desktop-configuration?
+ lxqt-desktop-service
+ lxqt-desktop-service-type
+
x11-socket-directory-service
enlightenment-desktop-configuration
@@ -1004,6 +1010,43 @@ 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.")))
+
+(define-deprecated (lxqt-desktop-service #:key (config
+ (lxqt-desktop-configuration)))
+ lxqt-desktop-service-type
+ "Return a service that adds the @code{lxqt} package to the system profile,
+and extends polkit with the actions from @code{lxqt-admin}."
+ (service lxqt-desktop-service-type config))
+
;;;
;;; X11 socket directory service