summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHartmut Goebel <h.goebel@crazy-compilers.com>2017-07-31 13:04:22 +0200
committerHartmut Goebel <h.goebel@crazy-compilers.com>2021-01-31 15:32:12 +0100
commit0a1b740b824a4b5c9daa1f7c851bff719a194084 (patch)
tree65e11a3cfa59eee4eaa201c156d8a487f0639366
parentcd6b3f8b500f59cb6678d9a0975d8cf8b2805f1a (diff)
WIP services: Add KDE Plasme desktop service.
* gnu/services/desktop.scm (<kde-desktop-configuration>, kde-desktop-service-type): New variables. (kde-desktop-service): New public variable.
-rw-r--r--gnu/services/desktop.scm54
1 files changed, 54 insertions, 0 deletions
diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 265cf9f35f..20371a3389 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -5,6 +5,7 @@
;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2017, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2017 Nikita <nikita@n0.is>
+;;; Copyright © 2017, 2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017, 2019 Christopher Baines <mail@cbaines.net>
@@ -47,6 +48,9 @@
#:use-module (gnu packages cups)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gnome)
+ #:use-module (gnu packages kde)
+ #:use-module (gnu packages kde-frameworks)
+ #:use-module (gnu packages kde-plasma)
#:use-module (gnu packages xfce)
#:use-module (gnu packages avahi)
#:use-module (gnu packages xdisorg)
@@ -133,6 +137,11 @@
lxqt-desktop-configuration?
lxqt-desktop-service-type
+ plasma-desktop-configuration
+ plasma-desktop-configuration?
+ plasma-desktop-service
+ plasma-desktop-service-type
+
xfce-desktop-configuration
xfce-desktop-configuration?
xfce-desktop-service
@@ -1106,6 +1115,51 @@ profile, and extends dbus with the ability for @code{efl} to generate
thumbnails and makes setuid the programs which enlightenment needs to function
as expected.")))
+;;;
+;;; KDE Plasma desktop service.
+;;;
+
+(define-record-type* <plasma-desktop-configuration> plasma-desktop-configuration
+ make-plasma-desktop-configuration
+ plasma-desktop-configuration
+ (plasma-package plasma-package (default plasma-workspace)))
+
+(define (plasma-polkit-settings config)
+ "Return the list of KDE Plasma dependencies that provide polkit actions and
+rules."
+ (let ((plasma-plasma (plasma-package config)))
+ (map (lambda (name)
+ ((package-direct-input-selector name) plasma-plasma))
+ '(;;"kde-settings-daemon"
+ ;;"kde-control-center"
+ "systemsettings"
+ "plasma-pa"
+ "plasma-nm"
+ "plasma-desktop"
+ ;;"oxygen-fonts"
+ ;; kinit klauncher kded kcminit ksmsettings kstartupconfig5
+ ;; qdbus
+ ;; Magia task-plasma5-minimal adds: ark dbus-x11 dolphin gwenview
+ ;; kcalc khelpcenter kwalletmanager kwrite oxygen-fonts
+ ;; phonon4qt5-gstreamer phonon4qt5-vlc plasma-desktop plasma-pa
+ ;; plasma-workspace sddm systemsettings task-x11 xsettings-kde
+ ))))
+
+(define plasma-desktop-service-type
+ (service-type
+ (name 'plasma-desktop)
+ (extensions
+ (list ;;(service-extension polkit-service-type
+ ;; plasma-polkit-settings)
+ (service-extension profile-service-type
+ (compose list
+ plasma-package))))))
+
+(define* (plasma-desktop-service #:key (config (plasma-desktop-configuration)))
+ "Return a service that adds the @code{plasma} package to the system profile,
+and extends polkit with the actions from @code{kde-settings-daemon}."
+ (service plasma-desktop-service-type config))
+
;;;
;;; inputattach-service-type