Subject: Re: Upstreaming KDE Plasma and rest of packages

From: phodina <[email-masked]>
Date: Mon, 19 Sep 2022 17:50:24 +0000

Hi,

I've went over all the packages and prepared a new patch set.

----
Petr
------- Original Message -------
On Tuesday, September 6th, 2022 at 9:14 AM, phodina <[email-masked]> wrote:

> Hi Marius,
>
> thanks for upstreaming the patches into staging. [1]
>
> I've rebased the patches on your changes.
>
> Unfortunately beside that I haven't had the time to go through them.
>
> I just removed the kpurpose as it was pointed out by Brendan that the package is already there under the name purpose.
>
> The patches are again tracked in the branch patch/upstream-kde [2]. Expect rebases as my next plan is to go through licenses and later tests + builds.
>
> Also I added all of you in the CC since you were part of the patchset thread.
>
> [1] https://issues.guix.gnu.org/50862
> [2] https://github.com/phodina/guix/tree/patch/upstream-kde
>
> ----
> Petr

From ce8fab8c61ade5c317445a5df26189e51061c1ec Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Wed, 7 Sep 2022 07:48:41 +0200
Subject: [PATCH] gnu: Add fwupd service.

* gnu/services/firmware.scm (fwupd): New variable.

diff --git a/gnu/services/firmware.scm b/gnu/services/firmware.scm
new file mode 100644
index 0000000000..7539c56202
--- /dev/null
+++ b/gnu/services/firmware.scm
@@ -0,0 +1,70 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright ?? 2022 Petr Hodina <[email-masked]>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu services firmware)
+  #:use-module (guix diagnostics)
+  #:use-module (guix gexp)
+  #:use-module (guix records)
+  #:use-module (guix modules)
+  #:use-module (guix i18n)
+  #:use-module (guix ui)
+  #:use-module (gnu services)
+  #:use-module (gnu services base)
+  #:use-module (gnu services shepherd)
+  #:use-module (gnu packages firmware)
+  #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-26)
+  #:use-module (srfi srfi-34)
+  #:use-module (srfi srfi-35)
+  #:use-module (ice-9 match)
+  #:export (fwupd-configuration fwupd-service-type))
+
+
+;;;
+;;; Fwupd daemon.
+;;;
+
+(define-record-type* <fwupd-configuration> fwupd-configuration
+                     make-fwupd-configuration fwupd-configuration?
+                     (fwupd fwupd-configuration-fwupd
+                            (default fwupd)))
+
+(define fwupd-activation-service
+  #~(begin
+      (use-modules (guix build utils))
+      (mkdir-p "/var/lib/fwupd")))
+
+(define (fwupd-shepherd-service config)
+  (shepherd-service (documentation "Run the fwupd daemon.")
+                    (provision '(fwupd))
+                    (requirement '(dbus-system udev))
+                    (start #~(make-forkexec-constructor (list (string-append #$fwupd
+                                                               "/libexec/fwupd/fwupd"))))
+                    (stop #~(make-kill-destructor))))
+
+(define fwupd-service-type
+  (service-type (name 'fwupd)
+                (default-value (fwupd-configuration))
+                (extensions (list (service-extension activation-service-type
+                                                     (const
+                                                      fwupd-activation-service))
+                                  (service-extension
+                                   shepherd-root-service-type
+                                   (compose list fwupd-shepherd-service))))
+                (description
+                 "Run @command{fwupd}, the Firmware update daemon.")))
-- 
2.37.2

From a80446cc7bf18cec8a604860261f03e68b31e264 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Fri, 26 Aug 2022 08:26:42 +0200
Subject: [PATCH 10/81] gnu: libksysguard: Update to 5.25.4.

* gnu/packages/kde-plasma.scm (libksysguard): Update to 5.25.4.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index 634a44eecf..8c0ed0880c 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -283,14 +283,14 @@ (define-public libkscreen
 (define-public libksysguard
   (package
     (name "libksysguard")
-    (version "5.25.3")
+    (version "5.25.4")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/plasma/" version
                            "/libksysguard-" version ".tar.xz"))
        (sha256
-        (base32 "1mrrrxjvqmrnkjwafvqrd2hlvl9gr9y4hn7dv0gf70lp5bl06i89"))))
+        (base32 "1kzpimhkagsmqj0cky4cfav1kbzyfjaj2l5xdapnmaygbm6r8086"))))
     (native-inputs
      (list extra-cmake-modules pkg-config qttools-5))
     (inputs
-- 
2.37.2

From 9c5174c7d689f43079a34bf7a78aa56450c72c5a Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Fri, 26 Aug 2022 06:01:45 +0200
Subject: [PATCH 17/81] gnu: Add kgamma.

* gnu/packages/kde-plasma.scm (kgamma): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index 5c4bb1f950..616d2b31ff 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -375,6 +375,35 @@ (define-public libksysguard
 with a ksysguardd daemon, which may also run on a remote system.")
     (license license:gpl3+)))
 
+(define-public kgamma
+  (package
+    (name "kgamma")
+    (version "5.25.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/"
+                                  version
+                                  "/"
+                                  name
+                                  "5-"
+                                  version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "1m72dl1rxsh56pmacx0q0qda7lr4359azik2lnhw7nhs30z4p25a"))))
+    (build-system qt-build-system)
+    (native-inputs (list extra-cmake-modules))
+    (inputs (list kauth
+                  kcoreaddons
+                  kconfig
+                  kconfigwidgets
+                  kdoctools
+                  ki18n))
+    (synopsis "Adjust your monitor's gamma settings")
+    (description "This package allows to adjust your monitor gamma settings.")
+    (home-page "https://invent.kde.org/plasma/kgamma5")
+    (license license:gpl2+)))
+
 (define-public kwayland-server
   (package
     (name "kwayland-server")
-- 
2.37.2

From ff98faa33e076535fe6ff03d8d0b831a5ce1c3d3 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Sun, 28 Aug 2022 23:19:36 +0200
Subject: [PATCH 09/81] gnu: Remove kqtquickcharts.

* gnu/packages/kde.scm (kqtquickcharts): Remove variable.

diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm
index 9e61563590..83bbf69506 100644
--- a/gnu/packages/kde.scm
+++ b/gnu/packages/kde.scm
@@ -846,30 +846,6 @@ (define-public labplot
     (license (list license:gpl2+     ;labplot
                    license:gpl3+)))) ;liborigin
 
-(define-public kqtquickcharts
-  (package
-    (name "kqtquickcharts")
-    (version "22.04.3")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (string-append "mirror://kde/stable/release-service/"
-                            version "/src/kqtquickcharts-" version ".tar.xz"))
-        (sha256
-         (base32
-          "0bm7rdysvlfnfnvy87ii3kxl238q83vw0ia58zsnwjmkxmlgf6mp"))))
-    (build-system cmake-build-system)
-    (native-inputs
-     (list extra-cmake-modules))
-    (inputs
-     (list qtbase-5 qtdeclarative-5))
-    (home-page "https://phabricator.kde.org/source/kqtquickcharts/")
-    (synopsis "Interactive charts for Qt Quick")
-    (description
-     "Kqtquickcharts is a QtQuick plugin to render beautiful and interactive
-charts.")
-    (license license:lgpl2.1+)))
-
 (define-public kdf
   (package
     (name "kdf")
-- 
2.37.2

From 939e9e0ea2f36fd480002ec76d3a0a1e7657f792 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Sun, 28 Aug 2022 23:09:53 +0200
Subject: [PATCH 15/81] gnu: Add kio-fuse.

* gnu/packages/kde-frameworks.scm (kio-fuse): New variable.

diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index 09895669e3..ef068b9e0f 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -2786,6 +2786,44 @@ (define-public kio-extras
 the functionality of the KDE resource and network access abstractions.")
     (license license:lgpl2.0+)))
 
+(define-public kio-fuse
+  (package
+    (name "kio-fuse")
+    (version "5.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/"
+                                  name
+                                  "/"
+                                  version
+                                  "/"
+                                  name
+                                  "-"
+                                  version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "1pb62h45c06dq3rml91xbf8j5y2c1l8z8j8lycchxrlgys5rlrv6"))))
+    (build-system cmake-build-system)
+    (arguments
+     (list #:phases #~(modify-phases %standard-phases
+                        (replace 'check
+                          (lambda* (#:key tests? #:allow-other-keys)
+                            (when tests?
+                              (setenv "HOME"
+                                      (getcwd))
+                              (setenv "XDG_RUNTIME_DIR"
+                                      (getcwd))
+                              (setenv "QT_QPA_PLATFORM" "offscreen")
+                              (invoke "dbus-launch" "ctest" "-E"
+                               "(fileopstest-cache|fileopstest-filejob)")))))))
+    (native-inputs (list dbus extra-cmake-modules pkg-config))
+    (inputs (list fuse-3 kio kcoreaddons qtbase-5))
+    (home-page "https://community.kde.org/Frameworks")
+    (synopsis "FUSE Interface for KIO")
+    (description "This package provides FUSE Interface for KIO.")
+    (license license:lgpl2.1+)))
+
 (define-public knewstuff
   (package
     (name "knewstuff")
-- 
2.37.2

From 73fbcf15050e8abbe1d87b009a3b11d3ba1f9402 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Fri, 26 Aug 2022 08:27:35 +0200
Subject: [PATCH 54/81] gnu: Add plasma-systemmonitor.

* gnu/packages/kde-plasma.scm (plasma-systemmonitor): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index df6db3bde5..2686e2c557 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -1226,3 +1226,43 @@ (define-public plasma-vault
     (description "Provides Plasma applet and services for creating encrypted
 	vaults.")
     (license (list license:gpl2 license:gpl3))))
+
+(define-public plasma-systemmonitor
+  (package
+    (name "plasma-systemmonitor")
+    (version "5.25.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/"
+                                  version
+                                  "/"
+                                  name
+                                  "-"
+                                  version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "1fj0vyjdk6h3f4p9aagh03hyhbf69y2qwlavs2zr7d0iadih7b4c"))))
+    (build-system qt-build-system)
+    (native-inputs (list extra-cmake-modules))
+    (inputs (list ki18n
+                  kconfig
+                  kdeclarative
+                  kservice
+                  kiconthemes
+                  kglobalaccel
+                  kio
+                  kdbusaddons
+                  kirigami
+                  knewstuff
+                  ksystemstats
+                  kitemmodels
+                  libksysguard
+                  qtdeclarative-5
+                  qtquickcontrols2-5))
+    (synopsis "System sensors, process information and other system resources
+monitor")
+    (description "This package provides an interface for monitoring system
+sensors, process information and other system resources.")
+    (home-page "https://invent.kde.org/plasma/plasma-systemmonitor")
+    (license (list license:gpl2 license:gpl3))))
-- 
2.37.2

From c9435b324f4f0522f5a4dbd06cf773421ababb37 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Wed, 10 Aug 2022 01:18:23 +0200
Subject: [PATCH 34/81] gnu: Add plasmatube.

* gnu/packages/kde-plasma.scm (plasmatube): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index dd4e148e42..9f91712b42 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -27,6 +27,7 @@ (define-module (gnu packages kde-plasma)
   #:use-module (guix build utils)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix gexp)
   #:use-module (guix build-system cmake)
@@ -41,6 +42,7 @@ (define-module (gnu packages kde-plasma)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages video)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xorg)
@@ -640,3 +642,29 @@ (define-public kwrited
     (synopsis "Listen to traditional system notifications")
     (description "This package provides access to system notifications.")
     (license license:gpl2+)))
+
+(define-public plasmatube
+  (package
+    (name "plasmatube")
+    (version "22.04")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma-mobile/"
+                                  version
+                                  "/"
+                                  name
+                                  "-"
+                                  version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "01bmxdh0aclm184j5s0kddjc7a14225bdnbkr8jlk21g9wlw8cyx"))))
+    (build-system cmake-build-system)
+    (native-inputs (list extra-cmake-modules))
+    (inputs (list kirigami kconfig ki18n qtbase-5 qtdeclarative-5 qtquickcontrols2-5
+	qtsvg-5 qtmultimedia-5 youtube-dl))
+    (home-page "https://apps.kde.org/plasmatube/")
+    (synopsis "Kirigami YouTube video player")
+    (description "This package provides YouTube video player based
+on QtMultimedia and @command{yt-dlp}.")
+    (license license:gpl3+)))
-- 
2.37.2

From a5fd6dcd0a0212db4918d24a81cf8dae551128d8 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Sun, 28 Aug 2022 23:08:42 +0200
Subject: [PATCH 14/81] gnu: Add kio-extras.

* gnu/packages/kde-frameworks.scm (kio-extras): New variable.

diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index 9f154bca3b..09895669e3 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -2737,6 +2737,55 @@ (define-public kio
 KIO enabled infrastructure.")
     (license license:lgpl2.1+)))
 
+(define-public kio-extras
+  (package
+    (name "kio-extras")
+    (version "22.08.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/release-service/"
+                                  version
+                                  "/src/"
+                                  name
+                                  "-"
+                                  version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "0gzna2ps2qd2js28c97kjpcbah7zz8n4s4932faggc2nz5z5wnyn"))))
+    (build-system cmake-build-system)
+    (arguments
+     (list #:phases #~(modify-phases %standard-phases
+                        (replace 'check
+                          (lambda* (#:key tests? #:allow-other-keys)
+                            (when tests?
+                              (setenv "HOME"
+                                      (getcwd))
+                              (setenv "TMPDIR"
+                                      (getcwd))
+                              (invoke "ctest" "-E" "testkioarchive")))))))
+    (native-inputs (list extra-cmake-modules dbus kdoctools qttools-5))
+    (inputs (list karchive
+                  kconfig
+                  kconfigwidgets
+                  kcoreaddons
+                  kdbusaddons
+                  ki18n
+                  kdnssd
+                  kio
+                  solid
+                  kbookmarks
+                  kguiaddons
+                  ksyntaxhighlighting
+                  qtbase-5
+                  qtsvg-5))
+    (home-page "https://community.kde.org/Frameworks")
+    (synopsis "Additional components to increase the functionality of KIO")
+    (description
+     "This package provides additional components to increase
+the functionality of the KDE resource and network access abstractions.")
+    (license license:lgpl2.0+)))
+
 (define-public knewstuff
   (package
     (name "knewstuff")
-- 
2.37.2

From 7e0f4729b88309132466a1108ec7101d40e3b649 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Fri, 25 Mar 2022 11:38:50 +0100
Subject: [PATCH 32/81] gnu: Add maliit-keyboard.

* gnu/pacakges/kde-frameworks.scm (maliit-keyboard): New variable.

diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index 61dccb7922..27c0ac3b8b 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -53,6 +53,8 @@ (define-module (gnu packages kde-frameworks)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages docbook)
+  #:use-module (gnu packages documentation)
+  #:use-module (gnu packages fcitx)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gettext)
@@ -65,9 +67,11 @@ (define-module (gnu packages kde-frameworks)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages image)
+  #:use-module (gnu packages ibus)
   #:use-module (gnu packages iso-codes)
   #:use-module (gnu packages kerberos)
   #:use-module (gnu packages kde-plasma)
+  #:use-module (gnu packages language)
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages libreoffice)
   #:use-module (gnu packages linux)
@@ -1266,6 +1270,47 @@ (define-public maliit-framework
 method framework.")
     (license license:lgpl2.1+)))
 
+(define-public maliit-keyboard
+  (package
+    (name "maliit-keyboard")
+    (version "2.3.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/maliit/keyboard")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0g89lckl4wzwamc89hs8871fbiyrsjwzk5b6ic4vhc4d1clyqzaw"))))
+    (build-system cmake-build-system)
+    (arguments
+     (list #:tests? #f
+           #:phases #~(modify-phases %standard-phases
+                        (add-after 'install 'install-schemas
+                          (lambda* (#:key source outputs #:allow-other-keys)
+                            (with-directory-excursion (string-append #$output
+                                                       "/share/glib-2.0/schemas")
+                              (invoke "glib-compile-schemas" ".")))))))
+    (native-inputs (list extra-cmake-modules pkg-config gettext-minimal
+                         `(,glib "bin")))
+    (inputs (list hunspell
+                  glib
+                  libchewing
+                  libpinyin
+                  maliit-framework
+                  presage
+                  qtbase-5
+                  qtdeclarative-5
+                  qtmultimedia-5
+                  qtquickcontrols2-5))
+    (home-page "https://github.com/maliit/keyboard")
+    (synopsis "Maliit Keyboard")
+    (description
+     "This package provides virtual keyboard for Wayland and X11
+display servers.  It supports many different languages and emoji.")
+    (license license:gpl3+)))
+
 (define-public modemmanager-qt
   (package
     (name "modemmanager-qt")
-- 
2.37.2

From 6d0b8164dc6ec397769c1bbf68203ea554cb0b1b Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Sat, 27 Aug 2022 17:01:13 +0200
Subject: [PATCH 13/81] gnu: Add ksysguard.

* gnu/packages/kde-plasma.scm (ksysguard): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index b996cf27cc..5c4bb1f950 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -253,6 +253,43 @@ (define-public kscreenlocker
      "@code{kscreenlocker} is a library for creating secure lock screens.")
     (license license:gpl2+)))
 
+(define-public ksysguard
+  (package
+    (name "ksysguard")
+    (version "5.22.0")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "mirror://kde/stable/ksysguard/" version
+                          "/ksysguard-" version ".tar.xz"))
+      (sha256
+       (base32 "0bb2aj46v7ig0wn3ir68igryl2gblz2n75cddn8fwamvbx76570g"))))
+    (build-system qt-build-system)
+    ;; TODO: No tests found
+    (native-inputs
+     (list extra-cmake-modules kdoctools))
+    (inputs
+     (list kconfig
+       kcoreaddons
+       kdbusaddons
+       ki18n
+       kiconthemes
+       kinit
+       kio
+       kitemviews
+       knewstuff
+       knotifications
+       kwindowsystem
+       libksysguard
+       `(,lm-sensors "lib")
+       qtbase-5))
+    (home-page "https://www.kde.org/applications/system/ksysguard/")
+    (synopsis "Plasma process and performance monitor")
+    (description "KSysGuard is a program to monitor various elements of your
+system, or any other remote system with the KSysGuard daemon (ksysgardd)
+installed.")
+    (license license:gpl2+)))
+
 (define-public libkscreen
   (package
     (name "libkscreen")
-- 
2.37.2

From 5f17c34e415e20277b7e216e3624c43fda60711e Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Fri, 25 Mar 2022 12:21:56 +0100
Subject: [PATCH 80/81] gnu: Add plasma-mobile-sounds.

* gnu/packages/kde-plasma.scm (plasma-mobile-sounds): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index e8f85dd267..a69a97f9a1 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -1895,6 +1895,25 @@ (define-public plasma-mobile-settings
      "This package provides Settings application for Plasma Mobile.")
     (license license:gpl2+)))
 
+(define-public plasma-mobile-sounds
+  (package
+    (name "plasma-mobile-sounds")
+    (version "0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://kde/stable/plasma-mobile-sounds/"
+                    version "/plasma-mobile-sounds-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1br6kzicrr45vgg0ciqczxlcid21n5lfjm6zc06rw86ys7fx7bpi"))))
+    (build-system cmake-build-system)
+    (native-inputs (list extra-cmake-modules pkg-config))
+    (home-page "https://plasma-mobile.org/")
+    (synopsis "Sounds for Plasma Mobile devices")
+    (description "This package provides sound files for Plasma Mobile.")
+    (license (list license:cc0 license:cc-by4.0))))
+
 (define-public plasma-pa
   (package
     (name "plasma-pa")
-- 
2.37.2

From 0879406c22ae6085d67c6330aa3f9665deb4d864 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Sat, 10 Sep 2022 11:17:09 +0200
Subject: [PATCH 02/81] gnu: ktouch: Remove kqtquickcharts form inputs.

* gnu/packages/education.scm (ktouch) [inputs]: Remove kqtquickcharts.

diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index 54cd00d08d..27e49067a3 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -667,7 +667,6 @@ (define-public ktouch
            ki18n
            kiconthemes
            kitemviews
-           kqtquickcharts
            ktextwidgets
            kwidgetsaddons
            kwindowsystem
-- 
2.37.2

From 440f93c34859154ff80aacc9c7bbc34edd776571 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Sun, 18 Sep 2022 10:39:18 +0200
Subject: [PATCH 47/81] gnu: packagekit: Remove input labels and use gexp.

* gnu/packages/freedesktop.scm (pacakgekit): Remove input labels and use gexp.

diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 97d8bc3dbc..d5069a0f59 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -916,16 +916,15 @@ (define-public packagekit
                "1dr1laic65ld95abp2yxbwvijnngh0dwyb1x49x4wjm5rhq43dl8"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f
-       #:make-flags (list (string-append "BASH_COMPLETIONS_DIR="
-                                         %output "/etc/bash_completion.d"))
-       #:configure-flags
-       '("--disable-systemd")))
+     (list #:tests? #f
+       #:make-flags #~(list (string-append "BASH_COMPLETIONS_DIR="
+                                         #$output "/etc/bash_completion.d"))
+       #:configure-flags #~(list "--disable-systemd")))
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python-wrapper)
-       ("glib:bin" ,glib "bin")))
+     (list intltool
+           pkg-config
+           python-wrapper
+           `(,glib "bin")))
     (inputs
      (list glib bash-completion polkit))
     (propagated-inputs
-- 
2.37.2

From 3831d8eea0a479db8dd75b0359864aa6c6d55ada Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Fri, 26 Aug 2022 09:04:19 +0200
Subject: [PATCH 66/81] gnu: Add system-settings.

* gnu/packages/kde-plasma.scm (system-settings): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index 431ee6995d..c9645454df 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -1690,3 +1690,44 @@ (define-public polkit-kde-agent
 UI for Plasma")
     (home-page "https://invent.kde.org/plasma/polkit-kde-agent-1")
     (license license:gpl2+)))
+
+(define-public system-settings
+  (package
+    (name "system-settings")
+    (version "5.25.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/" version
+                                  "/systemsettings-" version ".tar.xz"))
+              (sha256
+               (base32
+                "130739bfxl1jwkn3f4h7dnr7dv2i76g6sd2svmg0qy60cnwvcgcv"))))
+    (build-system qt-build-system)
+    (native-inputs (list extra-cmake-modules))
+    (inputs (list kauth
+                  kcrash
+                  kitemviews
+                  kitemmodels
+                  kcmutils
+                  ki18n
+                  kio
+                  kservice
+                  kiconthemes
+                  kwidgetsaddons
+                  kwindowsystem
+                  kxmlgui
+                  kdbusaddons
+                  kconfig
+                  kpackage
+                  kactivities
+                  kactivities-stats
+                  kguiaddons
+                  kirigami
+                  knotifications
+                  krunner
+                  plasma-workspace
+                  qtdeclarative-5))
+    (synopsis "Control center to configure Plasma Desktop")
+    (description "This package provides configuration UI for Plasma Desktop.")
+    (home-page "https://invent.kde.org/plasma/systemsettings")
+    (license license:gpl2+)))
-- 
2.37.2

From 06d9aa3e1fbb6b7091e86499b186825519594fc1 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Sun, 11 Sep 2022 20:56:58 +0200
Subject: [PATCH 08/81] gnu: akregator: Remove kqtquickcharts form inputs.

* gnu/packages/kde.scm (akregator) [inputs]: Remove kqtquickcharts. Add
kquickcharts.

diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm
index 3923918216..9e61563590 100644
--- a/gnu/packages/kde.scm
+++ b/gnu/packages/kde.scm
@@ -194,7 +194,7 @@ (define-public akregator
            kontactinterface
            kpimcommon
            kpimtextedit
-           kqtquickcharts
+           kquickcharts
            ktexteditor
            kuserfeedback
            libkdepim
-- 
2.37.2

From 165bd2c67c8d17e815c9965b12461caed5243df4 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Thu, 15 Sep 2022 07:46:08 +0200
Subject: [PATCH 06/81] gnu: akregator: Use G-Expression. Fixes build.

* gnu/packages/kde.scm (akregator): Use G-Expression.

diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm
index e83470bc53..0a477cfc7d 100644
--- a/gnu/packages/kde.scm
+++ b/gnu/packages/kde.scm
@@ -161,14 +161,13 @@ (define-public akregator
         (base32 "9yy5c29zxpli4cddknmdvjkgii3j7pvw6lhwqfrqjc8jh83gm8f8"))))
     (build-system qt-build-system)
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
+     (list #:phases
+       #~(modify-phases %standard-phases
          (add-after 'install 'wrap-qt-process-path
            (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (bin (string-append out "/bin/akregator"))
+             (let ((bin (string-append #$output "/bin/akregator"))
                     (qt-process-path (string-append
-                                       (assoc-ref inputs "qtwebengine-5")
+                                       #$qtwebengine-5
                                        "/lib/qt5/libexec/QtWebEngineProcess")))
                (wrap-program bin
                  `("QTWEBENGINEPROCESS_PATH" = (,qt-process-path)))))))))
-- 
2.37.2

From b7038ffbdf075bcddf944b38b7d6a06f8d1426bd Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Fri, 26 Aug 2022 07:50:23 +0200
Subject: [PATCH 12/81] gnu: Add kwayland-integration.

* gnu/packages/kde-plasma.scm (kwayland-integration): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index 7e0cdf899f..b996cf27cc 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -23,6 +23,7 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages kde-plasma)
+  #:use-module (guix build utils)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module ((guix licenses) #:prefix license:)
@@ -386,3 +387,53 @@ (define-public kwayland-server
                    ;; src/server/drm_fourcc.h carries the MIT license.
                    license:expat))))
 
+(define-public kwayland-integration
+  (package
+    (name "kwayland-integration")
+    (version "5.25.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/"
+                                  version
+                                  "/"
+                                  name
+                                  "-"
+                                  version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "1iqnwcp08kg91pwm3i4grd0i4bqf8h1z0n0fhcw6l0cbhdkcad39"))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:phases #~(modify-phases %standard-phases
+                        (delete 'check)
+                        (add-after 'install 'check-after-install
+                          (lambda* (#:key tests? #:allow-other-keys)
+                            (when tests?
+                              (setenv "HOME"
+                                      (getcwd))
+                              (setenv "XDG_RUNTIME_DIR"
+                                      (getcwd))
+                              (setenv "QT_QPA_PLATFORM" "offscreen")
+                              ;; https://bugs.gentoo.org/668872
+                              (invoke "ctest" "-E" "(idleTest-kwayland-test)"))))
+                        (add-before 'check-after-install 'check-setup
+                          (lambda* (#:key outputs #:allow-other-keys)
+                            (setenv "QT_PLUGIN_PATH"
+                                    (string-append #$output
+                                                   "/lib/qt5/plugins:"
+                                                   (getenv "QT_PLUGIN_PATH"))))))))
+    (native-inputs (list extra-cmake-modules wayland-protocols pkg-config))
+    (inputs (list kguiaddons
+                  kidletime
+                  kwindowsystem
+                  kwayland
+                  libxkbcommon
+                  wayland
+                  qtbase-5
+                  qtwayland))
+    (synopsis "KWayland runtime integration plugins")
+    (description "Provides integration plugins for various KDE Frameworks for
+Wayland.")
+    (home-page "https://invent.kde.org/plasma/kwayland-integration")
+    (license (list license:lgpl2.1 license:lgpl3))))
-- 
2.37.2

From 7fa6a84361278455b2d564339c2052219d36967c Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Mon, 19 Sep 2022 15:24:48 +0200
Subject: [PATCH 07/81] gnu: akregator: Fix incorrect package source hash from
 commit 6971feca53a.

* gnu/packages/kde.scm (akregator) [source]: Fix hash.

diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm
index 0a477cfc7d..3923918216 100644
--- a/gnu/packages/kde.scm
+++ b/gnu/packages/kde.scm
@@ -158,7 +158,7 @@ (define-public akregator
        (uri (string-append "mirror://kde/stable/release-service/" version
                            "/src/akregator-" version ".tar.xz"))
        (sha256
-        (base32 "9yy5c29zxpli4cddknmdvjkgii3j7pvw6lhwqfrqjc8jh83gm8f8"))))
+        (base32 "08n713271i7ifnbrgwrqmxvcpvj45wfqjiidw8zf9rpwxg2m2m9g"))))
     (build-system qt-build-system)
     (arguments
      (list #:phases
-- 
2.37.2

From 2d89a94c7dc7170c580719bff5c09f004147378c Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Fri, 26 Aug 2022 07:30:45 +0200
Subject: [PATCH 52/81] gnu: Add kwallet-pam.

* gnu/packages/kde-plasma.scm (kwallet-pam): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index 4db2486f6d..0139707c29 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -38,6 +38,8 @@ (define-module (gnu packages kde-plasma)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gtk)
@@ -696,6 +698,33 @@ (define-public kgamma
     (home-page "https://invent.kde.org/plasma/kgamma5")
     (license license:gpl2+)))
 
+(define-public kwallet-pam
+  (package
+    (name "kwallet-pam")
+    (version "5.25.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/"
+                                  version
+                                  "/"
+                                  name
+                                  "-"
+                                  version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "14j3xngwliqhhvw60izv5kdjvv8xhqw8cjsc4l22v8jj4m8yw2xk"))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:tests? #f)) ;no tests
+    (native-inputs (list extra-cmake-modules pkg-config))
+    (inputs (list linux-pam kwallet libgcrypt))
+    (synopsis "PAM Integration with KWallet")
+    (description "Provide PAM Integration with KWallet to unlock KWallet when
+you login.")
+    (home-page "https://invent.kde.org/plasma/kwallet-pam")
+    (license (list license:lgpl2.1+))))
+
 (define-public kwayland-server
   (package
     (name "kwayland-server")
-- 
2.37.2

From 3b52cb812ab2b1a010a68a2113c89f9203942d76 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Wed, 10 Aug 2022 00:39:14 +0200
Subject: [PATCH 33/81] gnu: Add kitinerary.

* gnu/packages/kde-pim.scm (kitinerary): New variable.

diff --git a/gnu/packages/kde-pim.scm b/gnu/packages/kde-pim.scm
index a182261b84..15c34aec0f 100644
--- a/gnu/packages/kde-pim.scm
+++ b/gnu/packages/kde-pim.scm
@@ -22,6 +22,7 @@
 
 (define-module (gnu packages kde-pim)
   #:use-module (guix build-system qt)
+  #:use-module (guix gexp)
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module ((guix licenses) #:prefix license:)
@@ -29,6 +30,7 @@ (define-module (gnu packages kde-pim)
   #:use-module (guix utils)
   #:use-module (gnu packages)
   #:use-module (gnu packages boost)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages cyrus-sasl)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages documentation)
@@ -851,6 +853,48 @@ (define-public kimap
     (license ;; GPL for programs, LGPL for libraries
      (list license:gpl2+ license:lgpl2.0+))))
 
+(define-public kitinerary
+  (package
+    (name "kitinerary")
+    (version "20.11.80")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://invent.kde.org/pim/kitinerary/-/archive/v"
+                    version "/kitinerary-v" version ".tar.gz"))
+              (sha256
+               (base32
+                "0j46gndarz8gkjiwqwkh1xgnxv4xbkwp1bxd72xia3i5dpx3dbah"))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:phases #~(modify-phases %standard-phases
+                        (replace 'check
+                          (lambda* (#:key tests? #:allow-other-keys)
+                            (when tests?
+                              (invoke "dbus-launch" "ctest" "-E"
+                               "(datatypestest|jsonlddocumenttest|mergeutiltest|knowledgedbtest|airportdbtest|pkpassextractortest|postprocessortest|calendarhandlertest|extractortest)")))))))
+    (native-inputs (list dbus extra-cmake-modules))
+    (inputs (list kpkpass
+                  kcalendarcore
+                  karchive
+                  ki18n
+                  kcoreaddons
+                  kcontacts
+                  kmime
+                  knotifications
+                  shared-mime-info
+                  qtbase-5
+                  qtdeclarative-5
+                  qtlocation
+                  qtquickcontrols2-5
+                  libxml2
+                  zlib))
+    (home-page "https://apps.kde.org/cs/itinerary/")
+    (synopsis
+     "Digital travel assistant with a priority on protecting your privacy")
+    (description "")
+    (license license:lgpl2.0)))
+
 (define-public kldap
   (package
     (name "kldap")
-- 
2.37.2

From d7c691c8b5bdba6fe9515ee10113213e30c5d1f2 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Thu, 15 Sep 2022 00:44:55 +0200
Subject: [PATCH 04/81] gnu: kio: Enable 2 tests.

* gnu/packages/kde-frameworks.scm (kio) [arguments]: Run kiocore-threadtest
and kiowidgets-kfileitemactionstest.

diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index ed77e56bce..fb18910c9d 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -2703,7 +2703,7 @@ (define-public kio
                (setenv "QT_QPA_PLATFORM" "offscreen")
                (setenv "DBUS_FATAL_WARNINGS" "0")
                (invoke "dbus-launch" "ctest"
-                       "-E" ; FIXME: 21/67 tests fail.
+                       "-E" ; FIXME: 19/67 tests fail.
                        (string-append "(kiocore-jobtest"
                                       "|fileitemtest"
                                       "|kiocore-kmountpointtest"
@@ -2712,7 +2712,6 @@ (define-public kio
                                       "|kiocore-krecentdocumenttest"
                                       "|kiocore-http_jobtest"
                                       "|kiogui-openurljobtest"
-                                      "|kiocore-threadtest"
                                       "|applicationlauncherjob_forkingtest"
                                       "|applicationlauncherjob_scopetest"
                                       "|applicationlauncherjob_servicetest"
@@ -2721,7 +2720,6 @@ (define-public kio
                                       "|commandlauncherjob_servicetest"
                                       "|kiowidgets-kdirlistertest"
                                       "|kiowidgets-kdirmodeltest"
-                                      "|kiowidgets-kfileitemactionstest"
                                       "|kiowidgets-kurifiltertest-colon-separator"
                                       "|kiowidgets-kurifiltertest-space-separator"
                                       "|kiofilewidgets-knewfilemenutest)")))))
-- 
2.37.2

From fccfe7ad6a6af04fd469dc2e0946bb72fe144633 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Fri, 26 Aug 2022 06:57:37 +0200
Subject: [PATCH 70/81] gnu: Add khotkeys.

* gnu/packages/kde-plasma.scm (khotkeys): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index 3e302af583..55862d4537 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -434,6 +434,41 @@ (define-public kdeplasma-addons
     (home-page "https://invent.kde.org/plasma/kdeplasma-addons")
     (license license:lgpl2.0)))
 
+(define-public khotkeys
+  (package
+    (name "khotkeys")
+    (version "5.25.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/"
+                                  version
+                                  "/"
+                                  name
+                                  "-"
+                                  version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "0hkicwkcjb4p4k5yh8d60h6khsvrqkhjx42aby6rxd3mgvrqd3xy"))))
+    (build-system qt-build-system)
+    (native-inputs (list extra-cmake-modules))
+    (inputs (list kdbusaddons
+                  kdoctools
+                  kglobalaccel
+                  ki18n
+                  kcmutils
+                  kio
+                  ktextwidgets
+                  kxmlgui
+                  kdelibs4support
+                  plasma-workspace
+                  qtx11extras))
+    (synopsis "Trigger actions when certain keys are pressed")
+    (description "This package provide trigger actions when certain keys
+are pressed.")
+    (home-page "https://invent.kde.org/plasma/khotkeys")
+    (license license:lgpl2.0)))
+
 (define-public kinfocenter
   (package
     (name "kinfocenter")
-- 
2.37.2

From e2e8c9ff48cc8d66c3f930e32461637091ef2f07 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Tue, 23 Aug 2022 20:11:33 +0200
Subject: [PATCH 11/81] gnu: libkscreen: Update to 5.25.4.

* gnu/packages/kde-plasma.scm (libkscreen): Update to 5.24.4.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index 8c0ed0880c..7e0cdf899f 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -255,14 +255,14 @@ (define-public kscreenlocker
 (define-public libkscreen
   (package
     (name "libkscreen")
-    (version "5.25.3")
+    (version "5.25.4")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/plasma/" version "/"
                            name "-" version ".tar.xz"))
        (sha256
-        (base32 "1mxkrk04wcyw4xbfiyxbp5iwnhqr10yk39zx5bbjd9zag0vdi7z5"))))
+        (base32 "17ib0sgrhmmf3f8w3fni0825xz5581av5vnz8gca41vyf12css25"))))
     (build-system qt-build-system)
     (native-inputs
      (list extra-cmake-modules
-- 
2.37.2

From 12762e8673d4e3d86575587a4c1b8b4b8839f722 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Sun, 28 Aug 2022 23:07:58 +0200
Subject: [PATCH 01/81] gnu: Add kquickcharts.

* gnu/packages/kde-frameworks.scm (kquickcharts): New variable.

diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index bec8ff1c51..8bbdacd534 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -933,6 +933,45 @@ (define-public kitemviews
 to flat and hierarchical lists.")
     (license (list license:gpl2+ license:lgpl2.1+))))
 
+(define-public kquickcharts
+  (package
+    (name "kquickcharts")
+    (version "5.96.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/frameworks/"
+                                  (version-major+minor version)
+                                  "/"
+                                  name
+                                  "-"
+                                  version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "1sd9mfxk72xfa1kz77s7z312scfm0vwvvgmyi4pypb9cs7d9dq3j"))))
+    (build-system cmake-build-system)
+    (arguments
+     (list #:phases #~(modify-phases %standard-phases
+                        (replace 'check
+                          (lambda* (#:key tests? #:allow-other-keys)
+                            (when tests?
+                              (setenv "HOME"
+                                      (getcwd))
+                              (setenv "XDG_RUNTIME_DIR"
+                                      (getcwd))
+                              (setenv "QT_QPA_PLATFORM" "offscreen")
+                              (invoke "ctest" "-E"
+                               "(tst_BarChart.qml|tst_LineChart.qml|tst_PieChart.qml)")))))))
+    (inputs (list qtbase-5 qtdeclarative-5 qtquickcontrols2-5))
+    (native-inputs (list pkg-config extra-cmake-modules))
+    (home-page "https://api.kde.org/frameworks/kquickcharts/html/index.html")
+    (synopsis "QtQuick plugin providing high-performance charts")
+    (description
+     "The Quick Charts module provides a set of charts that can be
+used from QtQuick applications for both simple display of data as well as
+continuous display of high-volume data.")
+    (license (list license:lgpl2.1 license:lgpl3))))
+
 (define-public kplotting
   (package
     (name "kplotting")
-- 
2.37.2

From fa03f6a940bd0322b99ed6f4dd6161c0ec030258 Mon Sep 17 00:00:00 2001
From: Brendan Tildesley <[email-masked]>
Date: Mon, 21 Feb 2022 21:47:28 +1100
Subject: [PATCH 65/81] gnu: Add plasma-workspace.

* gnu/packages/kde-plasma.scm (plasma-workspace): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index 9ef70a85d5..431ee6995d 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -45,10 +45,13 @@ (define-module (gnu packages kde-plasma)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages iso-codes)
   #:use-module (gnu packages kde)
   #:use-module (gnu packages kde-frameworks)
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages maths)
+  #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages pciutils)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages polkit)
@@ -1482,6 +1485,156 @@ (define-public plasma-systemmonitor
     (home-page "https://invent.kde.org/plasma/plasma-systemmonitor")
     (license (list license:gpl2 license:gpl3))))
 
+(define-public plasma-workspace
+  (package
+    (name "plasma-workspace")
+    (version "5.25.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/"
+                                  version
+                                  "/"
+                                  name
+                                  "-"
+                                  version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "1aw9ms6rzxrk384xzdc3sqwqs1shbnkap40vfwxp4jamjk0pyglw"))))
+    (build-system qt-build-system)
+    (native-inputs (list extra-cmake-modules kdoctools pkg-config qtsvg-5
+                         qttools-5))
+    (inputs (list appmenu-gtk-module
+                  appstream-qt
+                  baloo
+                  breeze
+                  breeze-icons
+                  dbus
+                  fontconfig
+                  kactivities
+                  kactivities-stats
+                  karchive
+                  kcmutils
+                  kcoreaddons
+                  kcrash
+                  kdbusaddons
+                  kdeclarative
+                  kded
+                  kdesu
+                  kglobalaccel
+                  kguiaddons
+                  kholidays
+                  ki18n
+                  kiconthemes
+                  kidletime
+                  kinit
+                  kio
+                  kio-extras
+                  kio-fuse
+                  kitemmodels
+                  kirigami
+                  knewstuff
+                  knotifications
+                  knotifyconfig
+                  kquickcharts
+                  kpackage
+                  kpeople
+                  krunner
+                  kscreenlocker
+                  ktexteditor
+                  ktextwidgets
+                  kunitconversion
+                  kuserfeedback
+                  kwallet
+                  kwayland
+                  kwin
+                  layer-shell-qt
+                  libkscreen
+                  libksysguard
+                  libqalculate
+                  gmp
+                  mpfr
+                  libsm
+                  libxft
+                  libxkbcommon
+                  libxrender
+                  libxtst
+                  networkmanager-qt
+                  phonon
+                  pipewire-0.3
+                  plasma-framework
+                  plasma-workspace-wallpapers
+                  plasma-wayland-protocols
+                  prison
+                  qtbase-5
+                  qtdeclarative-5
+                  qtquickcontrols2-5
+                  qtwayland
+                  qtgraphicaleffects
+                  qtx11extras
+                  wayland
+                  wayland-protocols-next
+                  xcb-util
+                  xcb-util-image
+                  xcb-util-keysyms
+                  xrdb
+                  xmessage
+                  xsetroot
+                  zlib))
+    (propagated-inputs (list iso-codes))
+    (arguments
+     (list #:phases #~(modify-phases %standard-phases
+                        (add-after 'unpack 'patch-wallpaper
+                          (lambda _
+                            (substitute* "sddm-theme/theme.conf.cmake"
+                              (("background=..KDE_INSTALL_FULL_WALLPAPERDIR.")
+                               (string-append "background="
+                                              #$breeze "/share/wallpapers")))))
+                        (add-after 'unpack 'patch-workspace-bins
+                          (lambda _
+                            (substitute* "startkde/startplasma.cpp"
+                              (("xmessage")
+                               (string-append #$xmessage "/bin/xmessage"))
+                              (("xsetroot")
+                               (string-append #$xsetroot "/bin/xsetroot")))
+                            (substitute* (list "kcms/fonts/fontinit.cpp"
+                                               "kcms/fonts/fonts.cpp"
+                                               "kcms/krdb/krdb.cpp")
+                              (("xrdb")
+                               (string-append #$xrdb "/bin/xrdb")))
+                            (substitute* "startkde/plasma-session/startup.cpp"
+                              (("CMAKE_INSTALL_FULL_LIBEXECDIR_KF5..")
+                               (string-append "\""
+                                              #$kinit "/lib/libexec/kf5")))
+                            (substitute* (list
+                                          "startkde/startplasma-wayland.cpp"
+                                          "startkde/startplasma-x11.cpp")
+                              (("kdeinit5_shutdown")
+                               (string-append #$kinit "/bin/kdeinit5_shutdown")))))
+                        (delete 'check)
+                        (add-after 'install 'check-after-install
+                          (lambda* (#:key tests? #:allow-other-keys)
+                            (when tests?
+                              (setenv "HOME"
+                                      (getcwd))
+                              (setenv "XDG_RUNTIME_DIR"
+                                      (getcwd))
+                              (setenv "XDG_CACHE_HOME"
+                                      (getcwd))
+                              (setenv "QT_QPA_PLATFORM" "offscreen")
+                              (setenv "QT_PLUGIN_PATH"
+                                      (string-append #$output
+                                                     "/lib/qt5/plugins:"
+                                                     (getenv "QT_PLUGIN_PATH")))
+                              (invoke "ctest" "-E"
+                               "(appstreamtest|lookandfeel-kcmTest|tst_triangleFilter|systemtraymodeltest|testdesktop| screenpooltest)")))))))
+    (home-page "https://invent.kde.org/plasma/plasma-workspace")
+    (synopsis "Plasma workspace components")
+    (description
+     "Workspaces provide support for KDE Plasma Widgets,
++integrated search, hardware management and a high degree of customizability")
+    (license (list license:gpl2 license:gpl3))))
+
 (define-public plasma-workspace-wallpapers
   (package
     (name "plasma-workspace-wallpapers")
-- 
2.37.2

From a54797ca8f0a32682cc6ac5137e14426fc89a3d9 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Wed, 10 Aug 2022 00:39:57 +0200
Subject: [PATCH 16/81] gnu: Add kpkpass.

* gnu/packages/kde-pim.scm (kpkpass): New variable.

diff --git a/gnu/packages/kde-pim.scm b/gnu/packages/kde-pim.scm
index fc3e7069f1..a182261b84 100644
--- a/gnu/packages/kde-pim.scm
+++ b/gnu/packages/kde-pim.scm
@@ -23,6 +23,7 @@
 (define-module (gnu packages kde-pim)
   #:use-module (guix build-system qt)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix utils)
@@ -1547,6 +1548,27 @@ (define-public kpeoplevcard
 Virtual Contact File}) files to the KPeople contact management library.")
     (license license:lgpl2.1+)))
 
+(define-public kpkpass
+  (package
+    (name "kpkpass")
+    (version "22.08")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://invent.kde.org/pim/kpkpass")
+                    (commit (string-append "release/" version))))
+              (sha256
+               (base32
+                "135cjl0053k4a26mnp8qcqpx11l6r5r87whhpva63b5yxmpmjc62"))))
+    (build-system qt-build-system)
+    (native-inputs (list extra-cmake-modules))
+    (inputs (list karchive qtbase-5 shared-mime-info))
+    (home-page "https://invent.kde.org/pim/kpkpass")
+    (synopsis "Apple Wallet Pass reader")
+    (description "This package provides library to deal with Apple Wallet
+pass files.")
+    (license license:lgpl2.0+)))
+
 (define-public kpimcommon
   (package
     (name "kpimcommon")
-- 
2.37.2

From 866fd9550f0353db4c3756153e6ed196eb66c594 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Fri, 26 Aug 2022 07:55:01 +0200
Subject: [PATCH 19/81] gnu: Add kwrited.

* gnu/packages/kde-plasma.scm (kwrited): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index 76d0f4446d..0e19f416eb 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -549,3 +549,27 @@ (define-public kwayland-integration
 Wayland.")
     (home-page "https://invent.kde.org/plasma/kwayland-integration")
     (license (list license:lgpl2.1 license:lgpl3))))
+
+(define-public kwrited
+  (package
+    (name "kwrited")
+    (version "5.25.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/"
+                                  version
+                                  "/"
+                                  name
+                                  "-"
+                                  version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "0xn20irka7adbqfc8w6gnhwp0pbv7bz7l7g16qddv1wq3xix9053"))))
+    (build-system qt-build-system)
+    (native-inputs (list extra-cmake-modules))
+    (inputs (list kcoreaddons ki18n kpty knotifications))
+    (home-page "https://invent.kde.org/plasma/kwrited")
+    (synopsis "Listen to traditional system notifications")
+    (description "This package provides access to system notifications.")
+    (license license:gpl2+)))
-- 
2.37.2

From 7e5906fe29050d844ef522daa18d8a99d817d265 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Tue, 23 Aug 2022 15:28:01 +0200
Subject: [PATCH 38/81] gnu: Add plasma-vault.

* gnu/packages/kde-plasma.scm (plasma-vault): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index c96a2841b5..5273402553 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -733,3 +733,37 @@ (define-public plasmatube
     (description "This package provides YouTube video player based
 on QtMultimedia and @command{yt-dlp}.")
     (license license:gpl3+)))
+
+(define-public plasma-vault
+  (package
+    (name "plasma-vault")
+    (version "5.25.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/"
+                                  version
+                                  "/"
+                                  name
+                                  "-"
+                                  version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "10ym2gk46yr1vgjnm1li1shdawklvvy3yvjcanm8ic5llchbxvzq"))))
+    (build-system qt-build-system)
+    (native-inputs (list extra-cmake-modules))
+    (inputs (list kio
+                  ki18n
+                  kconfigwidgets
+                  kconfig
+                  kactivities
+                  kdbusaddons
+                  kiconthemes
+                  libksysguard
+                  plasma-framework
+                  qtdeclarative-5))
+    (home-page "https://invent.kde.org/plasma/plasma-vault")
+    (synopsis "Plasma applet and services for creating encrypted vaults")
+    (description "Provides Plasma applet and services for creating encrypted
+	vaults.")
+    (license (list license:gpl2 license:gpl3))))
-- 
2.37.2

From a3e13541d79249fa3bcd3a5e7b3fba6212f07b51 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Tue, 23 Aug 2022 21:34:07 +0200
Subject: [PATCH 72/81] gnu: Add plasma-browser-integration.

* gnu/packages/kde-plasma.scm (plasma-browser-integration): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index 480b78b057..a9ee6d0e12 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -1366,6 +1366,46 @@ (define-public plasma-active-window-control
 active window on Plasma Desktop.")
     (license (list license:gpl2 license:gpl3)))))
 
+(define-public plasma-browser-integration
+  (package
+    (name "plasma-browser-integration")
+    (version "5.25.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/"
+                                  version
+                                  "/"
+                                  name
+                                  "-"
+                                  version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "1l3n4psbqimfar5qsmrfp3nhgg3v9yy93rkjpvyqgdmizi44scqw"))))
+    (build-system qt-build-system)
+    (native-inputs (list extra-cmake-modules pkg-config))
+    (inputs (list kio
+                  ki18n
+                  kcoreaddons
+                  kconfig
+                  kcrash
+                  kdbusaddons
+                  knotifications
+                  kitemmodels
+                  krunner
+                  kactivities
+                  purpose
+                  kfilemetadata
+                  kjobwidgets
+                  qtdeclarative-5))
+    (propagated-inputs (list plasma-workspace))
+    (home-page "https://invent.kde.org/plasma/plasma-browser-integration")
+    (synopsis
+     "Components necessary to integrate browsers into the Plasma Desktop")
+    (description "This package aims to provide better integration of web
+browsers with the KDE Plasma 5 desktop.")
+    (license license:gpl3+)))
+
 (define-public plasma-disks
   (package
     (name "plasma-disks")
-- 
2.37.2

From 670a0f1782a42f173396188fb947e3490b6e83e9 Mon Sep 17 00:00:00 2001
From: Brendan Tildesley <[email-masked]>
Date: Sat, 5 Mar 2022 11:46:54 +1100
Subject: [PATCH 73/81] gnu: Add plasma-desktop.

* gnu/packages/kde-plasma.scm (plasma-desktop): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index a9ee6d0e12..d9f77f0a26 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -45,6 +45,7 @@ (define-module (gnu packages kde-plasma)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages ibus)
   #:use-module (gnu packages iso-codes)
   #:use-module (gnu packages kde)
   #:use-module (gnu packages kde-frameworks)
@@ -54,7 +55,6 @@ (define-module (gnu packages kde-plasma)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages pciutils)
   #:use-module (gnu packages pkg-config)
-  #:use-module (gnu packages polkit)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
   #:use-module (gnu packages video)
@@ -1406,6 +1406,164 @@ (define-public plasma-browser-integration
 browsers with the KDE Plasma 5 desktop.")
     (license license:gpl3+)))
 
+(define-public plasma-desktop
+  (package
+    (name "plasma-desktop")
+    (version "5.25.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/"
+                                  version
+                                  "/"
+                                  name
+                                  "-"
+                                  version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "1jkjc412n1wn17qrmx0sv91pzv5xjsljms3bsln6bbxj5fkhmkfm"))))
+    (build-system qt-build-system)
+    (native-inputs (list extra-cmake-modules
+                         dbus
+                         kdoctools
+                         intltool
+                         pkg-config
+                         qtsvg-5
+                         qttools-5))
+    (inputs (list ;packagekit-qt
+                  signon-plugin-oauth2
+                  signond
+
+                  attica
+                  appstream-qt
+                  baloo
+                  breeze
+                  breeze-icons
+                  eudev
+                  fontconfig
+                  glib
+                  ibus
+                  kaccounts-integration
+                  kactivities
+                  kactivities-stats
+                  kauth
+                  karchive
+                  kcmutils
+                  kconfig
+                  kcoreaddons
+                  kcrash
+                  kdbusaddons
+                  kdeclarative
+                  kded
+                  kdesu
+                  kdelibs4support
+                  kglobalaccel
+                  kguiaddons
+                  kholidays
+                  ki18n
+                  kiconthemes
+                  kidletime
+                  kinit
+                  kio
+                  kitemmodels
+                  knewstuff
+                  knotifications
+                  knotifyconfig
+                  kpackage
+                  kpeople
+                  krunner
+                  kscreenlocker
+                  ktexteditor
+                  ktextwidgets
+                  kunitconversion
+                  kuserfeedback
+                  kwallet
+                  kwayland
+                  kwin
+                  layer-shell-qt
+                  libaccounts-qt
+                  libcanberra
+                  libkscreen
+                  libksysguard
+                  libqalculate
+                  gmp
+                  mpfr
+                  libsm
+                  libxi
+                  libxft
+                  libxkbcommon
+                  libxrender
+                  libxtst
+                  networkmanager-qt
+                  phonon
+                  pipewire-0.3
+                  plasma-framework
+                  plasma-wayland-protocols
+                  pulseaudio
+                  prison
+                  qqc2-desktop-style
+                  qtbase-5
+                  qtdeclarative-5
+                  qtquickcontrols2-5
+                  qtwayland
+                  qtx11extras
+                  wayland
+                  wayland-protocols
+                  xcb-util
+                  xcb-util-image
+                  xcb-util-keysyms
+
+                  ;; These are needed for Xserver
+                  xf86-input-libinput
+                  xf86-input-evdev
+                  xorg-server
+                  xf86-input-synaptics
+                  xkeyboard-config
+                  libxkbfile
+                  libxcursor
+                  libxkbcommon))
+    (propagated-inputs (list iso-codes kirigami plasma-workspace))
+    (arguments
+     (list #:phases #~(modify-phases %standard-phases
+                        (add-after `unpack `fix-paths
+                          (lambda* (#:key inputs #:allow-other-keys)
+                            (substitute* "kcms/keyboard/iso_codes.h"
+                              (("\"/usr/share/xml/iso-codes\"")
+                               (string-append "\""
+                                              #$iso-codes
+                                              "/share/xml/iso-codes\"")))))
+                        (add-after 'unpack 'patch-qml-import-path
+                          (lambda _
+                            (substitute* '("applets/pager/package/contents/ui/main.qml"
+                                           "containments/desktop/package/contents/ui/FolderView.qml"
+                                           "containments/desktop/package/contents/ui/main.qml"
+                                           "containments/panel/contents/ui/main.qml")
+                              (("^import \"(utils|FolderTools|LayoutManager).js\" as "
+                                line mod)
+                               (string-append "import \"../code/" mod
+                                              ".js\" as ")))))
+                        (replace 'check
+                          (lambda* (#:key tests? #:allow-other-keys)
+                            (when tests?
+                              (setenv "HOME"
+                                      (getcwd))
+                              (setenv "XDG_RUNTIME_DIR"
+                                      (getcwd))
+                              (setenv "XDG_CACHE_HOME"
+                                      (getcwd))
+                              (setenv "QT_QPA_PLATFORM" "offscreen")
+                              (invoke "ctest" "-E" "foldermodeltest")))))))
+    (home-page "https://kde.org/plasma-desktop/")
+    (synopsis "Plasma for the Desktop")
+    (description
+     "Plasma Desktop offers a beautiful looking desktop that takes
+complete advantage of modern computing technology.  Through the use of visual
+effects and scalable graphics, the desktop experience is not only smooth but
+also pleasant to the eye.  The looks of Plasma Desktop not only provide
+beauty, they are also used to support and improve your computer
+activities effectively, without being distracting.")
+    (license license:gpl2+)))
+
 (define-public plasma-disks
   (package
     (name "plasma-disks")
-- 
2.37.2

From bff96667e10c01f83a9b6e40abb283e5814cca49 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Thu, 15 Sep 2022 00:29:29 +0200
Subject: [PATCH 03/81] gnu: kwayland: Run all tests.

* gnu/packages/kde-frameworks.scm (kwayland) [arguments]: Run all tests.
Add check setup into phase before check.

diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index 8bbdacd534..ed77e56bce 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -1092,12 +1092,10 @@ (define-public kwayland
              ;; PlasmaWindowModelTest::testChangeWindowAfterModelDestroy(icon)
              (substitute* "autotests/client/test_plasma_window_model.cpp"
                ((".*changedSpy\\.wait.*") ""))))
-         (replace 'check
+         (add-before 'check 'setup-check
            (lambda* (#:key tests? #:allow-other-keys)
              (setenv "XDG_RUNTIME_DIR" (getcwd))
-             (setenv "QT_QPA_PLATFORM" "offscreen")
-             (when tests? ;; One test fails.
-               (invoke "ctest" "-E" "kwayland-testWaylandRegistry")))))))
+             (setenv "QT_QPA_PLATFORM" "offscreen"))))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Qt-style API to interact with the wayland client and server")
     (description "As the names suggest they implement a Client respectively a
-- 
2.37.2

From 8f2ec606e88f9c916969817b9ae3c06bb908459e Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Fri, 8 Apr 2022 13:24:20 +0200
Subject: [PATCH 81/81] gnu: Add plasma-phonebook.

* gnu/packages/kde-plasma.scm (plasma-phonebook): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index a69a97f9a1..cdf4c629d0 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -1973,6 +1973,35 @@ (define-public plasma-pass
     (description "Provides Plasma applet for the Pass password manager.")
     (license license:lgpl2.1+)))
 
+(define-public plasma-phonebook
+  (package
+    (name "plasma-phonebook")
+    (version "0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma-phonebook/"
+                                  version "/plasma-phonebook-" version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "13nnzdzpganlp319sc9dm9w5hsjhw4f3w8rb80q3nd8q6nyrpky8"))))
+    (build-system cmake-build-system)
+    (native-inputs (list extra-cmake-modules pkg-config))
+    (inputs (list kpeople
+                  kirigami
+                  kpeoplevcard
+                  kcoreaddons
+                  kcontacts
+                  qtbase-5
+                  qtdeclarative-5
+                  qtquickcontrols2-5
+                  qtsvg-5))
+    (home-page "https://plasma-mobile.org/")
+    (synopsis "Phonebook for Plasma Mobile devices")
+    (description "This package provides contacts application which allows
+adding, modifying and removing contacts.")
+    (license license:lgpl2.0+)))
+
 (define-public plasma-phone-components
   (package
     (name "plasma-phone-components")
-- 
2.37.2

From 959f11fec3faca7b6302c96f3e85388654b14331 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Mon, 22 Aug 2022 18:13:10 +0200
Subject: [PATCH 18/81] gnu: Add kscreen.

* gnu/packages/kde-plasma.scm (kscreen): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index 616d2b31ff..76d0f4446d 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -6,6 +6,7 @@
 ;;; Copyright © 2019 Tobias Geerinckx-Rice <[email-masked]>
 ;;; Copyright © 2020 Zheng Junjie <[email-masked]>
 ;;; Copyright © 2022 Brendan Tildesley <[email-masked]>
+;;; Copyright © 2022 Petr Hodina <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -138,6 +139,51 @@ (define-public kdecoration
 manager which re-parents a Client window to a window decoration frame.")
     (license license:lgpl3+)))
 
+(define-public kscreen
+  (package
+    (name "kscreen")
+    (version "5.25.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/"
+                                  version
+                                  "/"
+                                  name
+                                  "-"
+                                  version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "1wjpyq56iw8axbjhsa82w67g54v6y3rv5nx623d1kddvlzlhh8pf"))))
+    (build-system cmake-build-system)
+    (arguments
+     ;; TODO: All tests fail
+     (list #:tests? #f))
+    (native-inputs (list extra-cmake-modules qttools-5 pkg-config))
+    (inputs (list kconfig
+                  kdbusaddons
+                  kdeclarative
+                  kglobalaccel
+                  ki18n
+                  kwindowsystem
+                  kiconthemes
+                  kcoreaddons
+                  kcmutils
+                  kxmlgui
+                  libkscreen
+                  libxi
+                  plasma-wayland-protocols
+                  qtsensors
+                  qtbase-5
+                  qtx11extras
+                  xcb-util))
+    (propagated-inputs (list plasma-framework))
+    (home-page "https://invent.kde.org/plasma/kscreen")
+    (synopsis "Screen management software")
+    (description "This package provides the screen management software for
+KDE Plasma Workspaces.")
+    (license license:gpl2+)))
+
 (define-public ksshaskpass
   (package
     (name "ksshaskpass")
-- 
2.37.2

From 7d8f203f467f43b3a78c7600a799384b6fb277ae Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Thu, 15 Sep 2022 01:18:19 +0200
Subject: [PATCH 05/81] gnu: kcontacts: Run all but 2 tests.

* gnu/packages/kde-frameworks.scm (kcontacts) [arguments]: Run all but 2 tests.

diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index fb18910c9d..9f154bca3b 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -1627,14 +1627,8 @@ (define-public kcontacts
                (setenv "HOME" (getcwd))
                (system "Xvfb :1 -screen 0 640x480x24 &")
                (setenv "DISPLAY" ":1")
-               ;; testrounddrip fail inconsistently.
-               ;; addresstest produces wrong value:
-               ;;Actual   (address.formattedAddress(QStringLiteral("Jim Knopf"))):
-               ;;"Jim Knopf\nLummerlandstr. 1\n12345 Lummerstadt\n\nGERMANY"
-               ;;Expected (result)                                               :
-               ;;"Jim Knopf\nLummerlandstr. 1\n12345 Lummerstadt\n\nGERMANIA"
                (invoke "ctest" "-E"
-			   "(kcontacts-addresstest|kcontacts-emailtest|kcontacts-phonenumbertest|kcontacts-soundtest|kcontacts-secrecytest|kcontacts-geotest|kcontacts-keytest|kcontacts-testroundtrip|kcontacts-impptest|kcontacts-birthdaytest|kcontacts-addresseetest)")))))))
+                "(kcontacts-testroundtrip|kcontacts-addresstest)")))))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "API for contacts/address book data following the vCard standard")
     (description "This library provides a vCard data model, vCard
-- 
2.37.2

From 3b291496612b09a68fd364d11e7d6748f8772cbd Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Fri, 26 Aug 2022 06:12:31 +0200
Subject: [PATCH 50/81] gnu: Add discover.

* gnu/packages/kde-plasma.scm (discover): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index 6365578439..45bad2966e 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -126,6 +126,45 @@ (define-public breeze-gtk
     (license (list license:bsd-3                  ;cmake/FindSass.cmake
                    license:lgpl2.1+))))           ;<all other files>
 
+(define-public discover
+  (package
+    (name "discover")
+    (version "5.25.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/"
+                                  version
+                                  "/"
+                                  name
+                                  "-"
+                                  version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "154sjr7c8dwlf1m22vh3wqiyfii8xpmxmfrf36i9r0xyb0zb5zg6"))))
+    (build-system qt-build-system)
+    (native-inputs (list extra-cmake-modules pkg-config))
+    (inputs (list kcoreaddons
+                  kconfig
+                  kcrash
+                  kdbusaddons
+                  ki18n
+                  karchive
+                  kxmlgui
+                  kirigami
+                  kuserfeedback
+                  knotifications
+                  kio
+                  kdeclarative
+                  kcmutils
+                  kidletime
+                  qtdeclarative-5))
+    (synopsis "KDE and Plasma resources management GUI")
+    (description "This package provides a way to find and install applications,
+games, and tools.")
+    (home-page "https://invent.kde.org/plasma/discover")
+    (license (list license:gpl2 license:gpl3))))
+
 (define-public drkonqi
   (package
     (name "drkonqi")
-- 
2.37.2

From 8f33b33e6f9d26896f1983a0860066b17defa60c Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Fri, 26 Aug 2022 07:09:44 +0200
Subject: [PATCH 20/81] gnu: Add kmenuedit.

* gnu/packages/kde-plasma.scm (kmenuedit): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index 0e19f416eb..b02f6dd27e 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -139,6 +139,38 @@ (define-public kdecoration
 manager which re-parents a Client window to a window decoration frame.")
     (license license:lgpl3+)))
 
+(define-public kmenuedit
+  (package
+    (name "kmenuedit")
+    (version "5.25.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/"
+                                  version
+                                  "/"
+                                  name
+                                  "-"
+                                  version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "1y3ml4jscb28nvadh7iq2y240qifv71dv2nkd32i69h52xdrvz27"))))
+    (build-system qt-build-system)
+    (native-inputs (list extra-cmake-modules kdoctools))
+    (inputs (list ki18n
+                  kxmlgui
+                  kdbusaddons
+                  kiconthemes
+                  kio
+                  kitemviews
+                  sonnet
+                  kglobalaccel
+                  kwindowsystem))
+    (synopsis "Menu Editor for Plasma Workspaces")
+    (description "This package provides menu editor for Plasma Workspaces.")
+    (home-page "https://invent.kde.org/plasma/kmenuedit")
+    (license license:gpl2+)))
+
 (define-public kscreen
   (package
     (name "kscreen")
-- 
2.37.2

From 089623c2bb6d7780b967fd42e4d501a2cb1a9744 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Tue, 23 Aug 2022 20:14:58 +0200
Subject: [PATCH 41/81] gnu: Add plasma-integration.

* gnu/packages/kde-plasma.scm (plasma-integration): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index 08d3742e89..e5fe09bf92 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -739,6 +739,63 @@ (define-public plasmatube
 on QtMultimedia and @command{yt-dlp}.")
     (license license:gpl3+)))
 
+(define-public plasma-integration
+  (package
+    (name "plasma-integration")
+    (version "5.25.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/"
+                                  version
+                                  "/"
+                                  name
+                                  "-"
+                                  version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "1cbcp722pzbfiqfl5rcw6py74jbxg83k96kdx2m0g3ix1f0dmkbi"))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:tests? #f ;Failing tests
+           #:phases #~(modify-phases %standard-phases
+                        (replace 'check
+                          (lambda* (#:key tests? #:allow-other-keys)
+                            (when tests?
+                              (setenv "HOME"
+                                      (getcwd))
+                              (setenv "XDG_RUNTIME_DIR"
+                                      (getcwd))
+                              (setenv "XDG_CACHE_HOME"
+                                      (getcwd))
+                              (setenv "QT_QPA_PLATFORM" "offscreen")
+                              (invoke "ctest" "-E"
+                               "(frameworkintegration-kdeplatformtheme_unittest|frameworkintegration-kfontsettingsdata_unittest|frameworkintegration-kfiledialog_unittest|qmltests|frameworkintegration-kfiledialogqml_unittest")))))))
+    (native-inputs (list extra-cmake-modules pkg-config))
+    (inputs (list breeze
+                  kconfig
+                  kio
+                  ki18n
+                  kwidgetsaddons
+                  kconfigwidgets
+                  kiconthemes
+                  knotifications
+                  libxcb
+                  libxcursor
+                  plasma-wayland-protocols
+                  qtdeclarative-5
+                  qtquickcontrols2-5
+                  qtwayland
+                  qtx11extras
+                  wayland))
+    (home-page "https://invent.kde.org/plasma/plasma-integration")
+    (synopsis
+     "Qt Platform Theme integration plugins for the Plasma workspaces")
+    (description
+     "This package provides a set of plugins responsible for better
+integration of Qt applications when running on a KDE Plasma workspace.")
+    (license license:lgpl2.0)))
+
 (define-public plasma-nm
   (package
     (name "plasma-nm")
-- 
2.37.2

From 60b6e08cc04ae8698803f320bd3dbf8f403d9038 Mon Sep 17 00:00:00 2001
From: Brendan Tildesley <[email-masked]>
Date: Wed, 2 Mar 2022 08:29:54 +1100
Subject: [PATCH 24/81] gnu: Add libaccounts-glib.

* gnu/packages/glib.scm (libaccounts-glib): New variable.

diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 61040c91e7..30dd3ee72e 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -17,6 +17,7 @@
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <[email-masked]>
 ;;; Copyright © 2020 Arthur Margerit <[email-masked]>
 ;;; Copyright © 2021 Maxime Devos <[email-masked]>
+;;; Copyright © 2022 Petr Hodina <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -67,6 +68,7 @@ (define-module (gnu packages glib)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages sqlite)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
@@ -76,6 +78,7 @@ (define-module (gnu packages glib)
   #:use-module (guix build-system perl)
   #:use-module (guix build-system python)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix utils)
@@ -758,6 +761,58 @@ (define dbus-glib
 by GDBus included in Glib.")
     (license license:gpl2)))                     ; or Academic Free License 2.1
 
+(define-public libaccounts-glib
+  (package
+    (name "libaccounts-glib")
+    (version "1.25")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.com/accounts-sso/libaccounts-glib")
+                    (commit (string-append version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "19rhk9f97m736d5ia26vfcbjp5kgi454558yhf9mrwm4iw5d9pk4"))))
+    (build-system meson-build-system)
+    (native-inputs (list dbus
+                         `(,glib "bin")
+                         gobject-introspection
+                         gtk-doc
+                         pkg-config
+                         vala))
+    (inputs (list check python python-pygobject))
+    (propagated-inputs (list glib libxml2 sqlite))
+    (arguments
+     (list #:tests? #f ;one test fails.
+           #:imported-modules `((guix build python-build-system)
+                                ,@%meson-build-system-modules)
+           #:modules '(((guix build python-build-system)
+                        #:select (python-version))
+                       (guix build meson-build-system)
+                       (guix build utils))
+           ;; don't try installing to python store path.
+           #:configure-flags #~(list (string-append "-Dpy-overrides-dir="
+                                      #$output "/lib/python"
+                                      (python-version #$(this-package-input
+                                                         "python"))
+                                      "/site-packages/gi/overrides"))
+           #:phases #~(modify-phases %standard-phases
+                        (replace 'check
+                          (lambda* (#:key tests? #:allow-other-keys)
+                            (when tests?
+                              (invoke "dbus-run-session" "--" "meson" "test"
+                                      "--print-errorlogs")))))))
+    (home-page "https://accounts-sso.gitlab.io/")
+    (synopsis "Accounts SSO (Single Sign-On) management library for GLib
+applications")
+    (description
+     "Accounts SSO is a framework for application developers who
+wish to acquire, use and store web account details and credentials.  It
+handles the authentication process of an account and securely stores the
+credentials and service-specific settings.")
+    (license license:lgpl2.1+)))
+
 (define libsigc++
   (package
     (name "libsigc++")
-- 
2.37.2

From a1492ac1563adc5a50101b9c956dddb868524fb5 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Mon, 12 Sep 2022 05:25:02 +0200
Subject: [PATCH 49/81] gnu: Add packagekit-qt5.

* gnu/packages/qt.scm (packagekit-qt5): New variable.

diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index aa3f12ca14..c44017203e 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -4329,6 +4329,31 @@ (define-public libsignon-glib
 GLib applications.")
     (license license:lgpl2.1+)))
 
+(define-public packagekit-qt5
+  (package
+    (name "packagekit-qt5")
+    (version "1.0.2")
+    (source (origin
+              (method git-fetch)
+			  (uri (git-reference
+			  (url "https://github.com/hughsie/PackageKit-Qt")
+			  (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1d20r503msw1vix3nb6a8bmdqld7fj8k9jk33bkqsc610a2zsms6"))))
+    (build-system cmake-build-system)
+	(arguments
+	'(#:tests? #f)) ; no test suite
+    (native-inputs (list pkg-config))
+    (inputs (list packagekit qtbase-5))
+    (home-page "https://www.freedesktop.org/software/PackageKit/pk-intro.html")
+    (synopsis "Qt5 bindings for PackageKit")
+    (description "Provides Qt5 bindings to PackageKit which is a DBUS
+abstraction layer that allows the session user to manage packages in
+a secure way.")
+    (license license:lgpl2.1+)))
+
 (define-public signond
   (package
     (name "signond")
-- 
2.37.2

From aedc2e5f3dd300b6035330f5d2b1ac46a5e37992 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Wed, 10 Aug 2022 01:20:21 +0200
Subject: [PATCH 35/81] gnu: Add latte-dock.

* gnu/packages/kde-plasma.scm (latte-dock): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index 9f91712b42..f6d8799412 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -277,6 +277,48 @@ (define-public ksshaskpass
 call it if it is not associated to a terminal.")
     (license license:gpl2+)))
 
+(define-public latte-dock
+  (package
+    (name "latte-dock")
+    (version "0.10.8")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/latte-dock/"
+                                  "latte-dock-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0ali9i0y0y1c5mdaps5ybhk4nqvzzs5jq27wj8rg8xxqjyfvbah0"))))
+    (build-system cmake-build-system)
+    (native-inputs (list extra-cmake-modules))
+    (inputs (list qtbase-5
+                  qtdeclarative-5
+                  knotifications
+                  kwindowsystem
+                  kio
+                  plasma-framework
+                  kwayland
+                  kactivities
+                  kcrash
+                  kiconthemes
+                  knewstuff
+                  karchive
+                  kguiaddons
+                  kdbusaddons
+                  kglobalaccel
+                  kirigami
+                  ki18n
+                  kdeclarative
+                  kcoreaddons
+                  xcb-util
+                  qtx11extras
+                  libsm))
+    (synopsis "Latte is a dock based on plasma frameworks")
+    (description
+     "Latte is a dock based on plasma frameworks that provides
+an elegant and intuitive experience for your tasks and plasmoids.")
+    (home-page "https://github.com/KDE/latte-dock")
+    (license license:gpl2+)))
+
 (define-public layer-shell-qt
   (package
     (name "layer-shell-qt")
-- 
2.37.2

From fc541c20b0e670426d16ae153aefddb44f3ea5f4 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Mon, 29 Aug 2022 00:13:36 +0200
Subject: [PATCH 76/81] gnu: Add plasma-nano.

* gnu/packages/kde-plasma.scm (plasma-nano): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index 66d29d3898..44f5592eb9 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -1750,6 +1750,30 @@ (define-public plasma-integration
 integration of Qt applications when running on a KDE Plasma workspace.")
     (license license:lgpl2.0)))
 
+(define-public plasma-nano
+  (package
+    (name "plasma-nano")
+    (version "5.24.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://download.kde.org/stable/plasma/"
+                                  version "/plasma-nano-" version ".tar.xz"))
+              (sha256
+               (base32
+                "13jxhfi3c3dhg7zdyfqnsii661h1am0w9dsv82dalqvwr1mw28l5"))))
+    (build-system cmake-build-system)
+    (native-inputs (list extra-cmake-modules pkg-config qttools))
+    (inputs (list qtbase-5
+                  qtdeclarative-5
+                  plasma-framework
+                  kwindowsystem
+                  kwayland
+                  ki18n))
+    (home-page "https://plasma-mobile.org/")
+    (synopsis "Minimal Plasma Shell package")
+    (description "This package provides minimal implementation of Plasma Shell.")
+    (license license:lgpl2.0+)))
+
 (define-public plasma-nm
   (package
     (name "plasma-nm")
-- 
2.37.2

From f7fe1dc45261562df968caf01d59f6de1239c36b Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Sun, 30 Jan 2022 10:56:07 +0100
Subject: [PATCH 77/81] gnu: Add plasma-phone-components.

* gnu/packages/kde-plasma.scm (plasma-phone-components): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index 44f5592eb9..e63722472b 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -57,6 +57,7 @@ (define-module (gnu packages kde-plasma)
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages maths)
+  #:use-module (gnu packages messaging)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages pciutils)
   #:use-module (gnu packages pkg-config)
@@ -1885,6 +1886,55 @@ (define-public plasma-pass
     (description "Provides Plasma applet for the Pass password manager.")
     (license license:lgpl2.1+)))
 
+(define-public plasma-phone-components
+  (package
+    (name "plasma-phone-components")
+    (version "5.23.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/" version
+                                  "/plasma-phone-components-" version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "0ml5pyi90nlmx5550sf3x9263f8mypj4jmdskzabzhnz44ck8vy9"))))
+    (build-system cmake-build-system)
+    (native-inputs (list extra-cmake-modules pkg-config qttools))
+    (inputs (list qtbase-5
+                  qtdeclarative
+                  kactivities
+                  kauth
+                  kbookmarks
+                  kwin
+                  kcodecs
+                  kcompletion
+                  kconfig
+                  kconfigwidgets
+                  kcoreaddons
+                  kdbusaddons
+                  kdeclarative
+                  ki18n
+                  kio
+                  kitemviews
+                  kjobwidgets
+                  knotifications
+                  kpackage
+                  kpeople
+                  kservice
+                  kwayland
+                  kwidgetsaddons
+                  kwindowsystem
+                  kxmlgui
+                  libphonenumber
+                  modemmanager-qt
+                  plasma-framework
+                  solid))
+    (home-page "https://plasma-mobile.org/")
+    (synopsis "Modules providing phone functionality for Plasma")
+    (description "This package provides user-friendly, privacy-enabling
+and customizable platform for mobile devices.")
+    (license (list license:gpl3+ license:lgpl2.1+))))
+
 (define-public plasma-vault
   (package
     (name "plasma-vault")
-- 
2.37.2

From 347ef34e21cb6c317030014f4744dc6c826c257c Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Fri, 26 Aug 2022 06:20:06 +0200
Subject: [PATCH 22/81] gnu: Add kactivitymanagerd.

* gnu/packages/kde-plasma.scm (kactivitymanagerd): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index b02f6dd27e..dd4e148e42 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -32,6 +32,7 @@ (define-module (gnu packages kde-plasma)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system qt)
   #:use-module (gnu packages admin)
+  #:use-module (gnu packages boost)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages glib)
@@ -116,6 +117,40 @@ (define-public breeze-gtk
     (license (list license:bsd-3                  ;cmake/FindSass.cmake
                    license:lgpl2.1+))))           ;<all other files>
 
+(define-public kactivitymanagerd
+  (package
+    (name "kactivitymanagerd")
+    (version "5.25.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/"
+                                  version
+                                  "/"
+                                  name
+                                  "-"
+                                  version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "1cpz08jkmxw9576h9mkn15vwg3bxgk8k6w4f38rkiasxzj6zfamd"))))
+    (build-system qt-build-system)
+    (native-inputs (list extra-cmake-modules))
+    (inputs (list kconfig
+                  kcoreaddons
+                  kwindowsystem
+                  kglobalaccel
+                  kio
+                  kxmlgui
+                  kdbusaddons
+                  ki18n
+                  kcrash
+                  boost))
+    (synopsis "System service to manage user's activities")
+    (description "This package provides components for managing the KDE Activity
+concept.")
+    (home-page "https://invent.kde.org/plasma/kactivitymanagerd")
+    (license (list license:gpl2 license:gpl3))))
+
 (define-public kdecoration
   (package
     (name "kdecoration")
-- 
2.37.2

From 219960516b961fd6257a450ad29e519ec8053bd4 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Fri, 26 Aug 2022 05:54:06 +0200
Subject: [PATCH 46/81] gnu: Add drkonqi.

* gnu/packages/kde-plasma.scm (drkonqi): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index 954a4e7223..6365578439 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -126,6 +126,51 @@ (define-public breeze-gtk
     (license (list license:bsd-3                  ;cmake/FindSass.cmake
                    license:lgpl2.1+))))           ;<all other files>
 
+(define-public drkonqi
+  (package
+    (name "drkonqi")
+    (version "5.25.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/"
+                                  version
+                                  "/"
+                                  name
+                                  "-"
+                                  version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "06na44x22bxd94r24xkzc373d0rhmv6l1awfq0bzh9cxpy8yg3f4"))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:phases #~(modify-phases %standard-phases
+                        (replace 'check
+                          (lambda* (#:key tests? #:allow-other-keys)
+                            (when tests?
+                              (invoke "ctest" "-E" "connectiontest")))))))
+    (native-inputs (list extra-cmake-modules))
+    (inputs (list ki18n
+                  kcoreaddons
+                  kconfig
+                  kservice
+                  kdeclarative
+                  kjobwidgets
+                  kio
+                  kcrash
+                  kcompletion
+                  kwidgetsaddons
+                  kwallet
+                  knotifications
+                  kidletime
+                  kwindowsystem
+                  ksyntaxhighlighting
+                  qtdeclarative-5))
+    (synopsis "Crash handler for KDE software")
+    (description "This package provides an automatic handler for crashed apps.")
+    (home-page "https://invent.kde.org/plasma/drkonqi")
+    (license license:gpl2+)))
+
 (define-public kactivitymanagerd
   (package
     (name "kactivitymanagerd")
-- 
2.37.2

From b4703b8e573727a64354fbe274ed8f6801b06612 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Fri, 26 Aug 2022 06:29:52 +0200
Subject: [PATCH 68/81] gnu: Add kde-cli-tools.

* gnu/packages/kde-plasma.scm (kde-cli-tools): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index d4a397cae2..3cb8f3854e 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -345,6 +345,49 @@ (define-public kdecoration
 manager which re-parents a Client window to a window decoration frame.")
     (license license:lgpl3+)))
 
+(define-public kde-cli-tools
+  (package
+    (name "kde-cli-tools")
+    (version "5.25.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/"
+                                  version
+                                  "/"
+                                  name
+                                  "-"
+                                  version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "00p6vm9qw871hjclvw21nh93dq60r1ylb95hscx917gfx42dan8x"))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:tests? #f ;TODO: Failing test
+           #:phases #~(modify-phases %standard-phases
+                        (add-before 'check 'setup-env
+                          (lambda* _
+                            (setenv "XDG_RUNTIME_DIR"
+                                    (getcwd)))))))
+    (native-inputs (list extra-cmake-modules))
+    (inputs (list kconfig
+                  kdoctools
+                  kiconthemes
+                  ki18n
+                  kcmutils
+                  kio
+                  kservice
+                  kwindowsystem
+                  kactivities
+                  kparts
+                  plasma-workspace
+                  qtsvg-5))
+    (synopsis "Tools for KDE to better interact with the system")
+    (description "This package provides tools based on KDE Frameworks 5
+to better interact with the system.")
+    (home-page "https://invent.kde.org/plasma/kde-cli-tools")
+    (license license:lgpl2.0+)))
+
 (define-public kinfocenter
   (package
     (name "kinfocenter")
-- 
2.37.2

From 81e4cd948a9f02677fca2c3a0a5b1e7fc6706741 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Fri, 26 Aug 2022 07:04:39 +0200
Subject: [PATCH 67/81] gnu: Add kinfocenter.

* gnu/packages/kde-plasma.scm (kinfocenter): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index c9645454df..d4a397cae2 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -59,6 +59,8 @@ (define-module (gnu packages kde-plasma)
   #:use-module (gnu packages python)
   #:use-module (gnu packages video)
   #:use-module (gnu packages vpn)
+  #:use-module (gnu packages vulkan)
+  #:use-module (gnu packages textutils)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xorg)
@@ -343,6 +345,66 @@ (define-public kdecoration
 manager which re-parents a Client window to a window decoration frame.")
     (license license:lgpl3+)))
 
+(define-public kinfocenter
+  (package
+    (name "kinfocenter")
+    (version "5.25.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/"
+                                  version
+                                  "/"
+                                  name
+                                  "-"
+                                  version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "0ns2xsqghglg4ikq7w556y1kh20gs677km1vs0paw50xhi7jzbd2"))))
+    (build-system cmake-build-system)
+    (arguments
+     (list #:phases #~(modify-phases %standard-phases
+                        (add-after 'unpack 'fix-systemsettings-symlink
+                          (lambda* _
+                            (substitute* "CMakeLists.txt"
+                              (("\\$\\{KDE_INSTALL_FULL_BINDIR\\}/systemsettings5")
+                               (string-append #$system-settings
+                                              "/bin/systemsettings5"))))))))
+    (native-inputs (list aha extra-cmake-modules kdoctools pkg-config))
+    ;; * vulkaninfo
+    ;; * wayland-info, <https://gitlab.freedesktop.org/wayland/wayland-utils>
+    ;; Wayland KCM
+    ;; * eglinfo
+    (inputs (list dmidecode
+                  ;; fwupdmgr
+                  kconfig
+                  kconfigwidgets
+                  kcoreaddons
+                  kirigami
+                  ki18n
+                  kcmutils
+                  kio
+                  kservice
+                  solid
+                  kwidgetsaddons
+                  kdeclarative
+                  kpackage
+                  kwayland
+                  mesa-utils
+                  pciutils
+                  solid
+                  util-linux
+                  vulkan-tools
+                  plasma-framework
+                  qtbase-5
+                  xdpyinfo))
+    (propagated-inputs (list system-settings))
+    (home-page "https://invent.kde.org/plasma/kinfocenter")
+    (synopsis "View information about computer's hardware")
+    (description "This package provides tool to view information about
+computer's hardware.")
+    (license (list license:gpl2 license:gpl3))))
+
 (define-public kmenuedit
   (package
     (name "kmenuedit")
-- 
2.37.2

From bdd258cdde87324cb65153f8be0857346950c1e1 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Fri, 26 Aug 2022 08:07:54 +0200
Subject: [PATCH 43/81] gnu: Add plasma-disks.

* gnu/packages/kde-plasma.scm (plasma-disks): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index d420df1c9a..6903109e05 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -741,6 +741,39 @@ (define-public plasmatube
 on QtMultimedia and @command{yt-dlp}.")
     (license license:gpl3+)))
 
+(define-public plasma-disks
+  (package
+    (name "plasma-disks")
+    (version "5.25.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/"
+                                  version
+                                  "/"
+                                  name
+                                  "-"
+                                  version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "04hs8jg7f5bm5rjcb6i6zidyamq6cfry5sm5mj6hqdj0qmn9i396"))))
+    (build-system qt-build-system)
+    (native-inputs (list extra-cmake-modules))
+    (inputs (list kcoreaddons
+                  kdbusaddons
+                  knotifications
+                  ki18n
+                  solid
+                  kservice
+                  kio
+                  kauth
+                  kdeclarative
+                  smartmontools))
+    (synopsis "Monitors S.M.A.R.T. capable devices for imminent failure")
+    (description "This package provides intrface to S.M.A.R.T. data of disks.")
+    (home-page "https://invent.kde.org/plasma/plasma-disks")
+    (license (list license:gpl2 license:gpl3))))
+
 (define-public plasma-integration
   (package
     (name "plasma-integration")
-- 
2.37.2

From c7118c2f34c227c567b6db4ed8a03e07c9950780 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Tue, 23 Aug 2022 15:42:30 +0200
Subject: [PATCH 39/81] gnu: Add plasma-pass.

* gnu/packages/kde-plasma.scm (plasma-pass): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index 5273402553..ff77c37cc8 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -34,6 +34,8 @@ (define-module (gnu packages kde-plasma)
   #:use-module (guix build-system qt)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages boost)
+  #:use-module (gnu packages authentication)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages glib)
@@ -734,6 +736,31 @@ (define-public plasmatube
 on QtMultimedia and @command{yt-dlp}.")
     (license license:gpl3+)))
 
+(define-public plasma-pass
+  (package
+    (name "plasma-pass")
+    (version "1.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/"
+                                  name
+                                  "/"
+                                  name
+                                  "-"
+                                  version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "107pd6cnkd46px83pm3q7vbw10g5pd0qsw77jmr0c774k4xv1w01"))))
+    (build-system qt-build-system)
+    (native-inputs (list extra-cmake-modules))
+    (inputs (list ki18n kitemmodels kwindowsystem oath-toolkit qtdeclarative-5))
+    (propagated-inputs (list plasma-framework))
+    (home-page "https://invent.kde.org/plasma/plasma-pass")
+    (synopsis "Plasma applet for the Pass password manager")
+    (description "Provides Plasma applet for the Pass password manager.")
+    (license license:lgpl2.1+)))
+
 (define-public plasma-vault
   (package
     (name "plasma-vault")
-- 
2.37.2

From 6a70ade51281da4afe2ca71a60390cfdcc70a1bb Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Fri, 1 Apr 2022 23:00:37 +0200
Subject: [PATCH 62/81] gnu: Add kwin-effects-yet-another-magic-lamp.

* gnu/packages/kde-frameworks.scm (kwin-effects-yet-another-magic-lamp): New
  variable.

diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index 27c0ac3b8b..9f3854db6b 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -1579,6 +1579,35 @@ (define-public threadweaver
 uses a job-based interface to queue tasks and execute them in an efficient way.")
     (license license:lgpl2.1+)))
 
+(define-public kwin-effects-yet-another-magic-lamp
+  (package
+    (name "kwin-effects-yet-another-magic-lamp")
+    (version "5.24.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url
+                     "https://github.com/zzag/kwin-effects-yet-another-magic-lamp")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0aggi3p10kaa8lann0j7cp2g76qh83s1r7akjcjc2y4anv0asz68"))))
+    (build-system cmake-build-system)
+    (native-inputs (list extra-cmake-modules pkg-config))
+    (inputs (list qtbase-5
+                  kwindowsystem
+                  kconfigwidgets
+                  kcoreaddons
+                  kconfig
+                  kwin
+                  libepoxy))
+    (home-page "https://github.com/zzag/kwin-effects-yet-another-magic-lamp")
+    (synopsis "Just Yet Another Magic Lamp Kwin plugin")
+    (description "This package provides a window minimization effect
+for KWin.  Whenever a window is minimized, it'll get sucked down into
+the dock/panel.")
+    (license license:gpl2+)))
 
 ;; Tier 2
 ;;
-- 
2.37.2

From a79fcf2bc891649acd9c55a6165914057629b0a3 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Tue, 23 Aug 2022 20:33:15 +0200
Subject: [PATCH 42/81] gnu: Add plasma-pa.

* gnu/packages/kde-plasma.scm (plasma-pa): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index e5fe09bf92..d420df1c9a 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -43,8 +43,10 @@ (define-module (gnu packages kde-plasma)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages kde)
   #:use-module (gnu packages kde-frameworks)
+  #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
   #:use-module (gnu packages video)
   #:use-module (gnu packages vpn)
@@ -848,6 +850,40 @@ (define-public plasma-nm
 connections.")
     (license (list license:lgpl2.1 license:lgpl3))))
 
+(define-public plasma-pa
+  (package
+    (name "plasma-pa")
+    (version "5.25.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/"
+                                  version
+                                  "/"
+                                  name
+                                  "-"
+                                  version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "0v92jk826jj2kf11hlxh3xrxl9nsj6835ik2pmb192xbn6gpb4lm"))))
+    (build-system qt-build-system)
+    (native-inputs (list extra-cmake-modules kdoctools pkg-config))
+    (inputs (list glib
+                  kcoreaddons
+                  kdeclarative
+                  kglobalaccel
+                  knotifications
+                  kwindowsystem
+                  kirigami
+                  ki18n
+                  qtdeclarative-5))
+    (propagated-inputs (list libcanberra pulseaudio plasma-framework))
+    (home-page "https://invent.kde.org/plasma/plasma-pa")
+    (synopsis "Plasma applet for audio volume management using PulseAudio")
+    (description
+     "Provide Plasma applet for audio volume management using PulseAudio")
+    (license (list license:lgpl2.1 license:lgpl3))))
+
 (define-public plasma-pass
   (package
     (name "plasma-pass")
-- 
2.37.2

From 05363d837e133e06af9eb624f6205e9b53f36f9e Mon Sep 17 00:00:00 2001
From: Brendan Tildesley <[email-masked]>
Date: Sat, 5 Mar 2022 11:46:47 +1100
Subject: [PATCH 28/81] gnu: Add libaccounts-qt.

* gnu/packages/qt.scm (libaccounts-qt): New variable.

diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 7d27ff5e45..c0e79e268a 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -25,6 +25,7 @@
 ;;; Copyright © 2021 Nicolò Balzarotti <[email-masked]>
 ;;; Copyright © 2022 Foo Chuan Wei <[email-masked]>
 ;;; Copyright © 2022 Zhu Zihao <[email-masked]>
+;;; Copyright © 2022 Petr Hodina <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -4234,6 +4235,42 @@ (define-public kdsoap
 web server.")
     (license (list license:gpl2 license:gpl3))))
 
+(define-public libaccounts-qt
+  (package
+    (name "libaccounts-qt")
+    (version "1.16")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.com/accounts-sso/libaccounts-qt")
+                    (commit (string-append "VERSION_" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1vmpjvysm0ld8dqnx8msa15hlhrkny02cqycsh4k2azrnijg0xjz"))))
+    (build-system gnu-build-system)
+    (arguments
+     (list #:tests? #f
+           #:phases #~(modify-phases %standard-phases
+                        (replace 'configure
+                          (lambda _
+                            (substitute* "tests/tst_libaccounts.pro"
+                              (("QMAKE_RPATHDIR = \\$\\$\\{QMAKE_LIBDIR\\}")
+                               (string-append "QMAKE_RPATHDIR ="
+                                              #$output "/lib")))
+                            (invoke "qmake"
+                                    (string-append "PREFIX="
+                                                   #$output)
+                                    (string-append "LIBDIR="
+                                                   #$output "/lib")))))))
+    ;; * SignOnQt5 (required version >= 8.55), D-Bus service which performs user authentication on behalf of its clients, <https://gitlab.com/accounts-sso/signond>
+    (native-inputs (list doxygen pkg-config qtbase-5 qttools-5))
+    (inputs (list glib signond libaccounts-glib))
+    (home-page "https://accounts-sso.gitlab.io/")
+    (synopsis "Qt5 bindings for libaccounts-glib")
+    (description #~(package-description libaccounts-glib))
+    (license license:lgpl2.1+)))
+
 (define-public signond
   (package
     (name "signond")
-- 
2.37.2

From b98ea9efbdb3cb9c47d6d8aa1895ad1d3df83b33 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Tue, 23 Aug 2022 20:13:56 +0200
Subject: [PATCH 40/81] gnu: Add plasma-nm.

* gnu/packages/kde-plasma.scm (plasma-nm): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index ff77c37cc8..08d3742e89 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -39,12 +39,15 @@ (define-module (gnu packages kde-plasma)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages glib)
+  #:use-module (gnu packages gnome)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages kde)
   #:use-module (gnu packages kde-frameworks)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages video)
+  #:use-module (gnu packages vpn)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xorg)
@@ -736,6 +739,58 @@ (define-public plasmatube
 on QtMultimedia and @command{yt-dlp}.")
     (license license:gpl3+)))
 
+(define-public plasma-nm
+  (package
+    (name "plasma-nm")
+    (version "5.25.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/"
+                                  version
+                                  "/"
+                                  name
+                                  "-"
+                                  version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "147p572pmkrgg52pvwhzs8lvxy3rs8y622n9lj7hjc6hrlh14qk2"))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:phases #~(modify-phases %standard-phases
+                        (replace 'check
+                          (lambda* (#:key tests? #:allow-other-keys)
+                            (when tests?
+                              (invoke "ctest" "-E" "mobileproviderstest")))))))
+    (native-inputs (list extra-cmake-modules pkg-config))
+    (home-page "https://invent.kde.org/plasma/plasma-nm")
+    (inputs (list kconfigwidgets
+                  kcompletion
+                  kcoreaddons
+                  kdeclarative
+                  kdbusaddons
+                  kio
+                  ki18n
+                  knetworkmanager
+                  knotifications
+                  kirigami
+                  plasma-framework
+                  modemmanager-qt
+                  network-manager
+                  qca
+                  kservice
+                  solid
+                  prison
+                  kwallet
+                  kwidgetsaddons
+                  kwindowsystem
+                  openconnect
+                  qtdeclarative-5))
+    (synopsis "Plasma applet written in QML for managing network connections")
+    (description "Provide Plasma applet written in QML for managing network
+connections.")
+    (license (list license:lgpl2.1 license:lgpl3))))
+
 (define-public plasma-pass
   (package
     (name "plasma-pass")
-- 
2.37.2

From 53968a5518abfa3a489b9dfc69b2a57924e9cc0e Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Tue, 23 Aug 2022 10:39:35 +0200
Subject: [PATCH 63/81] gnu: Add plasma-workspace-wallpapers.

* gnu/packages/kde-plasma.scm (plasma-workspace-wallpapers): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index bf92351481..9ef70a85d5 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -1482,6 +1482,29 @@ (define-public plasma-systemmonitor
     (home-page "https://invent.kde.org/plasma/plasma-systemmonitor")
     (license (list license:gpl2 license:gpl3))))
 
+(define-public plasma-workspace-wallpapers
+  (package
+    (name "plasma-workspace-wallpapers")
+    (version "5.25.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/"
+                                  version
+                                  "/"
+                                  name
+                                  "-"
+                                  version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "1vjrfmzib17cb9r2q17rv4zmnqsk5mf55vy8kzx71djjif7gaqiy"))))
+    (build-system cmake-build-system)
+    (native-inputs (list extra-cmake-modules))
+    (home-page "https://community.kde.org/Frameworks")
+    (synopsis "Oxygen provides the standard wallpapers for the KDE desktop")
+    (description "This package provides Wallpapers for the KDE desktop.")
+    (license license:lgpl3+)))
+
 (define-public polkit-kde-agent
   (package
     (name "polkit-kde-agent")
-- 
2.37.2

From c17e20fe8ddf2dbb18aa47c5c908f0d9e2e8e439 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Fri, 26 Aug 2022 09:58:25 +0200
Subject: [PATCH 56/81] gnu: Add xdg-desktop-portal-kde.

* gnu/packages/freedesktop.scm (xdg-desktop-portal-kde): New variable.

diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 08fea2ad78..1a04974dbc 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -61,6 +61,7 @@ (define-module (gnu packages freedesktop)
   #:use-module (guix build-system perl)
   #:use-module (guix build-system python)
   #:use-module (guix build-system glib-or-gtk)
+  #:use-module (guix build-system qt)
   #:use-module (gnu packages)
   #:use-module (gnu packages acl)
   #:use-module (gnu packages admin)
@@ -73,6 +74,7 @@ (define-module (gnu packages freedesktop)
   #:use-module (gnu packages cmake)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cryptsetup)
+  #:use-module (gnu packages cups)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages disk)
@@ -92,6 +94,7 @@ (define-module (gnu packages freedesktop)
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
+  #:use-module (gnu packages kde-frameworks)
   #:use-module (gnu packages language)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages libunwind)
@@ -2557,6 +2560,47 @@ (define-public xdg-desktop-portal-gtk
 interfaces.")
     (license license:lgpl2.1+)))
 
+(define-public xdg-desktop-portal-kde
+  (package
+    (name "xdg-desktop-portal-kde")
+    (version "5.25.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/"
+                                  version
+                                  "/"
+                                  name
+                                  "-"
+                                  version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "13gva3mci9gawlxpw4ymdma8w6lc2b3y8z36699kmzli4vib214g"))))
+    (build-system qt-build-system)
+    (native-inputs (list extra-cmake-modules pkg-config))
+    (inputs (list cups
+                  kcoreaddons
+                  kconfig
+                  ki18n
+                  kdeclarative
+                  kio
+                  kirigami
+                  knotifications
+                  plasma-framework
+                  plasma-wayland-protocols
+                  kwayland
+                  kwidgetsaddons
+                  kwindowsystem
+                  kiconthemes
+                  qtdeclarative-5
+                  qtwayland
+                  wayland))
+    (synopsis "Backend implementation for xdg-desktop-portal using Qt/KF5")
+    (description "This package provides a backend implementation
+for xdg-desktop-portal that is using Qt/KF5.")
+    (home-page "https://invent.kde.org/plasma/xdg-desktop-portal-kde")
+    (license license:lgpl2.0+)))
+
 (define-public xdg-desktop-portal-wlr
   (package
     (name "xdg-desktop-portal-wlr")
-- 
2.37.2

From 06150f4eb4f0e68e381bdbac0cb95ff92ad02853 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Tue, 23 Aug 2022 21:35:17 +0200
Subject: [PATCH 74/81] gnu: Add plasma meta-package.

* gnu/packages/kde-plasma.scm (plasma): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index d9f77f0a26..66d29d3898 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -31,12 +31,15 @@ (define-module (gnu packages kde-plasma)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix gexp)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system copy)
+  #:use-module (guix build-system trivial)
   #:use-module (guix build-system qt)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages authentication)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages display-managers)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages ghostscript)
@@ -49,12 +52,15 @@ (define-module (gnu packages kde-plasma)
   #:use-module (gnu packages iso-codes)
   #:use-module (gnu packages kde)
   #:use-module (gnu packages kde-frameworks)
+  #:use-module (gnu packages kde-pim)
+  ;#:use-module ((gnu packages kde-systemtools) #:select (konsole))
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages pciutils)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages polkit)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
   #:use-module (gnu packages video)
@@ -1309,6 +1315,66 @@ (define-public oxygen-sounds
     (description "This package provides Oxygen sounds for the KDE desktop.")
     (license license:lgpl3+)))
 
+(define-public plasma
+  (package
+    (name "plasma")
+    (version "5.25.4")
+    (source #f)
+    (build-system trivial-build-system)
+    (arguments
+     (list #:builder #~(begin
+                         (mkdir #$output))))
+    (propagated-inputs (list bluedevil
+                             breeze
+                             ;; breeze-gtk
+                             discover
+                             drkonqi
+                             kactivitymanagerd
+                             kde-cli-tools
+                             ;; kde-gtk-config
+                             kdecoration
+                             kdeplasma-addons
+                             kgamma
+                             khotkeys
+                             kinfocenter
+                             kmenuedit
+                             kscreen
+                             kscreenlocker
+                             ksshaskpass
+                             ksystemstats
+                             kwallet-pam
+                             kwayland-integration
+                             kwin
+                             kwrited
+                             kinit
+                             layer-shell-qt
+                             libkscreen
+                             libksysguard
+                             milou
+                             ;; oxygen
+                             oxygen-sounds
+                             plasma-browser-integration
+                             plasma-desktop
+                             plasma-disks
+                             plasma-firewall
+                             plasma-integration
+                             plasma-nm
+                             plasma-pa
+                             plasma-systemmonitor
+                             ;; plasma-thunderbolt ;; waiting for bolt
+                             plasma-vault
+                             plasma-workspace
+                             plasma-workspace-wallpapers
+                             polkit-kde-agent
+                             powerdevil
+                             sddm
+                             system-settings
+                             xdg-desktop-portal-kde))
+    (synopsis "Plasma desktop")
+    (home-page "https://kde.org/plasma-desktop/")
+    (description "Meta package containing packages for Plasma Desktop")
+    (license license:gpl2+)))
+
 (define-public plasmatube
   (package
     (name "plasmatube")
-- 
2.37.2

From 05d15b39f5698d8a236ca9f4057177de43336d3f Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Sun, 14 Aug 2022 01:57:34 +0200
Subject: [PATCH 27/81] gnu: Add kpublictransport.

* gnu/packages/kde-utils.scm (kpublictransport): New variable.

diff --git a/gnu/packages/kde-utils.scm b/gnu/packages/kde-utils.scm
index b2295d184a..5ed2065012 100644
--- a/gnu/packages/kde-utils.scm
+++ b/gnu/packages/kde-utils.scm
@@ -374,6 +374,35 @@ (define-public krusader
 great on your desktop.")
     (license license:gpl2+)))
 
+(define-public kpublictransport
+  (package
+    (name "kpublictransport")
+    (version "22.04.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://kde/stable/release-service/" version
+                    "/src/kpublictransport-" version ".tar.xz"))
+              (sha256
+               (base32
+                "05s8mpqn74vz1daim3qdyfg8n7b7n8f18hzcybiim4zxcy2k71rz"))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:phases '(modify-phases %standard-phases
+                       (replace 'check
+                         (lambda* (#:key tests? #:allow-other-keys)
+                           (when tests?
+                             (invoke "ctest" "-E"
+                              "(mergeutiltest|departuretest|journeytest|networkconfigtest|locationhistorymodeltest|navitiaparsertest|otpparsertest|ivvassparsertest|cachetest|locationhistorymodeltest)")))))))
+    (native-inputs (list extra-cmake-modules))
+    (inputs (list zlib qtdeclarative-5))
+    (home-page "https://api.kde.org/kdepim/kpublictransport/html/index.html")
+    (synopsis "Library for accessing realtime public transport data")
+    (description
+     "This pakckage provides library for accessing realtime public
+transport data and for performing public transport journey queries.")
+    (license (list license:lgpl2.0+))))
+
 (define-public kxstitch
   (package
     (name "kxstitch")
-- 
2.37.2

From a564ed1882484d24aaa50712e1967a7827c10079 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Mon, 29 Aug 2022 15:05:21 +0200
Subject: [PATCH 59/81] gnu: Add calindori.

* gnu/packages/kde-plasma.scm (kde-plasma): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index 33b2ec5181..2826b53b9f 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -129,6 +129,38 @@ (define-public breeze-gtk
     (license (list license:bsd-3                  ;cmake/FindSass.cmake
                    license:lgpl2.1+))))           ;<all other files>
 
+(define-public calindori
+  (package
+    (name "calindori")
+    (version "22.06")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma-mobile/" version
+                                  "/calindori-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0fcbkk1yisdd6z1qvac9x6i55wfppqpdma87a0n5smm191lkjg07"))))
+    (build-system qt-build-system)
+    (native-inputs (list extra-cmake-modules))
+    (inputs (list kconfig
+                  kcoreaddons
+                  kdbusaddons
+                  ki18n
+                  kirigami
+                  kcalendarcore
+                  knotifications
+                  kpeople
+                  qtbase-5
+                  qtdeclarative-5
+                  qtquickcontrols2-5
+                  qtsvg-5
+                  qtgraphicaleffects))
+    (home-page "https://invent.kde.org/plasma-mobile/calindori")
+    (synopsis "Calendar for Plasma Mobile")
+    (description
+     "This package provides a touch friendly calendar application.")
+    (license license:gpl3+)))
+
 (define-public discover
   (package
     (name "discover")
-- 
2.37.2

From c15cf15bd19c16b8f38c90151656012868aefbbc Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Tue, 23 Aug 2022 21:36:25 +0200
Subject: [PATCH 45/81] gnu: Add plasma-active-window-control.

* gnu/packages/kde-plasma.scm (plasma-active-window-control): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index 591ce016f4..954a4e7223 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -748,6 +748,30 @@ (define-public plasmatube
 on QtMultimedia and @command{yt-dlp}.")
     (license license:gpl3+)))
 
+(define-public plasma-active-window-control
+(let ((commit "0b1c091b5662fb21917064d7809b3be8b4a8be47")
+       (revision "1"))
+  (package
+    (name "plasma-active-window-control")
+    (version "1.7.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://invent.kde.org/plasma/"
+			  "plasma-active-window-control/-/archive/"commit
+			  "/plasma-active-window-control-" commit ".tar.gz"))
+              (sha256
+               (base32
+                "1q1scv2x7jrda14zyaqh13aqxpxa42lysdvcfmplpr6w38gcsvlh"))))
+    (build-system qt-build-system)
+    (native-inputs (list extra-cmake-modules))
+	(inputs (list kwindowsystem libsm plasma-framework qtdeclarative-5
+	qtx11extras))
+    (home-page "https://invent.kde.org/plasma/plasma-active-window-control")
+    (synopsis "Plasma applet for controlling the currently active window")
+    (description "This package provides window control applet for the current
+active window on Plasma Desktop.")
+    (license (list license:gpl2 license:gpl3)))))
+
 (define-public plasma-disks
   (package
     (name "plasma-disks")
-- 
2.37.2

From ccfed518fd18bcae0ef274badfa515e1e908b958 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Fri, 25 Mar 2022 11:38:20 +0100
Subject: [PATCH 31/81] gnu: Add maliit-framework.

* gnu/pacakges/kde-frameworks.scm (maliit-framework): New variable.

diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index fcdb0aa331..61dccb7922 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -33,6 +33,7 @@ (define-module (gnu packages kde-frameworks)
   #:use-module (guix build-system qt)
   #:use-module (guix build-system trivial)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix utils)
@@ -50,6 +51,7 @@ (define-module (gnu packages kde-frameworks)
   #:use-module (gnu packages calendar)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages databases)
+  #:use-module (gnu packages documentation)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages freedesktop)
@@ -86,6 +88,7 @@ (define-module (gnu packages kde-frameworks)
   #:use-module (gnu packages video)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml)
+  #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xorg)
   #:use-module (srfi srfi-1))
 
@@ -1229,6 +1232,40 @@ (define-public kwindowsystem
     ;; the lgpl2.1. Some source files are under non-copyleft licenses.
     (license license:lgpl2.1+)))
 
+(define-public maliit-framework
+  (package
+    (name "maliit-framework")
+    (version "2.3.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/maliit/framework")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1dkjxvfxg56hfy70j6ibfklfyv57jiha4vgc3ggl60r5kjx65s5b"))))
+    (build-system cmake-build-system)
+    (native-inputs (list extra-cmake-modules
+                         wayland-protocols
+                         pkg-config
+                         doxygen
+                         graphviz
+                         `(,glib "bin"))) ;for gdbus-codegen))
+    (inputs (list qtbase-5
+                  qtdeclarative-5
+                  qtwayland
+                  wayland
+                  libxkbcommon
+                  dbus
+                  eudev
+                  glib))
+    (home-page "https://github.com/maliit/framework")
+    (synopsis "Core libraries of Maliit")
+    (description "This package provides Maliit provides a flexible input
+method framework.")
+    (license license:lgpl2.1+)))
+
 (define-public modemmanager-qt
   (package
     (name "modemmanager-qt")
-- 
2.37.2

From 8b8006a2981cb2209d7a75d5cbebd00dffcc197d Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Fri, 25 Mar 2022 11:37:17 +0100
Subject: [PATCH 79/81] gnu: Add plasma-mobile-settings.

* gnu/pacakges/kde-plasma.scm (plasma-mobile-settings): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index 7ccb022bbb..e8f85dd267 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -1867,6 +1867,34 @@ (define-public plasma-mobile
 customizable platform for mobile devices.")
     (license (list license:gpl3+ license:lgpl2.1+))))
 
+(define-public plasma-mobile-settings
+  (package
+    (name "plasma-mobile-settings")
+    (version "22.02")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma-mobile/" version
+                                  "/plasma-settings-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0b7lj3r9z9cz2vr0h15sqqxdaa7m07hsk8i2p8nf4a3yh02ywsxy"))))
+    (build-system cmake-build-system)
+    (native-inputs (list extra-cmake-modules pkg-config))
+    (inputs (list qtbase-5
+                  qtdeclarative-5
+                  kio
+                  modemmanager-qt
+                  networkmanager-qt
+                  ki18n
+                  plasma-framework
+                  kdeclarative
+                  kdbusaddons))
+    (home-page "https://plasma-mobile.org/")
+    (synopsis "Settings application for Plasma Mobile")
+    (description
+     "This package provides Settings application for Plasma Mobile.")
+    (license license:gpl2+)))
+
 (define-public plasma-pa
   (package
     (name "plasma-pa")
-- 
2.37.2

From 295ee2b95ad096979130806c038d1b025d066af3 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Fri, 26 Aug 2022 07:23:20 +0200
Subject: [PATCH 51/81] gnu: Add ksystemstats.

* gnu/packages/kde-plasma.scm (ksystemstats): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index 45bad2966e..4db2486f6d 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -368,6 +368,50 @@ (define-public ksshaskpass
 call it if it is not associated to a terminal.")
     (license license:gpl2+)))
 
+(define-public ksystemstats
+  (package
+    (name "ksystemstats")
+    (version "5.25.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/"
+                                  version
+                                  "/"
+                                  name
+                                  "-"
+                                  version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "0ray2v90vv1j1sbd7fx4x5n7s7xwlil1zynwi4pzpgnyi13zq60x"))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:phases #~(modify-phases %standard-phases
+                        (replace 'check
+                          (lambda* (#:key tests? #:allow-other-keys)
+                            (when tests?
+                              (invoke "ctest" "-E" "ksystemstatstest")))))))
+    (native-inputs (list extra-cmake-modules pkg-config))
+    (inputs (list glib
+                  kcoreaddons
+                  kdbusaddons
+                  solid
+                  knetworkmanager
+                  kiconthemes
+                  kio
+                  ki18n
+                  libksysguard
+                  libnl
+                  eudev
+                  `(,lm-sensors "lib")
+                  network-manager))
+    (synopsis "Plugin based system monitoring daemon")
+    (description
+     "This package provides a daemon that collects statistics about
+the running system.")
+    (home-page "https://invent.kde.org/plasma/ksystemstats")
+    (license (list license:gpl2 license:gpl3))))
+
 (define-public latte-dock
   (package
     (name "latte-dock")
-- 
2.37.2

From 1beb881a50df0d6e833dcdb15caa478e400e2ba2 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Sun, 14 Aug 2022 01:56:33 +0200
Subject: [PATCH 21/81] gnu: Add kirigami-addons.

* gnu/packages/kde-frameworks.scm (kirigami-addons): New variable.

diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index ef068b9e0f..c97aaf4441 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -858,6 +858,30 @@ (define-public kirigami
 of applications that follow the Kirigami Human Interface Guidelines.")
     (license license:lgpl2.1+)))
 
+(define-public kirigami-addons
+  (package
+    (name "kirigami-addons")
+    (version "0.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://invent.kde.org/libraries/kirigami-addons/-/archive/v"
+                    version "/kirigami-addons-v" version ".tar.gz"))
+              (sha256
+               (base32
+                "1zr8dpc7bzw6g3y0jaxsr2lqlxqwlcphchpk8iah6g1f3n9fq73r"))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:tests? #f)) ; failing test
+    (native-inputs (list extra-cmake-modules))
+    (inputs (list kirigami ki18n qtdeclarative-5 qtquickcontrols2-5))
+    (home-page "https://invent.kde.org/libraries/kirigami-addons")
+    (synopsis "Add-ons for the Kirigami framework")
+    (description
+     "This package provides Kirigami components usable by both touch
+and desktop experiences.")
+    (license license:lgpl2.0+)))
+
 (define-public kitemmodels
   (package
     (name "kitemmodels")
-- 
2.37.2

From bb8da5482be7f54098c294dfbdcd79b885a14987 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Fri, 26 Aug 2022 06:50:41 +0200
Subject: [PATCH 69/81] gnu: Add kdeplasma-addons.

* gnu/packages/kde-plasma.scm (kdeplasma-addons): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index 3cb8f3854e..3e302af583 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -388,6 +388,52 @@ (define-public kde-cli-tools
     (home-page "https://invent.kde.org/plasma/kde-cli-tools")
     (license license:lgpl2.0+)))
 
+(define-public kdeplasma-addons
+  (package
+    (name "kdeplasma-addons")
+    (version "5.25.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/"
+                                  version
+                                  "/"
+                                  name
+                                  "-"
+                                  version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "1lgmmqr798cfxmllalgzixf3v9xbiiazbn3vkcdqxcj6cjf730c0"))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:phases #~(modify-phases %standard-phases
+                        (replace 'check
+                          (lambda* (#:key tests? #:allow-other-keys)
+                            (when tests?
+                              (invoke "ctest" "-E"
+                               "(converterrunnertest|spellcheckrunnertest)")))))))
+    (native-inputs (list extra-cmake-modules))
+    (inputs (list karchive
+                  kconfig
+                  kcoreaddons
+                  kdeclarative
+                  kholidays
+                  ki18n
+                  kio
+                  kcmutils
+                  knotifications
+                  plasma-framework
+                  krunner
+                  kservice
+                  sonnet
+                  kunitconversion
+                  knewstuff
+                  qtdeclarative-5))
+    (synopsis "Add-ons to improve your Plasma experience")
+    (description "Provides multiple addons for Plasma Desktop.")
+    (home-page "https://invent.kde.org/plasma/kdeplasma-addons")
+    (license license:lgpl2.0)))
+
 (define-public kinfocenter
   (package
     (name "kinfocenter")
-- 
2.37.2

From d99c9cd74365579208351ca744e89cc6f8195149 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Fri, 26 Aug 2022 05:43:16 +0200
Subject: [PATCH 60/81] gnu: Add bluedevil.

* gnu/packages/kde-plasma.scm (bluedevil): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index 2826b53b9f..cc7901daff 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -58,6 +58,41 @@ (define-module (gnu packages kde-plasma)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages web))
 
+(define-public bluedevil
+  (package
+    (name "bluedevil")
+    (version "5.25.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/"
+                                  version
+                                  "/"
+                                  name
+                                  "-"
+                                  version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "1cygnmigwqx1mqynfafcypkvf9bmz05rmrfwlxsksvll8yd9xn84"))))
+    (build-system qt-build-system)
+    (native-inputs (list extra-cmake-modules pkg-config qttools-5))
+    (inputs (list kcoreaddons
+                  kwidgetsaddons
+                  kdbusaddons
+                  knotifications
+                  kwindowsystem
+                  plasma-framework
+                  ki18n
+                  kio
+                  kdeclarative
+                  bluez-qt
+                  shared-mime-info
+                  qtdeclarative-5))
+    (synopsis "Manages the Bluetooth settings of a Plasma Shell")
+    (description "This package provides Bluetooth manager for Plasma Shell.")
+    (home-page "https://invent.kde.org/plasma/bluedevil")
+    (license (list license:lgpl2.1 license:lgpl3))))
+
 (define-public breeze
   (package
     (name "breeze")
-- 
2.37.2

From 18180f9540101c82ab8e271f1fb27a0024ab248b Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Mon, 22 Aug 2022 18:13:36 +0200
Subject: [PATCH 71/81] gnu: Add powerdevil.

* gnu/packages/kde-plasma.scm (powerdevil): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index 55862d4537..480b78b057 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -1877,6 +1877,54 @@ (define-public polkit-kde-agent
     (home-page "https://invent.kde.org/plasma/polkit-kde-agent-1")
     (license license:gpl2+)))
 
+(define-public powerdevil
+  (package
+    (name "powerdevil")
+    (version "5.25.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/"
+                                  version
+                                  "/"
+                                  name
+                                  "-"
+                                  version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "1nznjxi59xc6pmyh0vainznhp9ig1ini3i87iapayawpnpf8sdxx"))))
+    (build-system qt-build-system)
+    (native-inputs (list extra-cmake-modules qttools-5 pkg-config))
+    (inputs (list bluez-qt
+                  glib
+                  kauth
+                  kactivities
+                  kscreen
+                  kidletime
+                  kconfig
+                  kdbusaddons
+                  solid
+                  ki18n
+                  kcrash
+                  knotifyconfig
+                  knetworkmanager
+                  kio
+                  kwayland
+                  kglobalaccel
+                  kcrash
+                  knotifications
+                  kirigami
+                  libkscreen
+                  network-manager
+                  plasma-workspace
+                  eudev
+                  qtx11extras))
+    (synopsis "Manages the power consumption settings of a Plasma Shell")
+    (description "This package provides the power consumption settings
+of a Plasma shell.")
+    (home-page "https://invent.kde.org/plasma/powerdevil")
+    (license license:gpl2+)))
+
 (define-public system-settings
   (package
     (name "system-settings")
-- 
2.37.2

From 8e2ebf424ec9bbc0464ba3c338b257ff50fc7fd6 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Fri, 26 Aug 2022 08:01:45 +0200
Subject: [PATCH 53/81] gnu: Add milou.

* gnu/packages/kde-plasma.scm (milou): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index 0139707c29..df6db3bde5 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -849,6 +849,39 @@ (define-public kwrited
     (description "This package provides access to system notifications.")
     (license license:gpl2+)))
 
+(define-public milou
+  (package
+    (name "milou")
+    (version "5.25.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/"
+                                  version
+                                  "/"
+                                  name
+                                  "-"
+                                  version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "17npfn7gwiqrvy5w8vzpc38c4bgkx3vjgjkm1caizn04zfk7xar7"))))
+    (build-system qt-build-system)
+    (native-inputs (list extra-cmake-modules))
+    (inputs (list kcoreaddons
+                  ki18n
+                  kdeclarative
+                  kitemmodels
+                  kservice
+                  plasma-framework
+                  kwindowsystem
+                  krunner
+                  qtdeclarative-5))
+    (synopsis "Dedicated search application built on top of Baloo")
+    (description "This package provides a dedicated search application built
+on top of Baloo.")
+    (home-page "https://invent.kde.org/plasma/milou")
+    (license (list license:gpl2+))))
+
 (define-public oxygen-sounds
   (package
     (name "oxygen-sounds")
-- 
2.37.2

From 3f1abf346945332df462601a21dc88aacfdbe109 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Fri, 26 Aug 2022 10:35:53 +0200
Subject: [PATCH 58/81] gnu: breeze-gtk: Update to 5.25.4.

* gnu/packages/kde-plasma.scm (breeze-gtk): Update to 5.25.4.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index d353352b68..33b2ec5181 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -108,7 +108,7 @@ (define-public breeze
 (define-public breeze-gtk
   (package
     (name "breeze-gtk")
-    (version "5.19.5")
+    (version "5.25.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/"
@@ -116,7 +116,7 @@ (define-public breeze-gtk
                                   "-" version ".tar.xz"))
               (sha256
                (base32
-                "1j2nq9yw1ragmgwrz9f6ca4ifpi86qv1bbprdgd2qm2yh7vb44sj"))))
+                "1x9a74f2anybvgmj4yl7pzz14jckjly55sb8hhlyrd1mp2k8p4mi"))))
     (build-system qt-build-system)
     (arguments
      '(#:tests? #f))                              ;no 'test' target
-- 
2.37.2

From b5efc60a97f7855f2395c69fd958ab01d6ecee28 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Thu, 18 Aug 2022 01:52:33 +0200
Subject: [PATCH 25/81] gnu: Add signond.

* gnu/packages/qt.scm (signond): New variable.

diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 541e1e6c06..213ca9a942 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -4234,6 +4234,51 @@ (define-public kdsoap
 web server.")
     (license (list license:gpl2 license:gpl3))))
 
+(define-public signond
+  (package
+    (name "signond")
+    (version "8.61")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.com/accounts-sso/signond")
+                    (commit (string-append "VERSION_" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0k6saz5spys4a4p6ws0ayrjks2gqdqvz7zfmlhdpz5axha0gbqq4"))))
+    (build-system qt-build-system)
+    (native-inputs (list doxygen pkg-config qtbase-5 qttools-5))
+    (inputs (list dbus glib libaccounts-glib))
+    (arguments
+     (list #:tests? #f ; Figure out how to run tests
+           #:phases #~(modify-phases %standard-phases
+                        (delete 'validate-runpath)
+                        (replace 'configure
+                          (lambda _
+                            (substitute* "src/signond/signond.pro"
+                              (("/etc/")
+                               (string-append #$output "/etc/")))
+                            (substitute* '("tests/extensions/extensions.pri"
+                                           "tests/signond-tests/mock-ac-plugin/plugin.pro"
+                                           "tests/signond-tests/identity-tool.pro"
+                                           "tests/signond-tests/mock-ac-plugin/identity-ac-helper.pro"
+                                           "tests/libsignon-qt-tests/libsignon-qt-tests.pro"
+                                           "tests/signond-tests/signond-tests.pri")
+                              (("QMAKE_RPATHDIR = \\$\\$\\{QMAKE_LIBDIR\\}")
+                               (string-append "QMAKE_RPATHDIR = "
+                                              #$output "/lib:"
+                                              #$output "/lib/signon")))
+                            (invoke "qmake"
+                                    (string-append "PREFIX="
+                                                   #$output)
+                                    (string-append "LIBDIR="
+                                                   #$output "/lib")))))))
+    (home-page "http://accounts-sso.gitlab.io/signond/index.html")
+    (synopsis "D-Bus service which performs user authentication")
+    (description "This package provides A D-Bus service which performs user
+authentication on behalf of its clients")
+    (license license:lgpl2.1+)))
 ;;;
 ;;; Avoid adding new packages to the end of this file. To reduce the chances
 ;;; of a merge conflict, place them above by existing packages with similar
-- 
2.37.2

From 8f33a03423d7b6d3c1284a87cde4bfe47f7471d4 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Tue, 23 Aug 2022 12:55:28 +0200
Subject: [PATCH 37/81] gnu: Add wacomtablet.

* gnu/packages/kde-utils.scm (wacomtablet): New variable.

diff --git a/gnu/local.mk b/gnu/local.mk
index b4c032da90..246c9a160e 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1951,6 +1951,8 @@ dist_patch_DATA =						\
   %D%/packages/patches/vtk-7-gcc-10-compat.patch		\
   %D%/packages/patches/vtk-7-hdf5-compat.patch			\
   %D%/packages/patches/vtk-7-python-compat.patch		\
+  %D%/packages/patches/wacomtablet-add-missing-includes.patch \
+  %D%/packages/patches/wacomtablet-qt5.15.patch \
   %D%/packages/patches/warsow-qfusion-fix-bool-return-type.patch	\
   %D%/packages/patches/webkitgtk-adjust-bubblewrap-paths.patch	\
   %D%/packages/patches/webrtc-audio-processing-big-endian.patch	\
diff --git a/gnu/packages/kde-utils.scm b/gnu/packages/kde-utils.scm
index 5ed2065012..a5a495eece 100644
--- a/gnu/packages/kde-utils.scm
+++ b/gnu/packages/kde-utils.scm
@@ -22,6 +22,7 @@
 
 (define-module (gnu packages kde-utils)
   #:use-module (guix build-system qt)
+  #:use-module (guix gexp)
   #:use-module (guix download)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
@@ -30,6 +31,7 @@ (define-module (gnu packages kde-utils)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages cmake)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages glib) ; dbus for tests
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages pkg-config)
@@ -38,6 +40,7 @@ (define-module (gnu packages kde-utils)
   #:use-module (gnu packages kde-plasma)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages samba)
+  #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xorg))
 
 (define-public ark
@@ -180,6 +183,56 @@ (define-public kate
     (license ;; GPL for programs, LGPL for libraries
      (list license:gpl2+ license:lgpl2.0))))
 
+(define-public wacomtablet
+  (package
+    (name "wacomtablet")
+    (version "3.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/"
+                                  name
+                                  "/"
+                                  version
+                                  "/"
+                                  name
+                                  "-"
+                                  version
+                                  ".tar.xz"))
+              (patches (search-patches
+                        "wacomtablet-add-missing-includes.patch"
+                        "wacomtablet-qt5.15.patch"))
+              (sha256
+               (base32
+                "197pwpl87gqlnza36bp68jvw8ww25znk08acmi8bpz7n84xfc368"))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:phases #~(modify-phases %standard-phases
+                        (replace 'check
+                          (lambda* (#:key tests? #:allow-other-keys)
+                            (when tests?
+                              (invoke "dbus-launch" "ctest" "-E"
+                               "(Test.KDED.DBusTabletService|Test.KDED.TabletHandler|Test.KDED.XInputAdaptor|Test.KDED.XsetWacomAdaptor)")))))))
+    (native-inputs (list dbus extra-cmake-modules kdoctools pkg-config))
+    (inputs (list kcoreaddons
+                  ki18n
+                  kglobalaccel
+                  kconfig
+                  kxmlgui
+                  kwidgetsaddons
+                  kwindowsystem
+                  knotifications
+                  kdbusaddons
+                  qtx11extras
+                  qtdeclarative-5
+                  libwacom
+                  xf86-input-wacom
+                  libxi))
+    (propagated-inputs (list plasma-framework))
+    (home-page "https://invent.kde.org/system/wacomtablet")
+    (synopsis "KDE GUI for the Wacom Linux Drivers")
+    (description "Provides KDE GUI for the Wacom Linux Drivers.")
+    (license license:gpl2+)))
+
 (define-public kmag
   (package
     (name "kmag")
diff --git a/gnu/packages/patches/wacomtablet-add-missing-includes.patch b/gnu/packages/patches/wacomtablet-add-missing-includes.patch
new file mode 100644
index 0000000000..cd93938075
--- /dev/null
+++ b/gnu/packages/patches/wacomtablet-add-missing-includes.patch
@@ -0,0 +1,11 @@
+diff -rup wacomtablet-3.1.0/src/kcmodule/styluspagewidget.cpp wacomtablet-3.1.0.new/src/kcmodule/styluspagewidget.cpp
+--- wacomtablet-3.1.0/src/kcmodule/styluspagewidget.cpp	2018-06-22 15:07:58.000000000 +0200
++++ wacomtablet-3.1.0.new/src/kcmodule/styluspagewidget.cpp	2018-07-10 17:38:09.239242847 +0200
+@@ -25,6 +25,7 @@
+ #include "profilemanagement.h"
+ 
+ // common includes
++#include "logging.h"
+ #include "property.h"
+ #include "deviceprofile.h"
+ #include "dbustabletinterface.h"
diff --git a/gnu/packages/patches/wacomtablet-qt5.15.patch b/gnu/packages/patches/wacomtablet-qt5.15.patch
new file mode 100644
index 0000000000..598ac939e8
--- /dev/null
+++ b/gnu/packages/patches/wacomtablet-qt5.15.patch
@@ -0,0 +1,23 @@
+From 4f73ff02b3efd5e8728b18fcf1067eca166704ee Mon Sep 17 00:00:00 2001
+From: Christophe Giboudeaux <[email-masked]>
+Date: Thu, 4 Jun 2020 16:00:38 +0200
+Subject: [PATCH] Fix build with Qt 5.15
+
+---
+ src/kcmodule/pressurecurvewidget.cpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/kcmodule/pressurecurvewidget.cpp b/src/kcmodule/pressurecurvewidget.cpp
+index 0c943b3..f047a6c 100644
+--- a/src/kcmodule/pressurecurvewidget.cpp
++++ b/src/kcmodule/pressurecurvewidget.cpp
+@@ -22,6 +22,7 @@
+ //Qt includes
+ #include <QDebug>
+ #include <QPainter>
++#include <QPainterPath>
+ #include <QMouseEvent>
+ #include <QResizeEvent>
+ #include <QTabletEvent>
+-- 
+GitLab
-- 
2.37.2

From a4767b7dc338e9eb443485f68a7ddae048a94b1b Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Tue, 23 Aug 2022 10:29:15 +0200
Subject: [PATCH 36/81] gnu: Add oxygen-sounds.

* gnu/packages/kde-plasma.scm (oxygen-sounds): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index f6d8799412..c96a2841b5 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -685,6 +685,29 @@ (define-public kwrited
     (description "This package provides access to system notifications.")
     (license license:gpl2+)))
 
+(define-public oxygen-sounds
+  (package
+    (name "oxygen-sounds")
+    (version "5.25.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/"
+                                  version
+                                  "/"
+                                  name
+                                  "-"
+                                  version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "0v8j8kf86ri1z14mgqc1c6kkpsbih8rjph35sr5y0i4av9mh6p9b"))))
+    (build-system cmake-build-system)
+    (native-inputs (list extra-cmake-modules))
+    (home-page "https://community.kde.org/Frameworks")
+    (synopsis "Oxygen provides the standard sounds for the KDE desktop")
+    (description "This package provides Oxygen sounds for the KDE desktop.")
+    (license license:lgpl3+)))
+
 (define-public plasmatube
   (package
     (name "plasmatube")
-- 
2.37.2

From 9ef389ea6dfd5347fc9faf0cbd121cec422c564e Mon Sep 17 00:00:00 2001
From: Brendan Tildesley <[email-masked]>
Date: Sat, 5 Mar 2022 11:46:20 +1100
Subject: [PATCH 30/81] gnu: Add kaccounts-integration.

* gnu/packages/kde.scm (kaccounts-integration): New variable.

diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm
index 83bbf69506..454a8b8105 100644
--- a/gnu/packages/kde.scm
+++ b/gnu/packages/kde.scm
@@ -1214,3 +1214,39 @@ (define-public kuserfeedback
 @item A management and analytics application.
 @end itemize")
     (license license:expat)))
+
+(define-public kaccounts-integration
+  (package
+    (name "kaccounts-integration")
+    (version "22.04.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/release-service/" version
+                           "/src/" name "-" version ".tar.xz"))
+       (sha256
+        (base32 "16v12l56wix9sarxyi0qvjrkj6g3hnac6s13x99zj05hhj4rpnqy"))))
+    (build-system qt-build-system)
+    (native-inputs
+     (list extra-cmake-modules))
+    (inputs
+     (list kcmutils
+           kcoreaddons
+           kdbusaddons
+           kdeclarative
+           ki18n
+           kio
+           kwallet
+           libaccounts-qt
+           qtbase-5
+           signond))
+    (home-page "https://invent.kde.org/network/kaccounts-integration")
+    (synopsis "Online account management system and Plasma Integration")
+    (description "KAccounts Integration provides a way to share accounts data
+such as login tokens and general user information (like usernames and such)
+between various applications.
+
+The KAccounts library is a KDE Frameworks style abstraction layer on top of
+the Accounts-SSO and SignOnD libraries, which uses a combination of models and
+jobs to expose the functionality of those.")
+    (license (list license:gpl2+ license:gpl3+ license:lgpl2.0+))))
-- 
2.37.2

From 89162ca6c3b517ff7e5fdef82636cc5b36c51688 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Tue, 23 Aug 2022 20:10:50 +0200
Subject: [PATCH 23/81] gnu: Add knetworkmanager.

* gnu/packages/kde-frameworks.scm (knetworkmanager): New variable.

diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index c97aaf4441..fcdb0aa331 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -1864,6 +1864,37 @@ (define-public kjobwidgets
 asynchronous jobs.")
     (license license:lgpl2.1+)))
 
+(define-public knetworkmanager
+  (package
+    (name "knetworkmanager")
+    (version "5.96.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/frameworks/"
+                                  (version-major+minor version)
+                                  "/"
+                                  "/networkmanager-qt-"
+                                  version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "1gyvgy0wl00asg9bkhjgvqnz32xmazvazcarh3p0640jy2fjrzfz"))))
+    (build-system qt-build-system)
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda* (#:key tests? #:allow-other-keys)
+                      (when tests?
+                        (invoke "ctest" "-E"
+                         "(managertest|settingstest|activeconnectiontest)")))))))
+    (native-inputs (list extra-cmake-modules pkg-config))
+    (inputs (list glib network-manager qtbase-5))
+    (properties `((upstream-name . "networkmanager-qt")))
+    (home-page "https://community.kde.org/Frameworks")
+    (synopsis "Qt wrapper for NetworkManager API")
+    (description "This package provides Qt wrapper for NetworkManager API.")
+    (license (list license:lgpl2.0 license:lgpl3))))
+
 (define-public knotifications
   (package
     (name "knotifications")
-- 
2.37.2

From 4b1b941d172b263ac0da73010279ca4bc372315a Mon Sep 17 00:00:00 2001
From: Brendan Tildesley <[email-masked]>
Date: Sat, 5 Mar 2022 11:47:21 +1100
Subject: [PATCH 75/81] gnu: Add plasma-desktop-service-type.

* gnu/services/desktop.scm (plasma-desktop-service-type): New variable.
* gnu/system/examples/desktop.tmpl (operating-system): [services]: Add
plasma-desktop-service-type to provide all Desktop environments.

diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 9b3eb12613..871f033105 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -14,6 +14,7 @@
 ;;; Copyright © 2020 Reza Alizadeh Majd <[email-masked]>
 ;;; Copyright © 2021 Brice Waegeneire <[email-masked]>
 ;;; Copyright © 2021, 2022 muradm <[email-masked]>
+;;; Copyright © 2022 phodina <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -54,6 +55,7 @@ (define-module (gnu services desktop)
   #:use-module (gnu packages cups)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages kde-plasma)
   #:use-module (gnu packages xfce)
   #:use-module (gnu packages avahi)
   #:use-module (gnu packages xdisorg)
@@ -157,6 +159,11 @@ (define-module (gnu services desktop)
 
             polkit-wheel-service
 
+            plasma-desktop-configuration
+            plasma-desktop-configuration?
+            plasma-desktop-service
+            plasma-desktop-service-type
+
             gnome-keyring-configuration
             gnome-keyring-configuration?
             gnome-keyring-service-type
@@ -1441,6 +1448,37 @@ (define-deprecated (xfce-desktop-service #:key (config
   (service xfce-desktop-service-type config))
 
 +
+
+;;;
+;;; KDE Plasma desktop service.
+;;;
+
+(define-record-type* <plasma-desktop-configuration> plasma-desktop-configuration
+  make-plasma-desktop-configuration
+  plasma-desktop-configuration?
+  (plasma plasma-package
+          (default plasma)))
+
+(define (plasma-polkit-settings config)
+  "Return the list of Plasma dependencies that provide polkit actions and
+rules."
+  (let ((plasma (plasma-package config)))
+    (map (lambda (name)
+           ((package-direct-input-selector name) plasma))
+         '("powerdevil"))))
+
+(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))))
+   (default-value (plasma-desktop-configuration))
+   (description "Run Plasma desktop environment.")))
+
+
 ;;;
 ;;; Lxqt desktop service.
 ;;;
diff --git a/gnu/system/examples/desktop.tmpl b/gnu/system/examples/desktop.tmpl
index 7055a8f92d..6c4f737c47 100644
--- a/gnu/system/examples/desktop.tmpl
+++ b/gnu/system/examples/desktop.tmpl
@@ -76,6 +76,7 @@
   ;; NetworkManager, and more.
   (services (if (target-x86-64?)
                 (append (list (service gnome-desktop-service-type)
+                              (service plasma-desktop-service-type)
                               (service xfce-desktop-service-type)
                               (set-xorg-configuration
                                (xorg-configuration
-- 
2.37.2

From e9f0968eeba76b555a6235226408b6e59d0f4967 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Fri, 26 Aug 2022 08:51:18 +0200
Subject: [PATCH 55/81] gnu: Add polkit-kde-agent.

* gnu/packages/kde-plasma.scm (polkit-kde-agent): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index 2686e2c557..8dca7d5a9d 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -48,6 +48,7 @@ (define-module (gnu packages kde-plasma)
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages polkit)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
   #:use-module (gnu packages video)
@@ -1266,3 +1267,36 @@ (define-public plasma-systemmonitor
 sensors, process information and other system resources.")
     (home-page "https://invent.kde.org/plasma/plasma-systemmonitor")
     (license (list license:gpl2 license:gpl3))))
+
+(define-public polkit-kde-agent
+  (package
+    (name "polkit-kde-agent")
+    (version "5.25.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/"
+                                  version
+                                  "/"
+                                  name
+                                  "-1-"
+                                  version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "0skadgzv97vfl4n2x889fiy5gsr6n894fr5viq3rizs0qsqc68b5"))))
+    (build-system qt-build-system)
+    (native-inputs (list extra-cmake-modules))
+    (inputs (list ki18n
+                  kwindowsystem
+                  kdbusaddons
+                  kwidgetsaddons
+                  kcoreaddons
+                  kcrash
+                  kiconthemes
+                  polkit-qt))
+    (synopsis "Daemon providing a Polkit authentication UI for Plasma")
+    (description
+     "This package provides daemon providing a Polkit authentication
+UI for Plasma")
+    (home-page "https://invent.kde.org/plasma/polkit-kde-agent-1")
+    (license license:gpl2+)))
-- 
2.37.2

From c5df8b90d3272844f4baa8107595c33491d7b0a0 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Fri, 25 Mar 2022 11:36:00 +0100
Subject: [PATCH 78/81] gnu: Add plasma-mobile.

* gnu/packages/kde-plasma.scm (plasma-mobile): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index e63722472b..7ccb022bbb 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -1827,6 +1827,46 @@ (define-public plasma-nm
 connections.")
     (license (list license:lgpl2.1 license:lgpl3))))
 
+(define-public plasma-mobile
+  (package
+    (name "plasma-mobile")
+    (version "5.24.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://download.kde.org/stable/plasma/"
+                                  version "/plasma-mobile-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1bwmy7xvd8wmh0snqqjh9jjgawib8ks2g30w48sqxwhplhf3da58"))))
+    (build-system cmake-build-system)
+    (arguments
+     (list #:phases #~(modify-phases %standard-phases
+                        (add-after 'install 'wrap-script
+                          (lambda* (#:key inputs outputs #:allow-other-keys)
+                            (wrap-program (string-append #$output
+                                                         "/bin/kwinwrapper")
+                                          `("PATH" ":" prefix
+                                            (,(string-append #$plasma-framework
+                                                             "/bin")))))))))
+    (native-inputs (list extra-cmake-modules pkg-config qttools))
+    (inputs (list bash-minimal
+                  kdeclarative
+                  ki18n
+                  kio
+                  knotifications
+                  kwayland
+                  kwin
+                  modemmanager-qt
+                  networkmanager-qt
+                  plasma-framework
+                  qtbase-5))
+    (home-page "https://plasma-mobile.org/")
+    (synopsis
+     "General UI components for Plasma Phone including shell, containment and applets")
+    (description "This package provides user-friendly, privacy-enabling and
+customizable platform for mobile devices.")
+    (license (list license:gpl3+ license:lgpl2.1+))))
+
 (define-public plasma-pa
   (package
     (name "plasma-pa")
-- 
2.37.2

From 8ecac97e3d448b31789db4669e2b7add88a00cb6 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Fri, 26 Aug 2022 08:13:24 +0200
Subject: [PATCH 44/81] gnu: Add plasma-firewall.

* gnu/packages/kde-plasma.scm (plasma-firewall): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index 6903109e05..591ce016f4 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -733,8 +733,15 @@ (define-public plasmatube
                 "01bmxdh0aclm184j5s0kddjc7a14225bdnbkr8jlk21g9wlw8cyx"))))
     (build-system cmake-build-system)
     (native-inputs (list extra-cmake-modules))
-    (inputs (list kirigami kconfig ki18n qtbase-5 qtdeclarative-5 qtquickcontrols2-5
-	qtsvg-5 qtmultimedia-5 youtube-dl))
+    (inputs (list kirigami
+                  kconfig
+                  ki18n
+                  qtbase-5
+                  qtdeclarative-5
+                  qtquickcontrols2-5
+                  qtsvg-5
+                  qtmultimedia-5
+                  youtube-dl))
     (home-page "https://apps.kde.org/plasmatube/")
     (synopsis "Kirigami YouTube video player")
     (description "This package provides YouTube video player based
@@ -774,6 +781,36 @@ (define-public plasma-disks
     (home-page "https://invent.kde.org/plasma/plasma-disks")
     (license (list license:gpl2 license:gpl3))))
 
+(define-public plasma-firewall
+  (package
+    (name "plasma-firewall")
+    (version "5.25.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/plasma/"
+                                  version
+                                  "/"
+                                  name
+                                  "-"
+                                  version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "12rmf7x8dyyb1k5ycj43kn4c0wzidig4h5wdh1igrgcvyypmjjcl"))))
+    (build-system qt-build-system)
+    (native-inputs (list extra-cmake-modules))
+    (inputs (list iproute
+                  kcoreaddons
+                  kcmutils
+                  ki18n
+                  kdeclarative
+                  python
+                  qtdeclarative-5))
+    (synopsis "Control Panel for system firewall")
+    (description "This package provides interface to system firewall")
+    (home-page "https://invent.kde.org/plasma/plasma-firewall")
+    (license (list license:gpl2 license:gpl3))))
+
 (define-public plasma-integration
   (package
     (name "plasma-integration")
-- 
2.37.2

From 4477c3dece29e2884d38fcc829c45e9ed02b35b0 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Sun, 28 Aug 2022 23:10:35 +0200
Subject: [PATCH 57/81] gnu: breeze: Update to 5.25.4.

* gnu/packages/kde-plasma.scm (breeze): Update to 5.25.4.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index 8dca7d5a9d..d353352b68 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -61,14 +61,14 @@ (define-module (gnu packages kde-plasma)
 (define-public breeze
   (package
     (name "breeze")
-    (version "5.25.3")
+    (version "5.25.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/" version "/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0za75ckgfcdxrh2qxgyl2c1273g2xqwmd55njsis1yvwryadypqw"))))
+                "0lw0vj07z8l19v2z31d601kfanqixy3dbsv0lf8q273xv3li9sbp"))))
     (build-system qt-build-system)
     ;; TODO: Warning at /gnu/store/…-kpackage-5.34.0/…/KF5PackageMacros.cmake:
     ;;   warnings during generation of metainfo for org.kde.breezedark.desktop:
-- 
2.37.2

From 076f3ecd44d4b985ecf894af79ad600a6f1727d8 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Sun, 28 Aug 2022 23:54:23 +0200
Subject: [PATCH 26/81] gnu: Add signon-plugin-oauth2.

* gnu/packages/qt.scm (signon-plugin-oauth2): New variable.

diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 213ca9a942..7d27ff5e45 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -4279,6 +4279,38 @@ (define-public signond
     (description "This package provides A D-Bus service which performs user
 authentication on behalf of its clients")
     (license license:lgpl2.1+)))
+
+(define-public signon-plugin-oauth2
+  (package
+    (name "signon-plugin-oauth2")
+    (version "0.25")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.com/accounts-sso/signon-plugin-oauth2")
+                    (commit (string-append "VERSION_" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "16aslnyk8jdg03zcg97rp6qzd0gmclj14hyhliksz8jgfz1l0w7c"))))
+    (build-system qt-build-system)
+    (native-inputs (list doxygen pkg-config))
+    (inputs (list signond))
+    (arguments
+     (list #:tests? #f
+           #:make-flags #~(list (string-append "INSTALL_ROOT=" #$output))
+           #:phases #~(modify-phases %standard-phases
+                        (replace 'configure
+                          (lambda _
+						  ; Don't treat warnings as erros
+						  (substitute* "common-project-config.pri"
+						  (("-Werror") ""))
+						  (invoke "qmake" (string-append "PREFIX=" #$output)
+						  (string-append "LIBDIR=" #$output "/lib")))))))
+    (home-page "")
+    (synopsis "OAuth 2 plugin for signon")
+    (description "")
+    (license license:lgpl2.1+)))
 ;;;
 ;;; Avoid adding new packages to the end of this file. To reduce the chances
 ;;; of a merge conflict, place them above by existing packages with similar
-- 
2.37.2

From b7c95fa2807ca744354216cfab0989c7f844e59b Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Sun, 28 Aug 2022 23:11:00 +0200
Subject: [PATCH 64/81] gnu: Add appmenu-gtk-module.

* gnu/packages/gtk.scm (appmenu-gtk-menu): New variable.

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 8d72205cbc..97df4cfcb2 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -31,6 +31,7 @@
 ;;; Copyright © 2021 Wamm K. D. <[email-masked]>
 ;;; Copyright © 2022 Zhu Zihao <[email-masked]>
 ;;; Copyright © 2022 Benjamin Slade <[email-masked]>
+;;; Copyright © 2022 Petr Hodina <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -116,6 +117,35 @@ (define-module (gnu packages gtk)
   #:use-module (srfi srfi-26)
   #:use-module (ice-9 match))
 
+(define-public appmenu-gtk-module
+  (package
+    (name "appmenu-gtk-module")
+    (version "0.7.6")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url
+                     "https://gitlab.com/vala-panel-project/vala-panel-appmenu")
+                    (commit version)))
+              (sha256
+               (base32
+                "1ywpygjwlbli65203ja2f8wwxh5gbavnfwcxwg25v061pcljaqmm"))))
+    (build-system meson-build-system)
+    (arguments
+     (list #:glib-or-gtk? #t
+           #:phases #~(modify-phases %standard-phases
+                        (add-after 'unpack 'fix-install-gtk-module
+                          (lambda* _
+                            (substitute* "subprojects/appmenu-gtk-module/src/gtk-3.0/meson.build"
+                              (("gtk3.get_pkgconfig_variable\\('libdir'\\)")
+                               #$output)))))))
+    (native-inputs (list `(,glib "bin") vala pkg-config))
+    (inputs (list gtk+-2 gtk+ libwnck))
+    (synopsis "Application Menu GTK+ Module")
+    (description "")
+    (home-page "https://gitlab.com/vala-panel-project/vala-panel-appmenu")
+    (license (list license:lgpl3))))
+
 (define-public atk
   (package
     (name "atk")
-- 
2.37.2

From 2788be6c4284e51c09c3d1400fed0ec5d5d3bc4d Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Thu, 18 Aug 2022 01:53:40 +0200
Subject: [PATCH 29/81] gnu: Add libsignon-glib.

* gnu/packages/qt.scm (libsignon-glib): New variable.

diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index c0e79e268a..aa3f12ca14 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -49,6 +49,7 @@ (define-module (gnu packages qt)
   #:use-module (guix git-download)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system meson)
   #:use-module (guix build-system trivial)
   #:use-module (guix build-system python)
   #:use-module (guix build-system qt)
@@ -60,6 +61,7 @@ (define-module (gnu packages qt)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bison)
+  #:use-module (gnu packages check)
   #:use-module (gnu packages cmake)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cups)
@@ -4271,6 +4273,62 @@ (define-public libaccounts-qt
     (description #~(package-description libaccounts-glib))
     (license license:lgpl2.1+)))
 
+(define-public libsignon-glib
+  (package
+    (name "libsignon-glib")
+    (version "2.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.com/accounts-sso/libsignon-glib")
+                    (commit (string-append "VERSION_" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0vgckvv78kzp54drj0dclqi0gfgrz6ihyjlks8z0cbd6k01r1dfy"))))
+    (build-system meson-build-system)
+    (arguments
+     (list #:tests? #f ;TODO: ninja: no work to do.
+           #:imported-modules `((guix build python-build-system)
+                                ,@%meson-build-system-modules)
+           #:modules '(((guix build python-build-system)
+                        #:select (python-version))
+                       (guix build meson-build-system)
+                       (guix build utils))
+           #:configure-flags #~(list "-Dtests=true"
+                                     (string-append "-Dpy-overrides-dir="
+                                      #$output "/lib/python"
+                                      (python-version #$(this-package-input
+                                                         "python"))
+                                      "/site-packages/gi/overrides"))
+           #:phases #~(modify-phases %standard-phases
+                        (add-after 'unpack 'get-submodule
+                          (lambda* _
+                            (copy-recursively #$(origin
+                                                  (method git-fetch)
+                                                  (uri (git-reference (url
+                                                                       "https://gitlab.com/accounts-sso/signon-dbus-specification")
+                                                                      (commit
+                                                                       "67487954653006ebd0743188342df65342dc8f9b")))
+                                                  (sha256 (base32
+                                                           "0w2wlm2vbgdw4fr3bd8z0x9dchl3l3za1gzphwhg4s6val1yk2rj")))
+                                              "libsignon-glib/interfaces"))))))
+    (native-inputs (list dbus
+                         dbus-test-runner
+                         `(,glib "bin")
+                         gobject-introspection
+                         gtk-doc
+                         pkg-config
+                         vala))
+    (inputs (list check signond python python-pygobject))
+    (propagated-inputs (list glib))
+    (home-page "https://accounts-sso.gitlab.io/libsignon-glib/")
+    (synopsis "Single signon authentication library for GLib applications")
+    (description
+     "This package provides single signon authentication library for
+GLib applications.")
+    (license license:lgpl2.1+)))
+
 (define-public signond
   (package
     (name "signond")
-- 
2.37.2

From 4b50b101ec22c1e8c799a865d2febb60da5830bc Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Sun, 18 Sep 2022 10:45:18 +0200
Subject: [PATCH 48/81] gnu: packagekit: Update to 1.2.5.

* gnu/packages/freedesktop.scm (packagekit): Update to 1.2.5.
[build-system]: Use meson-build-system.
[arguments]: Disable systemd. Fix xsl.
[native-inputs]: Add docbook-xsl, gobject-introspection, libxslt and vala.
[inputs]: Add gstreamer, gst-plugins-base and gtk+.

diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index d5069a0f59..08fea2ad78 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -904,31 +904,41 @@ (define (source-file regexp)
 (define-public packagekit
   (package
     (name "packagekit")
-    (version "1.1.13")
+    (version "1.2.5")
     (source (origin
-             (method url-fetch)
-             (uri (string-append
-                   "https://www.freedesktop.org/software/"
-                   "PackageKit/releases/"
-                   "PackageKit-" version ".tar.xz"))
-             (sha256
-              (base32
-               "1dr1laic65ld95abp2yxbwvijnngh0dwyb1x49x4wjm5rhq43dl8"))))
-    (build-system gnu-build-system)
+              (method url-fetch)
+              (uri (string-append "https://www.freedesktop.org/software/"
+                                  "PackageKit/releases/" "PackageKit-" version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "09md23m4fw87x264mls1f5isrswk6iw7y9g4hr1nib008wbbk370"))))
+    (build-system meson-build-system)
     (arguments
      (list #:tests? #f
-       #:make-flags #~(list (string-append "BASH_COMPLETIONS_DIR="
-                                         #$output "/etc/bash_completion.d"))
-       #:configure-flags #~(list "--disable-systemd")))
-    (native-inputs
-     (list intltool
-           pkg-config
-           python-wrapper
-           `(,glib "bin")))
-    (inputs
-     (list glib bash-completion polkit))
-    (propagated-inputs
-     (list sqlite))
+           #:configure-flags #~'("-Dsystemd=false" "-Doffline_update=false")
+           #:phases #~(modify-phases %standard-phases
+                        (add-after 'unpack 'fix-xsl
+                          (lambda* (#:key inputs #:allow-other-keys)
+                            (substitute* "client/meson.build"
+                              (("http://docbook.sourceforge.net/release/xsl/current")
+                               (string-append #$docbook-xsl
+                                              "/xml/xsl/docbook-xsl-1.79.2/"))))))))
+    (native-inputs (list intltool
+                         pkg-config
+                         python-wrapper
+                         `(,glib "bin")
+                         gobject-introspection
+                         docbook-xsl
+                         libxslt
+                         vala))
+    (inputs (list glib
+                  gstreamer
+                  gst-plugins-base
+                  gtk+
+                  bash-completion
+                  polkit))
+    (propagated-inputs (list sqlite))
     (home-page "https://www.freedesktop.org/software/PackageKit/")
     (synopsis "API for package management, through D-Bus")
     (description
-- 
2.37.2

From a05300a49b3eeab048887e3ef93e7a98600b65ad Mon Sep 17 00:00:00 2001
From: Brendan Tildesley <[email-masked]>
Date: Tue, 8 Feb 2022 17:03:20 +1100
Subject: [PATCH 61/81] gnu: Add kwin.

* gnu/packages/kde-plasma.scm (kwin): New variable.

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index cc7901daff..bf92351481 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -37,7 +37,9 @@ (define-module (gnu packages kde-plasma)
   #:use-module (gnu packages authentication)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
@@ -47,6 +49,7 @@ (define-module (gnu packages kde-plasma)
   #:use-module (gnu packages kde-frameworks)
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages pciutils)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages polkit)
   #:use-module (gnu packages pulseaudio)
@@ -893,6 +896,150 @@ (define-public kwayland-integration
     (home-page "https://invent.kde.org/plasma/kwayland-integration")
     (license (list license:lgpl2.1 license:lgpl3))))
 
+(define-public kwin
+  (package
+    (name "kwin")
+    (version "5.24.4")
+    (source (origin
+               (method url-fetch)
+               (uri (string-append "mirror://kde/stable/plasma/"
+                                   version
+                                   "/"
+                                   name
+                                   "-"
+                                   version
+                                   ".tar.xz"))
+               (sha256
+                (base32
+                 "1qwcd6iw6yvpchiwmvq5nwsr465jmrmscf286mjrc65im4hj6572"))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:phases #~(modify-phases %standard-phases
+                        (add-after 'unpack 'patch
+                          (lambda* (#:key inputs #:allow-other-keys)
+                            (substitute* '("src/plugins/kdecorations/aurorae/src/aurorae.cpp")
+                              (("(^\\s*QDirIterator it.path, QDirIterator::Subdirectories)(\\);)"
+                                _ a b)
+                               (string-append a
+                                " | QDirIterator::FollowSymlinks" b)))
+                            (substitute* '("src/xwl/xwayland.cpp")
+                              (("(m_xwaylandProcess->setProgram.QStringLiteral..)(Xwayland)(...;)"
+                                _ a Xwayland b)
+                               (string-append a
+                                              (which "Xwayland") b)))
+                            (substitute* '("cmake/modules/Findhwdata.cmake")
+                              (("/usr/share")
+                               (string-append #$hwdata "/share")))))
+                        (add-after 'install 'add-symlinks
+                          (lambda* (#:key outputs #:allow-other-keys)
+                            (let ((kst5 (string-append #$output
+                                         "/share/kservicetypes5/")))
+                              (symlink (string-append kst5
+                                                      "kwineffect.desktop")
+                                       (string-append kst5
+                                                      "kwin-effect.desktop"))
+                              (symlink (string-append kst5
+                                                      "kwinscript.desktop")
+                                       (string-append kst5
+                                                      "kwin-script.desktop")))))
+                        (replace 'check
+                          (lambda* (#:key tests? #:allow-other-keys)
+                            (when tests?
+                              (setenv "XDG_RUNTIME_DIR"
+                                      (getcwd))
+                              (setenv "HOME"
+                                      (getcwd))
+                              (setenv "XDG_DATA_DIRS"
+                                      (string-append #$output "/share:"
+                                                     (getenv "XDG_DATA_DIRS")))
+                              (setenv "QT_PLUGIN_PATH"
+                                      (string-append #$output
+                                                     "/lib/qt5/plugins:"
+                                                     (getenv "QT_PLUGIN_PATH")))
+                              (setenv "DISPLAY" ":1")
+                              (system "Xvfb :1 &")
+                              (sleep 5)
+                              (invoke "ctest" "-E"
+                               "(kwin-testDontCrashGlxgears|kwin-testLockScreen|kwin-testPointerInput|kwin-testDebugConsole|kwin-testXdgShellClient|kwin-testXdgShellClient-waylandonly|kwin-testSceneOpenGLES|kwin-testSceneOpenGLES-waylandonly|kwin-testModiferOnlyShortcut|kwin-testInputMethod|kwin-testInputMethod-waylandonly|kwin-testNightColor|kwin-testNightColor-waylandonly|kwin-testPlasmaWindow|kwin-testX11Client|kwin-testSceneQPainter|kwin-testLibinputDevice)")))))))
+    (native-inputs (list extra-cmake-modules
+                         dbus
+                         kdoctools
+                         pkg-config
+                         qttools-5
+                         wayland-protocols
+                         xorg-server-for-tests))
+    (inputs (list breeze
+                  eudev
+                  fontconfig
+                  freetype
+                  kactivities
+                  kcmutils
+                  kcompletion
+                  kconfig
+                  kconfigwidgets
+                  kcoreaddons
+                  kcrash
+                  kdbusaddons
+                  kdeclarative
+                  kdecoration
+                  kglobalaccel
+                  ki18n
+                  kiconthemes
+                  kidletime
+                  kio
+                  kirigami
+                  knewstuff
+                  knotifications
+                  kpackage
+                  krunner
+                  kscreenlocker
+                  ktextwidgets
+                  kwayland
+                  kwayland-server
+                  kwindowsystem
+                  kxmlgui
+                  lcms
+                  libcap
+                  libepoxy
+                  libinput
+                  libxkbcommon
+                  pipewire-0.3
+                  plasma-framework
+                  plasma-wayland-protocols
+                  qtbase-5
+                  qtdeclarative-5
+                  qtmultimedia-5
+                  qtwayland
+                  qtx11extras
+                  wayland
+                  wayland-protocols
+                  xcb-util ;fails at build time without this
+                  xcb-util-cursor
+                  xcb-util-keysyms
+                  xcb-util-wm
+                  xcmsdb
+                  xinput ;XXX: Says disabled in configure phase
+                  xorg-server-xwayland
+                  zlib))
+    (propagated-inputs (list hwdata))
+    ;; Runtime-only dependency needed for mapping monitor hardware vendor IDs to full names
+    ;; * hwdata, <https://github.com/vcrhonek/hwdata>
+    ;; * QtQuick.Controls-QMLModule, QML module 'QtQuick.Controls' is a runtime dependency.
+    ;; * org.kde.kquickcontrolsaddons-QMLModule, QML module 'org.kde.kquickcontrolsaddons' is a runtime dependency.
+    ;; * org.kde.plasma.core-QMLModule, QML module 'org.kde.plasma.core' is a runtime dependency.
+    ;; * org.kde.plasma.components-QMLModule, QML module 'org.kde.plasma.components' is a runtime dependency.
+
+    ;; * QAccessibilityClient, KDE client-side accessibility library, <https://www.kde.org>
+    ;; Required to enable accessibility features
+
+    (home-page "https://userbase.kde.org/KWin")
+    (synopsis "KDE Plasma Window Manager")
+    (description
+     "KWin is an easy to use, but flexible, composited Window Manager for
+Xorg windowing systems (Wayland, X11) on Linux.  Its primary usage is in
+conjunction with the KDE Plasma Desktop.")
+    (license license:gpl2+)))
+
 (define-public kwrited
   (package
     (name "kwrited")
-- 
2.37.2