gnu: rust-percent-encoding-2: Update to 2.2.0.
[jackhill/guix/guix.git] / gnu / packages / kde-plasma.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2016 Thomas Danckaert <post@thomasdanckaert.be>
3 ;;; Copyright © 2018 Meiyo Peng <meiyo.peng@gmail.com>
4 ;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
5 ;;; Copyright © 2017, 2019, 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
6 ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
7 ;;; Copyright © 2020 Zheng Junjie <873216071@qq.com>
8 ;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
9 ;;;
10 ;;; This file is part of GNU Guix.
11 ;;;
12 ;;; GNU Guix is free software; you can redistribute it and/or modify it
13 ;;; under the terms of the GNU General Public License as published by
14 ;;; the Free Software Foundation; either version 3 of the License, or (at
15 ;;; your option) any later version.
16 ;;;
17 ;;; GNU Guix is distributed in the hope that it will be useful, but
18 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
19 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 ;;; GNU General Public License for more details.
21 ;;;
22 ;;; You should have received a copy of the GNU General Public License
23 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
24
25 (define-module (gnu packages kde-plasma)
26 #:use-module (guix packages)
27 #:use-module (guix download)
28 #:use-module ((guix licenses) #:prefix license:)
29 #:use-module (guix gexp)
30 #:use-module (guix build-system cmake)
31 #:use-module (guix build-system qt)
32 #:use-module (gnu packages compression)
33 #:use-module (gnu packages freedesktop)
34 #:use-module (gnu packages glib)
35 #:use-module (gnu packages gtk)
36 #:use-module (gnu packages kde-frameworks)
37 #:use-module (gnu packages linux)
38 #:use-module (gnu packages pkg-config)
39 #:use-module (gnu packages python)
40 #:use-module (gnu packages qt)
41 #:use-module (gnu packages xdisorg)
42 #:use-module (gnu packages xorg)
43 #:use-module (gnu packages web))
44
45 (define-public breeze
46 (package
47 (name "breeze")
48 (version "5.19.5")
49 (source (origin
50 (method url-fetch)
51 (uri (string-append "mirror://kde/stable/plasma/" version "/"
52 name "-" version ".tar.xz"))
53 (sha256
54 (base32
55 "0dpk1w7zcafrzf46j060i1qb0fwqpsflkfzr6gcar81llmjnc4b1"))))
56 (build-system qt-build-system)
57 ;; TODO: Warning at /gnu/store/…-kpackage-5.34.0/…/KF5PackageMacros.cmake:
58 ;; warnings during generation of metainfo for org.kde.breezedark.desktop:
59 ;; Package type "Plasma/LookAndFeel" not found
60 ;; TODO: Check whether is makes sence splitting into several outputs, like
61 ;; Debian does:
62 ;; - breeze-cursor-theme
63 ;; - "out", "devel"
64 ;; - kde-style-breeze - Widget style
65 ;; - kde-style-breeze-qt4 - propably not useful
66 ;; - kwin-style-breeze
67 ;; - qml-module-qtquick-controls-styles-breeze - QtQuick style
68 (native-inputs
69 (list extra-cmake-modules pkg-config))
70 (inputs
71 (list kcmutils ; optional
72 kconfigwidgets
73 kcoreaddons
74 kde-frameworkintegration ; optional
75 kdecoration
76 kguiaddons
77 ki18n
78 kiconthemes ; for optional kde-frameworkintegration
79 kpackage
80 kwayland ; optional
81 kwindowsystem
82 qtbase-5
83 qtdeclarative-5 ; optional
84 qtx11extras))
85 (home-page "https://invent.kde.org/plasma/breeze")
86 (synopsis "Default KDE Plasma theme")
87 (description "Artwork, styles and assets for the Breeze visual style for
88 the Plasma Desktop. Breeze is the default theme for the KDE Plasma desktop.")
89 (license license:gpl2+)))
90
91 (define-public breeze-gtk
92 (package
93 (name "breeze-gtk")
94 (version "5.19.5")
95 (source (origin
96 (method url-fetch)
97 (uri (string-append "mirror://kde/stable/plasma/"
98 version "/" name
99 "-" version ".tar.xz"))
100 (sha256
101 (base32
102 "1j2nq9yw1ragmgwrz9f6ca4ifpi86qv1bbprdgd2qm2yh7vb44sj"))))
103 (build-system qt-build-system)
104 (arguments
105 '(#:tests? #f)) ;no 'test' target
106 (native-inputs (list breeze extra-cmake-modules sassc python
107 python-pycairo))
108 (home-page "https://invent.kde.org/plasma/breeze")
109 (synopsis "Default KDE Plasma theme (GTK+ port)")
110 (description "GTK+ port of the Breeze visual style for the Plasma Desktop.
111 Breeze is the default theme for the KDE Plasma desktop.")
112 (license (list license:bsd-3 ;cmake/FindSass.cmake
113 license:lgpl2.1+)))) ;<all other files>
114
115 (define-public kdecoration
116 (package
117 (name "kdecoration")
118 (version "5.19.5")
119 (source (origin
120 (method url-fetch)
121 (uri (string-append "mirror://kde/stable/plasma/" version
122 "/kdecoration-" version ".tar.xz"))
123 (sha256
124 (base32
125 "0pn8n7zyb0adzjnn92vmbcf7pmpss60k9k1rk5llamj016xzfgnf"))))
126 (build-system qt-build-system)
127 (native-inputs
128 (list extra-cmake-modules))
129 (inputs
130 (list ki18n qtbase-5))
131 (home-page "https://invent.kde.org/plasma/kdecoration")
132 (synopsis "Plugin based library to create window decorations")
133 (description "KDecoration is a library to create window decorations.
134 These window decorations can be used by for example an X11 based window
135 manager which re-parents a Client window to a window decoration frame.")
136 (license license:lgpl3+)))
137
138 (define-public ksshaskpass
139 (package
140 (name "ksshaskpass")
141 (version "5.19.5")
142 (source (origin
143 (method url-fetch)
144 (uri (string-append "mirror://kde/stable/plasma/" version
145 "/ksshaskpass-" version ".tar.xz"))
146 (sha256
147 (base32
148 "1k2va2v9051f71w78dn3gihk642iyy5yzrkcfnp97fag8g6dpisi"))))
149 (build-system qt-build-system)
150 (native-inputs
151 (list extra-cmake-modules kdoctools))
152 (inputs
153 (list kcoreaddons ki18n kwallet kwidgetsaddons qtbase-5))
154 (home-page "https://invent.kde.org/plasma/ksshaskpass")
155 (synopsis "Front-end for ssh-add using kwallet")
156 (description "Ksshaskpass is a front-end for @code{ssh-add} which stores the
157 password of the ssh key in KWallet. Ksshaskpass is not meant to be executed
158 directly, you need to tell @code{ssh-add} about it. @code{ssh-add} will then
159 call it if it is not associated to a terminal.")
160 (license license:gpl2+)))
161
162 (define-public layer-shell-qt
163 (package
164 (name "layer-shell-qt")
165 (version "5.24.1")
166 (source (origin
167 (method url-fetch)
168 (uri (string-append "mirror://kde/stable/plasma/" version
169 "/layer-shell-qt-" version ".tar.xz"))
170 (sha256
171 (base32
172 "1aq089pws39w9ncsiqzgg3qvfg5hc5a74pzra0smdpy5ipfsb6a4"))))
173 (build-system qt-build-system)
174 (native-inputs
175 (list extra-cmake-modules pkg-config))
176 (inputs
177 (list libxkbcommon
178 qtbase-5
179 qtdeclarative-5
180 qtwayland-5
181 wayland
182 wayland-protocols))
183 (home-page "https://invent.kde.org/plasma/layer-shell-qt")
184 (synopsis "Qt component for the Wayland ql-layer-shell protocol")
185 (description "Qt component for the Wayland ql-layer-shell protocol.")
186 (license license:gpl2+)))
187
188 (define-public kscreenlocker
189 (package
190 (name "kscreenlocker")
191 (version "5.19.5")
192 (source (origin
193 (method url-fetch)
194 (uri (string-append "mirror://kde/stable/plasma/" version
195 "/kscreenlocker-" version ".tar.xz"))
196 (sha256
197 (base32
198 "1fd5sqaqx9kj3kr0bgxpllhcm5arf8bc9pkpd9yk9c8xjy0j0fxi"))))
199 (build-system qt-build-system)
200 (arguments
201 `(#:tests? #f ;; TODO: make tests pass
202 #:phases
203 (modify-phases %standard-phases
204 (add-before 'check 'check-setup
205 (lambda* (#:key inputs outputs #:allow-other-keys)
206 (system "Xvfb :1 -screen 0 640x480x24 &")
207 (setenv "DISPLAY" ":1")
208 #t))
209 (delete 'check)
210 ;; Tests use the installed library and require a DBus session.
211 (add-after 'install 'check
212 (lambda* (#:key tests? #:allow-other-keys)
213 (if tests?
214 (begin
215 (setenv "CTEST_OUTPUT_ON_FAILURE" "1")
216 (invoke "dbus-launch" "ctest" ".")))
217 #t)))))
218 (native-inputs
219 (list extra-cmake-modules pkg-config
220 ;; For tests.
221 dbus xorg-server-for-tests))
222 (inputs
223 `(("kcmutils" ,kcmutils)
224 ("kcrash" ,kcrash)
225 ("kdeclarative" ,kdeclarative)
226 ("kglobalaccel" ,kglobalaccel)
227 ("ki18n" ,ki18n)
228 ("kidletime" ,kidletime)
229 ("knotifications" ,knotifications)
230 ("ktextwidgets" ,ktextwidgets)
231 ("kwayland" ,kwayland)
232 ("kwindowsystem" ,kwindowsystem)
233 ("kxmlgui" ,kxmlgui)
234 ("libseccomp" ,libseccomp) ;for sandboxing the look'n'feel package
235 ("libxcursor" ,libxcursor) ;missing in CMakeList.txt
236 ("libxi" ,libxi) ;XInput, required for grabbing XInput2 devices
237 ("linux-pam" ,linux-pam)
238 ("logind" ,elogind) ;optional loginctl support
239 ("qtbase" ,qtbase-5)
240 ("qtdeclarative-5" ,qtdeclarative-5)
241 ("qtx11extras" ,qtx11extras)
242 ("solid" ,solid)
243 ("wayland" ,wayland)
244 ("xcb-util-keysyms" ,xcb-util-keysyms)))
245 (home-page "https://invent.kde.org/plasma/kscreenlocker")
246 (synopsis "Screen locking library")
247 (description
248 "@code{kscreenlocker} is a library for creating secure lock screens.")
249 (license license:gpl2+)))
250
251 (define-public libkscreen
252 (package
253 (name "libkscreen")
254 (version "5.19.5")
255 (source
256 (origin
257 (method url-fetch)
258 (uri (string-append "mirror://kde/stable/plasma/" version "/"
259 name "-" version ".tar.xz"))
260 (sha256
261 (base32 "0rf1pm0yyc069f4n5s9ipdx4glzfr9zvv5cbrmn4q9i4v6z1qd8i"))))
262 (build-system qt-build-system)
263 (native-inputs
264 (list extra-cmake-modules
265 ;; For testing.
266 dbus))
267 (inputs
268 (list kwayland libxrandr qtbase-5 qtx11extras))
269 (arguments
270 '(#:tests? #f)) ; FIXME: 55% tests passed, 5 tests failed out of 11
271 (home-page "https://community.kde.org/Solid/Projects/ScreenManagement")
272 (synopsis "KDE's screen management software")
273 (description "KScreen is the new screen management software for KDE Plasma
274 Workspaces which tries to be as magic and automatic as possible for users with
275 basic needs and easy to configure for those who want special setups.")
276 (license license:gpl2+)))
277
278 (define-public libksysguard
279 (package
280 (name "libksysguard")
281 (version "5.19.5")
282 (source
283 (origin
284 (method url-fetch)
285 (uri (string-append "mirror://kde//stable/plasma/" version
286 "/libksysguard-" version ".tar.xz"))
287 (sha256
288 (base32 "1kd0h3p8bf9k5pqp0frhr81pa0yyrpkckg9zznirk9p1v88v7bfq"))))
289 (native-inputs
290 (list extra-cmake-modules pkg-config))
291 (inputs
292 `(("kconfigwidgets" ,kconfigwidgets)
293 ("kiconthemes" ,kiconthemes)
294 ("kwindowsystem" ,kwindowsystem)
295 ("ki18n" ,ki18n)
296 ("kauth" ,kauth)
297 ("kcompletion" ,kcompletion)
298 ("kconfig" ,kconfig)
299 ("kcoreaddons" ,kcoreaddons)
300 ("kdeclarative" ,kdeclarative)
301 ("kglobalaccel" ,kglobalaccel)
302 ("kio" ,kio)
303 ("knewstuff" ,knewstuff)
304 ("kwidgetsaddons" ,kwidgetsaddons)
305 ("kservice" ,kservice)
306 ("qtbase" ,qtbase-5)
307 ("qtdeclarative-5" ,qtdeclarative-5)
308 ("qtscript" ,qtscript)
309 ("qtwebkit" ,qtwebkit)
310 ("qtx11extras" ,qtx11extras)
311 ("plasma" ,plasma-framework)
312 ("zlib" ,zlib)))
313 (build-system qt-build-system)
314 (arguments
315 (list #:configure-flags
316 #~`(,(string-append "-DKDE_INSTALL_DATADIR="
317 #$output "/share"))
318 #:phases
319 #~(modify-phases %standard-phases
320 (add-before 'configure 'patch-cmakelists
321 (lambda _
322 ;; TODO: Verify: This should no longer be necessary, since
323 ;; KF5AuthConfig.cmake.in contains this already.
324 (substitute* "processcore/CMakeLists.txt"
325 (("KAUTH_HELPER_INSTALL_DIR")
326 "KDE_INSTALL_LIBEXECDIR"))))
327 (replace 'check
328 (lambda _
329 ;; TODO: Fix this failing test-case
330 (invoke "ctest" "-E" "processtest"))))))
331 (home-page "https://userbase.kde.org/KSysGuard")
332 (synopsis "Network enabled task and system monitoring")
333 (description "KSysGuard can obtain information on system load and
334 manage running processes. It obtains this information by interacting
335 with a ksysguardd daemon, which may also run on a remote system.")
336 (license license:gpl3+)))
337