gnu: lxqt-themes: Update to 1.1.0.
[jackhill/guix/guix.git] / gnu / packages / lxqt.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
3 ;;; Copyright © 2015, 2022 Sou Bunnbu <iyzsong@gmail.com>
4 ;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
5 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
6 ;;; Copyright © 2017 Nikita <nikita@n0.is>
7 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
8 ;;; Copyright © 2018, 2019 Meiyo Peng <meiyo@riseup.net>
9 ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
10 ;;; Copyright © 2019, 2020 Reza Alizadeh Majd <r.majd@pantherx.org>
11 ;;; Copyright © 2020 Fakhri Sajadi <f.sajadi@pantherx.org>
12 ;;; Copyright © 2020 André Batista <nandre@riseup.net>
13 ;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
14 ;;;
15 ;;; This file is part of GNU Guix.
16 ;;;
17 ;;; GNU Guix is free software; you can redistribute it and/or modify it
18 ;;; under the terms of the GNU General Public License as published by
19 ;;; the Free Software Foundation; either version 3 of the License, or (at
20 ;;; your option) any later version.
21 ;;;
22 ;;; GNU Guix is distributed in the hope that it will be useful, but
23 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
24 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25 ;;; GNU General Public License for more details.
26 ;;;
27 ;;; You should have received a copy of the GNU General Public License
28 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
29
30 (define-module (gnu packages lxqt)
31 #:use-module (guix download)
32 #:use-module (guix git-download)
33 #:use-module ((guix licenses) #:prefix license:)
34 #:use-module (guix gexp)
35 #:use-module (guix packages)
36 #:use-module (guix utils)
37 #:use-module (guix build-system cmake)
38 #:use-module (guix build-system gnu)
39 #:use-module (guix build-system trivial)
40 #:use-module (gnu packages)
41 #:use-module (gnu packages admin)
42 #:use-module (gnu packages compression)
43 #:use-module (gnu packages documentation)
44 #:use-module (gnu packages compton)
45 #:use-module (gnu packages fonts)
46 #:use-module (gnu packages freedesktop)
47 #:use-module (gnu packages glib)
48 #:use-module (gnu packages gnome)
49 #:use-module (gnu packages gtk)
50 #:use-module (gnu packages image)
51 #:use-module (gnu packages kde-frameworks)
52 #:use-module (gnu packages kde-plasma)
53 #:use-module (gnu packages linux)
54 #:use-module (gnu packages perl)
55 #:use-module (gnu packages lxde)
56 #:use-module (gnu packages maths)
57 #:use-module (gnu packages openbox)
58 #:use-module (gnu packages pcre)
59 #:use-module (gnu packages photo)
60 #:use-module (gnu packages pkg-config)
61 #:use-module (gnu packages polkit)
62 #:use-module (gnu packages pulseaudio)
63 #:use-module (gnu packages qt)
64 #:use-module (gnu packages textutils)
65 #:use-module (gnu packages xdisorg)
66 #:use-module (gnu packages xml)
67 #:use-module (gnu packages xorg))
68
69
70 ;; Third party libraries
71
72 (define-public libdbusmenu-qt
73 (package
74 (name "libdbusmenu-qt")
75 (version "0.9.3+16.04.20160218-0ubuntu1")
76 (source
77 (origin
78 (method git-fetch)
79 ;; Download from github rather than launchpad because launchpad trunk
80 ;; tarball hash is not deterministic.
81 (uri (git-reference
82 (url "https://github.com/unity8-team/libdbusmenu-qt")
83 (commit version)))
84 (file-name (git-file-name name version))
85 (sha256
86 (base32 "0b7ii1cvmpcyl79gqal9c3va9m55h055s4hx7fpxkhhqs9463ggg"))))
87 (build-system cmake-build-system)
88 (arguments
89 ;; XXX: Tests require a dbus session and some icons.
90 '(#:tests? #f))
91 (native-inputs
92 (list doxygen))
93 (inputs
94 (list qtbase-5))
95 (home-page "https://launchpad.net/libdbusmenu-qt")
96 (synopsis "Qt implementation of the DBusMenu spec")
97 (description "This library provides a Qt implementation of the DBusMenu
98 protocol. The DBusMenu protocol makes it possible for applications to export
99 and import their menus over DBus.")
100 (license license:lgpl2.1+)))
101
102 (define-public libstatgrab
103 (package
104 (name "libstatgrab")
105 (version "0.92.1")
106 (source
107 (origin
108 (method url-fetch)
109 (uri (string-append "https://ftp.i-scream.org/pub/i-scream/libstatgrab/"
110 name "-" version ".tar.gz"))
111 (sha256
112 (base32 "04bcbln3qlilxsyh5hrwdrv7x4pfv2lkwdwa98bxfismd15am22n"))))
113 (build-system gnu-build-system)
114 (arguments
115 '(#:configure-flags '("--enable-tests"
116 "--disable-static")))
117 (native-inputs
118 ;; For testing.
119 (list perl))
120 (home-page "https://www.i-scream.org/libstatgrab/")
121 (synopsis "Provides access to statistics about the system")
122 (description "libstatgrab is a library that provides cross platform access
123 to statistics about the system on which it's run.")
124 ;; Libraries are under LGPL2.1+, and programs under GPLv2+.
125 (license license:gpl2+)))
126
127
128 ;; Base
129
130 (define-public lxqt-build-tools
131 (package
132 (name "lxqt-build-tools")
133 (version "0.11.0")
134 (source
135 (origin
136 (method url-fetch)
137 (uri (string-append "https://github.com/lxqt/lxqt-build-tools/releases"
138 "/download/" version
139 "/lxqt-build-tools-" version ".tar.xz"))
140 (sha256
141 (base32 "1ff1pkrlxd8h0j8v49p6wrfhnqrz8s5b53hi835m41cvkzjljpfx"))))
142 (build-system cmake-build-system)
143 (arguments
144 (list
145 #:tests? #f ; no tests
146 #:modules `((ice-9 regex)
147 (guix build cmake-build-system)
148 (guix build utils))
149 ;; In phases and configure-flags: Set LXQT_TRANSLATIONS_DIR,
150 ;; LXQT_DATA_DIR, etc. to relative paths, so that packages using
151 ;; LXQtConfigVars.cmake from lxqt-build-tools will install translations
152 ;; and data files into their outputs, remove the need to patch their
153 ;; cmake files.
154 #:phases
155 #~(modify-phases %standard-phases
156 (add-after 'install 'patch-LXQtConfigVars.cmake
157 (lambda _
158 (substitute* (string-append #$output
159 "/share/cmake/lxqt-build-tools"
160 "/modules/LXQtConfigVars.cmake")
161 (((regexp-quote (string-append #$output "/"))) "")))))
162 #:configure-flags
163 #~(list "-DLXQT_ETC_XDG_DIR=etc/xdg")))
164 (native-inputs
165 (list pkg-config glib))
166 (inputs
167 (list qtbase-5))
168 (propagated-inputs
169 ;; Dependent projects require Perl via the CMake files.
170 (list perl))
171 (synopsis "LXQt Build tools")
172 (description
173 "Lxqt-build-tools is providing several tools needed to build LXQt
174 itself as well as other components maintained by the LXQt project.")
175 (home-page "https://lxqt-project.org")
176 (license license:lgpl2.1+)))
177
178 (define-public libqtxdg
179 (package
180 (name "libqtxdg")
181 (version "3.9.1")
182 (source
183 (origin
184 (method url-fetch)
185 (uri (string-append
186 "https://github.com/lxqt/libqtxdg/releases/download/"
187 version "/libqtxdg-" version ".tar.xz"))
188 (sha256
189 (base32 "1kh4hv59bkjifq20ksh1mizf9mp7x30v6fpwccr45mi7hasqvvfi"))))
190 (build-system cmake-build-system)
191 (arguments
192 '(#:configure-flags
193 '("-DBUILD_TESTS=ON"
194 "-DQTXDGX_ICONENGINEPLUGIN_INSTALL_PATH=lib/qt5/plugins/iconengines")
195 #:phases
196 (modify-phases %standard-phases
197 (add-before 'check 'pre-check
198 (lambda _
199 ;; Run the tests offscreen.
200 (setenv "QT_QPA_PLATFORM" "offscreen")
201 #t)))))
202 (propagated-inputs
203 ;; required by Qt5XdgIconLoader.pc
204 (list glib qtbase-5 qtsvg-5))
205 (native-inputs
206 (list lxqt-build-tools pkg-config))
207 (home-page "https://github.com/lxqt/libqtxdg")
208 (synopsis "Qt implementation of freedesktop.org xdg specifications")
209 (description "Libqtxdg implements the freedesktop.org xdg specifications
210 in Qt.")
211 (license license:lgpl2.1+)))
212
213 (define-public qtxdg-tools
214 (package
215 (name "qtxdg-tools")
216 (version "3.9.1")
217 (source
218 (origin
219 (method url-fetch)
220 (uri (string-append
221 "https://github.com/lxqt/qtxdg-tools/releases/download/"
222 version "/qtxdg-tools-" version ".tar.xz"))
223 (sha256
224 (base32 "0qn35v4dv71g0a4cqkbikppwmihxmfa560q9kw5pwk2y0xiwpncr"))))
225 (build-system cmake-build-system)
226 (arguments '(#:tests? #f)) ; no tests
227 (propagated-inputs (list libqtxdg))
228 (native-inputs (list lxqt-build-tools))
229 (home-page "https://github.com/lxqt/qtxdg-tools")
230 (synopsis "User tools for libqtxdg")
231 (description "This package contains a CLI MIME tool, @command{qtxdg-mat},
232 for handling file associations and opening files with their default
233 applications.")
234 (license license:lgpl2.1+)))
235
236 (define-public liblxqt
237 (package
238 (name "liblxqt")
239 (version "1.1.0")
240 (source
241 (origin
242 (method url-fetch)
243 (uri (string-append
244 "https://github.com/lxqt/" name "/releases/download/"
245 version "/" name "-" version ".tar.xz"))
246 (sha256
247 (base32 "1fickg1q54pcb8bv3x0ydg4xx02cqykibnjcq09as2kws6xbhk9n"))))
248 (build-system cmake-build-system)
249 (arguments
250 `(#:tests? #f ; no tests
251 #:phases
252 (modify-phases %standard-phases
253 (add-after 'unpack 'patch-source
254 (lambda _
255 (substitute* "CMakeLists.txt"
256 (("DESTINATION \"\\$\\{POLKITQT-1_POLICY_FILES_INSTALL_DIR\\}")
257 "DESTINATION \"share/polkit-1/actions"))
258 #t)))))
259 (inputs
260 (list kwindowsystem
261 libqtxdg
262 libxscrnsaver
263 polkit-qt
264 qtsvg-5
265 qtx11extras))
266 (native-inputs
267 (list lxqt-build-tools qttools-5))
268 (home-page "https://lxqt-project.org")
269 (synopsis "Core utility library for all LXQt components")
270 (description "liblxqt provides the basic libraries shared by the
271 components of the LXQt desktop environment.")
272 (license license:lgpl2.1+)))
273
274 (define-public libsysstat
275 (package
276 (name "libsysstat")
277 (version "0.4.6")
278 (source
279 (origin
280 (method url-fetch)
281 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
282 version "/" name "-" version ".tar.xz"))
283 (sha256
284 (base32 "1ghkzgz3ypjii08f00g26pnmw0s5naf344p83dwnf3kfdlykiip6"))))
285 (build-system cmake-build-system)
286 (arguments '(#:tests? #f)) ; no tests
287 (inputs
288 (list qtbase-5))
289 (native-inputs
290 (list lxqt-build-tools))
291 (home-page "https://lxqt-project.org")
292 (synopsis "Library used to query system info and statistics")
293 (description "libsysstat is a library to query system information like CPU
294 and memory usage or network traffic.")
295 (license license:lgpl2.1+)))
296
297
298 ;; Core
299
300 (define-public lxqt-about
301 (package
302 (name "lxqt-about")
303 (version "1.1.0")
304 (source
305 (origin
306 (method url-fetch)
307 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
308 version "/" name "-" version ".tar.xz"))
309 (sha256
310 (base32 "03bqhbpdnfpan3l4snzzz6j0054m4r9zcgygcg21znslwicbqnw3"))))
311 (build-system cmake-build-system)
312 (inputs
313 (list kwindowsystem
314 liblxqt
315 libqtxdg
316 qtbase-5
317 qtsvg-5
318 qtx11extras))
319 (native-inputs
320 (list lxqt-build-tools qttools-5))
321 (arguments
322 '(#:tests? #f ; no tests
323 #:phases
324 (modify-phases %standard-phases
325 (add-before 'build 'setenv
326 (lambda _
327 (setenv "QT_RCC_SOURCE_DATE_OVERRIDE" "1")
328 #t)))))
329 (home-page "https://lxqt-project.org")
330 (synopsis "Provides information about LXQt and the system")
331 (description "lxqt-about is a dialogue window providing information about
332 LXQt and the system it's running on.")
333 (license license:lgpl2.1+)))
334
335 (define-public lxqt-admin
336 (package
337 (name "lxqt-admin")
338 (version "1.1.0")
339 (source
340 (origin
341 (method url-fetch)
342 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
343 version "/" name "-" version ".tar.xz"))
344 (sha256
345 (base32 "1zah3xdnif9miaq52mmfbbzvqjhca7w7h81ngrn25j9pvd2bflm8"))))
346 (build-system cmake-build-system)
347 (inputs
348 (list kwindowsystem
349 liblxqt
350 libqtxdg
351 polkit-qt
352 qtsvg-5
353 qtx11extras))
354 (native-inputs
355 (list lxqt-build-tools qttools-5))
356 (arguments
357 '(#:tests? #f ; no tests
358 #:phases
359 (modify-phases %standard-phases
360 (add-after 'unpack 'patch-source
361 (lambda _
362 (substitute* '("lxqt-admin-user/CMakeLists.txt"
363 "lxqt-admin-time/CMakeLists.txt")
364 (("DESTINATION \"\\$\\{POLKITQT-1_POLICY_FILES_INSTALL_DIR\\}")
365 "DESTINATION \"share/polkit-1/actions"))
366 #t)))))
367 (home-page "https://lxqt-project.org")
368 (synopsis "LXQt system administration tool")
369 (description "lxqt-admin is providing two GUI tools to adjust settings of
370 the operating system LXQt is running on.")
371 (license license:lgpl2.1+)))
372
373 (define-public lxqt-config
374 (package
375 (name "lxqt-config")
376 (version "1.1.0")
377 (source
378 (origin
379 (method url-fetch)
380 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
381 version "/" name "-" version ".tar.xz"))
382 (sha256
383 (base32 "0f0x82qma86kjdvn08qlg0ydxh9fnqikijfhnicynxdqfnp50ia5"))))
384 (build-system cmake-build-system)
385 (inputs
386 (list eudev
387 kwindowsystem
388 liblxqt
389 libqtxdg
390 libxcursor
391 libxi
392 qtbase-5
393 qtsvg-5
394 qtx11extras
395 solid
396 xf86-input-libinput
397 xkeyboard-config
398 zlib))
399 (native-inputs
400 (list pkg-config lxqt-build-tools qttools-5))
401 ;; XXX: This is a workaround so libkscreen can find the backends as we
402 ;; dont have a way specify them. We may want to patch like Nix does.
403 (propagated-inputs
404 (list libkscreen))
405 (arguments
406 '(#:tests? #f ; no tests
407 #:phases
408 (modify-phases %standard-phases
409 (add-after 'unpack 'set-xkeyboard-config-file-name
410 (lambda* (#:key inputs #:allow-other-keys)
411 ;; Set the file name to xkeyboard-config.
412 (let ((xkb (assoc-ref inputs "xkeyboard-config")))
413 (substitute* "lxqt-config-input/keyboardlayoutconfig.h"
414 (("/usr/share/X11/xkb/rules/base.lst")
415 (string-append xkb "/share/X11/xkb/rules/base.lst")))
416 #t))))))
417 (home-page "https://lxqt-project.org")
418 (synopsis "Tools to configure LXQt and the underlying operating system")
419 (description "lxqt-config is providing several tools involved in the
420 configuration of both LXQt and the underlying operating system.")
421 (license license:lgpl2.1+)))
422
423 (define-public lxqt-globalkeys
424 (package
425 (name "lxqt-globalkeys")
426 (version "1.1.0")
427 (source
428 (origin
429 (method url-fetch)
430 (uri (string-append "https://github.com/lxqt/lxqt-globalkeys/"
431 "releases/download/" version "/"
432 "lxqt-globalkeys-" version ".tar.xz"))
433 (sha256
434 (base32 "0bbw85aa59w0qnvkdggm3hbacps6yfcvcrs32d34mvvhc7d6g04l"))))
435 (build-system cmake-build-system)
436 (inputs
437 (list kwindowsystem
438 liblxqt
439 libqtxdg
440 qtbase-5
441 qtsvg-5
442 qtx11extras))
443 (native-inputs
444 (list pkg-config qttools-5 lxqt-build-tools))
445 (arguments '(#:tests? #f)) ; no tests
446 (home-page "https://lxqt-project.org")
447 (synopsis "Daemon used to register global keyboard shortcuts")
448 (description "lxqt-globalkeys is providing tools to set global keyboard
449 shortcuts in LXQt sessions, that is shortcuts which apply to the LXQt session
450 as a whole and are not limited to distinct applications.")
451 (license license:lgpl2.1+)))
452
453 (define-public lxqt-notificationd
454 (package
455 (name "lxqt-notificationd")
456 (version "1.1.0")
457 (source
458 (origin
459 (method url-fetch)
460 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
461 version "/" name "-" version ".tar.xz"))
462 (sha256
463 (base32 "0bz3qdvv591zvpkxqzqqmh1yq5icc3iinmjr13qzws3ajlj19z44"))))
464 (build-system cmake-build-system)
465 (inputs
466 (list kwindowsystem
467 liblxqt
468 libqtxdg
469 qtbase-5
470 qtsvg-5
471 qtx11extras))
472 (native-inputs
473 (list lxqt-build-tools qttools-5))
474 (arguments '(#:tests? #f)) ; no test target
475 (home-page "https://lxqt-project.org")
476 (synopsis "The LXQt notification daemon")
477 (description "lxqt-notificationd is LXQt's implementation of a daemon
478 according to the Desktop Notifications Specification.")
479 (license license:lgpl2.1+)))
480
481 (define-public lxqt-openssh-askpass
482 (package
483 (name "lxqt-openssh-askpass")
484 (version "1.1.0")
485 (source
486 (origin
487 (method url-fetch)
488 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
489 version "/" name "-" version ".tar.xz"))
490 (sha256
491 (base32 "1hxix513z2sanmygfzq1fgx30kaxw5rjmmklbyyzl8bv1xzjcwk7"))))
492 (build-system cmake-build-system)
493 (inputs
494 (list kwindowsystem
495 liblxqt
496 libqtxdg
497 qtbase-5
498 qtsvg-5
499 qtx11extras))
500 (native-inputs
501 (list lxqt-build-tools qttools-5))
502 (arguments '(#:tests? #f)) ; no tests
503 (home-page "https://lxqt-project.org")
504 (synopsis "GUI to query passwords on behalf of SSH agents")
505 (description "lxqt-openssh-askpass is a GUI to query credentials on behalf
506 of other programs.")
507 (license license:lgpl2.1+)))
508
509 (define-public lxqt-panel
510 (package
511 (name "lxqt-panel")
512 (version "1.1.0")
513 (source
514 (origin
515 (method url-fetch)
516 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
517 version "/" name "-" version ".tar.xz"))
518 (sha256
519 (base32 "11dg18ac6kj8qkkrg940bzpykjih6nnw8y3hfww3wiyg6dka9gd7"))))
520 (build-system cmake-build-system)
521 (inputs
522 (list alsa-lib
523 kguiaddons
524 libdbusmenu-qt
525 liblxqt
526 libqtxdg
527 libstatgrab
528 libsysstat
529 libxcomposite
530 libxdamage
531 libxkbcommon
532 libxrender
533 libxtst
534 `(,lm-sensors "lib")
535 lxqt-globalkeys
536 pcre
537 pulseaudio
538 qtbase-5
539 qtsvg-5
540 qtx11extras
541 solid
542 xcb-util
543 xcb-util-image
544 xkeyboard-config))
545 (native-inputs
546 (list pkg-config lxqt-build-tools qttools-5))
547 (propagated-inputs
548 ;; Propagating KWINDOWSYSTEM so that the list of opened applications
549 ;; shows up in lxqt-panel's taskbar plugin.
550 (list kwindowsystem lxmenu-data))
551 (arguments
552 '(#:tests? #f ; no tests
553 #:phases
554 (modify-phases %standard-phases
555 (add-after 'unpack 'set-xkeyboard-config-file-path
556 (lambda* (#:key inputs #:allow-other-keys)
557 ;; Set the path to xkeyboard-config.
558 (let ((xkb (assoc-ref inputs "xkeyboard-config")))
559 (substitute* "plugin-kbindicator/src/x11/kbdlayout.cpp"
560 (("/usr/share/X11/xkb/rules/evdev.xml")
561 (string-append xkb "/share/X11/xkb/rules/evdev.xml")))
562 #t))))))
563 (home-page "https://lxqt-project.org")
564 (synopsis "The LXQt desktop panel")
565 (description "lxqt-panel represents the taskbar of LXQt.")
566 (license license:lgpl2.1+)))
567
568 (define-public lxqt-policykit
569 (package
570 (name "lxqt-policykit")
571 (version "1.1.0")
572 (source
573 (origin
574 (method url-fetch)
575 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
576 version "/" name "-" version ".tar.xz"))
577 (sha256
578 (base32 "150ggcfprascnwgsz721vnmay9cbar9annlhp6h2yzkl69iyc49r"))))
579 (build-system cmake-build-system)
580 (inputs
581 (list kwindowsystem
582 liblxqt
583 libqtxdg
584 pcre
585 polkit-qt
586 qtbase-5
587 qtsvg-5
588 qtx11extras))
589 (native-inputs
590 (list pkg-config polkit lxqt-build-tools qttools-5))
591 (arguments '(#:tests? #f)) ; no test target
592 (home-page "https://lxqt-project.org")
593 (synopsis "The LXQt PolicyKit agent")
594 (description "lxqt-policykit is the polkit authentication agent of
595 LXQt.")
596 (license license:lgpl2.1+)))
597
598 (define-public lxqt-powermanagement
599 (package
600 (name "lxqt-powermanagement")
601 (version "1.1.0")
602 (source
603 (origin
604 (method url-fetch)
605 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
606 version "/" name "-" version ".tar.xz"))
607 (sha256
608 (base32 "0zy6abbf3iwrxsr18gbxidb4m5spsigpa2778xg7y9r7fwgmqqkk"))))
609 (build-system cmake-build-system)
610 (inputs
611 (list kidletime
612 kwindowsystem
613 liblxqt
614 libqtxdg
615 lxqt-globalkeys
616 qtbase-5
617 qtsvg-5
618 qtx11extras
619 solid))
620 (native-inputs
621 (list lxqt-build-tools qttools-5))
622 (arguments '(#:tests? #f)) ; no tests
623 (home-page "https://lxqt-project.org")
624 (synopsis "Power management module for LXQt")
625 (description "lxqt-powermanagement is providing tools to monitor power
626 management events and optionally trigger actions like e. g. shut down a system
627 when laptop batteries are low on power.")
628 (license license:lgpl2.1+)))
629
630 (define-public lxqt-qtplugin
631 (package
632 (name "lxqt-qtplugin")
633 (version "1.1.0")
634 (source
635 (origin
636 (method url-fetch)
637 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
638 version "/" name "-" version ".tar.xz"))
639 (sha256
640 (base32 "1zw79lnm35gj3dyd4vlnk08n1lnr8391n36nbn81d0fgmvs21yx4"))))
641 (build-system cmake-build-system)
642 (inputs
643 (list libdbusmenu-qt
644 libfm-qt
645 libqtxdg
646 qtbase-5
647 qtsvg-5
648 qtx11extras))
649 (native-inputs
650 (list lxqt-build-tools qttools-5))
651 (arguments
652 '(#:tests? #f ; no tests
653 #:phases
654 (modify-phases %standard-phases
655 (add-after 'unpack 'patch-source
656 (lambda _
657 (substitute* '("src/CMakeLists.txt")
658 (("DESTINATION \"\\$\\{QT_PLUGINS_DIR\\}")
659 "DESTINATION \"lib/qt5/plugins"))
660 #t)))))
661 (home-page "https://lxqt-project.org")
662 (synopsis "LXQt Qt platform integration plugin")
663 (description "lxqt-qtplugin is providing a library libqtlxqt to integrate
664 Qt with LXQt.")
665 (license license:lgpl2.1+)))
666
667 (define-public lxqt-runner
668 (package
669 (name "lxqt-runner")
670 (version "1.1.0")
671 (source
672 (origin
673 (method url-fetch)
674 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
675 version "/" name "-" version ".tar.xz"))
676 (sha256
677 (base32 "1wfng8g28mq97ibrgpfbj353i15vdimmjp83pfqrmkddx0yvzcdv"))))
678 (build-system cmake-build-system)
679 (inputs
680 (list kwindowsystem
681 liblxqt
682 libqtxdg
683 lxqt-globalkeys
684 muparser
685 pcre
686 qtbase-5
687 qtsvg-5
688 qtx11extras))
689 (native-inputs
690 (list pkg-config qttools-5 lxqt-build-tools))
691 (arguments '(#:tests? #f)) ; no tests
692 (home-page "https://lxqt-project.org")
693 (synopsis "Tool used to launch programs quickly by typing their names")
694 (description "lxqt-runner provides a GUI that comes up on the desktop and
695 allows for launching applications or shutting down the system.")
696 (license license:lgpl2.1+)))
697
698 (define-public lxqt-session
699 (package
700 (name "lxqt-session")
701 (version "1.1.1")
702 (source
703 (origin
704 (method url-fetch)
705 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
706 version "/" name "-" version ".tar.xz"))
707 (sha256
708 (base32 "0j8q5jfpb2l0vvji3xs8y0jcr792z6sxzj111qqvmdrbpxrkwxnw"))))
709 (build-system cmake-build-system)
710 (inputs
711 (list eudev
712 kwindowsystem
713 liblxqt
714 qtxdg-tools
715 procps
716 qtbase-5
717 qtsvg-5
718 qtx11extras
719 xdg-user-dirs))
720 (native-inputs
721 (list pkg-config lxqt-build-tools qttools-5))
722 (arguments
723 `(#:tests? #f
724 #:phases
725 (modify-phases %standard-phases
726 (add-after 'unpack 'patch-source
727 (lambda* (#:key outputs #:allow-other-keys)
728 (let ((out (assoc-ref outputs "out")))
729 (substitute* '("xsession/lxqt.desktop.in")
730 (("Exec=startlxqt") (string-append "Exec=" out "/bin/startlxqt"))
731 (("TryExec=lxqt-session") (string-append "TryExec=" out "/bin/startlxqt"))))))
732
733 (add-after 'unpack 'patch-openbox-permission
734 (lambda _
735 (substitute* "startlxqt.in"
736 ;; Don't add 'etc/xdg' to XDG_CONFIG_DIRS, and 'share' to XDG_DATA_DIRS.
737 (("! contains .*;") "false;")
738 ;; Add write permission to lxqt-rc.xml file which is stored as
739 ;; read-only in store.
740 (("cp \"\\$LXQT_DEFAULT_OPENBOX_CONFIG\" \"\\$XDG_CONFIG_HOME/openbox\"")
741 (string-append "cp \"$LXQT_DEFAULT_OPENBOX_CONFIG\" \"$XDG_CONFIG_HOME/openbox\"\n"
742 " # fix openbox permission issue\n"
743 " chmod u+w \"$XDG_CONFIG_HOME/openbox\"/*"))))))))
744 (native-search-paths
745 (list (search-path-specification
746 ;; LXQt applications install their default config files into
747 ;; 'share/lxqt' and search them from XDG_CONFIG_DIRS/lxqt.
748 (variable "XDG_CONFIG_DIRS")
749 (files '("share")))))
750 (home-page "https://lxqt-project.org")
751 (synopsis "Session manager for LXQt")
752 (description "lxqt-session provides the standard session manager
753 for the LXQt desktop environment.")
754 (license license:lgpl2.1+)))
755
756 (define-public lxqt-sudo
757 (package
758 (name "lxqt-sudo")
759 (version "1.1.0")
760 (source
761 (origin
762 (method url-fetch)
763 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
764 version "/" name "-" version ".tar.xz"))
765 (sha256
766 (base32 "064w40v43m91y9aywxxf2pj5rpcl4gbsgj7dv97pg4vhj9s790b8"))))
767 (build-system cmake-build-system)
768 (inputs
769 (list kwindowsystem
770 liblxqt
771 libqtxdg
772 qtbase-5
773 qtsvg-5
774 qtx11extras
775 sudo))
776 (native-inputs
777 (list pkg-config qttools-5 lxqt-build-tools))
778 (arguments '(#:tests? #f)) ; no tests
779 (home-page "https://lxqt-project.org")
780 (synopsis "GUI frontend for sudo/su")
781 (description "lxqt-sudo is a graphical front-end of commands sudo and su
782 respectively. As such it enables regular users to launch applications with
783 permissions of other users including root.")
784 (license license:lgpl2.1+)))
785
786 (define-public lxqt-themes
787 (package
788 (name "lxqt-themes")
789 (version "1.1.0")
790 (source
791 (origin
792 (method url-fetch)
793 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
794 version "/" name "-" version ".tar.xz"))
795 (sha256
796 (base32 "18zrp2j0xpsrzy6m2dw8k55zczcc9jzavncasrp5j1dxscnzwrcr"))))
797 (build-system cmake-build-system)
798 (native-inputs
799 (list lxqt-build-tools))
800 (arguments '(#:tests? #f)) ; no tests
801 (home-page "https://lxqt-project.org")
802 (synopsis "Themes, graphics and icons for LXQt")
803 (description "This package comprises a number of graphic files and themes
804 for LXQt.")
805 ;; The whole package is released under LGPL 2.1+, while the LXQt logo is
806 ;; licensed under CC-BY-SA 3.0.
807 (license license:lgpl2.1+)))
808
809
810 ;; File Manager
811
812 (define-public libfm-qt
813 (package
814 (name "libfm-qt")
815 (version "0.17.1")
816 (source
817 (origin
818 (method url-fetch)
819 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
820 version "/" name "-" version ".tar.xz"))
821 (sha256
822 (base32 "1991lm1gnw9s5wwn1yf3vba63bfmrrgsxc70h3nhdl9mh16qygxa"))))
823 (build-system cmake-build-system)
824 (arguments
825 '(#:tests? #f)) ; no tests
826 (inputs
827 (list glib
828 libexif
829 libfm
830 libxcb
831 menu-cache
832 pcre
833 qtbase-5
834 qtx11extras))
835 (native-inputs
836 (list pkg-config lxqt-build-tools qttools-5))
837 (home-page "https://lxqt-project.org")
838 (synopsis "Qt binding for libfm")
839 (description "libfm-qt is the Qt port of libfm, a library providing
840 components to build desktop file managers which belongs to LXDE.")
841 (license license:lgpl2.1+)))
842
843 (define-public pcmanfm-qt
844 (package
845 (name "pcmanfm-qt")
846 (version "0.17.0")
847 (source
848 (origin
849 (method url-fetch)
850 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
851 version "/" name "-" version ".tar.xz"))
852 (sha256
853 (base32 "1axs7dnh2z08ygy28iipfbgfck15k2i2pwlf0v8d8axjrmavzb3l"))))
854 (build-system cmake-build-system)
855 (inputs
856 (list libfm-qt qtbase-5 qtx11extras))
857 (native-inputs
858 (list pkg-config qttools-5 lxqt-build-tools))
859 (arguments
860 '(#:tests? #f ; no tests
861 #:phases
862 (modify-phases %standard-phases
863 (add-after 'unpack 'patch-source
864 (lambda _
865 (substitute* '("autostart/CMakeLists.txt")
866 (("DESTINATION \"\\$\\{LXQT_ETC_XDG_DIR\\}")
867 "DESTINATION \"etc/xdg"))
868 (substitute* '("config/pcmanfm-qt/lxqt/settings.conf.in")
869 (("@LXQT_SHARE_DIR@")
870 "/run/current-system/profile/share/lxqt" ))
871 #t)))))
872 (home-page "https://lxqt-project.org")
873 (synopsis "File manager and desktop icon manager")
874 (description "PCManFM-Qt is the Qt port of PCManFM, the file manager of
875 LXDE.")
876 (license license:gpl2+)))
877
878
879 ;; Extra
880
881 (define-public compton-conf
882 (package
883 (name "compton-conf")
884 (version "0.16.0")
885 (source
886 (origin
887 (method url-fetch)
888 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
889 version "/" name "-" version ".tar.xz"))
890 (sha256
891 (base32 "0haarzhndjp0wndfhcdy6zl2whpdn3w0qzr3rr137kfqibc58lvx"))))
892 (build-system cmake-build-system)
893 (inputs
894 (list libconfig qtbase-5))
895 (native-inputs
896 (list lxqt-build-tools pkg-config qttools-5))
897 (arguments
898 '(#:tests? #f ; no tests
899 #:phases
900 (modify-phases %standard-phases
901 (add-after 'unpack 'patch-source
902 (lambda _
903 (substitute* '("autostart/CMakeLists.txt")
904 (("DESTINATION \"\\$\\{LXQT_ETC_XDG_DIR\\}")
905 "DESTINATION \"etc/xdg"))
906 #t)))))
907 (home-page "https://lxqt-project.org")
908 (synopsis "GUI configuration tool for compton X composite manager")
909 (description "@code{compton-conf} is a configuration tool for X composite
910 manager Compton.")
911 (license license:lgpl2.1+)))
912
913 (define-public lximage-qt
914 (package
915 (name "lximage-qt")
916 (version "0.17.0")
917 (source
918 (origin
919 (method url-fetch)
920 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
921 version "/" name "-" version ".tar.xz"))
922 (sha256
923 (base32 "0g6hs41xfw2ghhwpj0rqr2ciri0x9v984689yrnmnvah88zlya1f"))))
924 (build-system cmake-build-system)
925 (inputs
926 (list libexif libfm-qt qtbase-5 qtsvg-5 qtx11extras))
927 (native-inputs
928 (list pkg-config lxqt-build-tools qttools-5))
929 (arguments
930 '(#:tests? #f)) ; no tests
931 (home-page "https://lxqt-project.org")
932 (synopsis "The image viewer and screenshot tool for lxqt")
933 (description "LXImage-Qt is the Qt port of LXImage, a simple and fast
934 image viewer.")
935 (license license:gpl2+)))
936
937 (define-public obconf-qt
938 (package
939 (name "obconf-qt")
940 (version "0.16.1")
941 (source
942 (origin
943 (method url-fetch)
944 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
945 version "/" name "-" version ".tar.xz"))
946 (sha256
947 (base32 "0hlbivdbiw7wjhwrp8qfmq50ks19v0q21m3pyjj0k2na7nv9d3a5"))))
948 (build-system cmake-build-system)
949 (inputs
950 (list imlib2
951 libsm
952 librsvg
953 libxft
954 libxml2
955 openbox
956 pango
957 pcre
958 qtbase-5
959 qtx11extras))
960 (native-inputs
961 (list lxqt-build-tools pkg-config qttools-5))
962 (arguments
963 '(#:tests? #f)) ; no tests
964 (home-page "https://lxqt-project.org")
965 (synopsis "Openbox configuration tool")
966 (description "ObConf-Qt is a Qt port of ObConf, a configuration editor for
967 window manager OpenBox.")
968 (license license:gpl2+)))
969
970 (define-public pavucontrol-qt
971 (package
972 (name "pavucontrol-qt")
973 (version "0.17.0")
974 (source
975 (origin
976 (method url-fetch)
977 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
978 version "/" name "-" version ".tar.xz"))
979 (sha256
980 (base32 "0w51dpjayav78lmhw966fz3gvypkmv64xgsd7x5rqs8am39lq9vc"))))
981 (build-system cmake-build-system)
982 (inputs
983 (list glib pcre pulseaudio qtbase-5 qtx11extras))
984 (native-inputs
985 (list pkg-config lxqt-build-tools qttools-5))
986 (arguments
987 '(#:tests? #f)) ; no tests
988 (home-page "https://lxqt-project.org")
989 (synopsis "Pulseaudio mixer in Qt")
990 (description "@code{pavucontrol-qt} is the Qt port of volume control
991 @code{pavucontrol} of sound server @code{PulseAudio}.")
992 (license license:gpl2+)))
993
994 (define-public qps
995 (package
996 (name "qps")
997 (version "2.3.0")
998 (source
999 (origin
1000 (method url-fetch)
1001 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
1002 version "/" name "-" version ".tar.xz"))
1003 (sha256
1004 (base32 "0zg0czrh3dlbnl5smxamhkdbj1g0szm47w1c0fwpaplgc1vv5lfq"))))
1005 (build-system cmake-build-system)
1006 (inputs
1007 (list kwindowsystem
1008 libxrender
1009 liblxqt
1010 libqtxdg
1011 qtbase-5
1012 qtx11extras))
1013 (native-inputs
1014 (list lxqt-build-tools qttools-5))
1015 (arguments
1016 '(#:tests? #f)) ; no tests
1017 (home-page "https://lxqt-project.org")
1018 (synopsis "Qt-based visual process status monitor")
1019 (description "@code{qps} is a monitor that displays the status of the
1020 processes currently in existence, much like code{top} or code{ps}.")
1021 (license license:gpl2+)))
1022
1023 (define-public qtermwidget
1024 (package
1025 (name "qtermwidget")
1026 (version "0.17.0")
1027 (source
1028 (origin
1029 (method url-fetch)
1030 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
1031 version "/" name "-" version ".tar.xz"))
1032 (sha256
1033 (base32 "10lv475qj0x3c3vl4yhjyr6y10qj5pq8n5pal5k24f6pf7xv412f"))))
1034 (build-system cmake-build-system)
1035 (inputs
1036 (list qtbase-5 utf8proc))
1037 (native-inputs
1038 (list lxqt-build-tools qttools-5))
1039 (arguments
1040 '(#:tests? #f)) ; no tests
1041 (home-page "https://lxqt-project.org")
1042 (synopsis "The terminal widget for QTerminal")
1043 (description "QTermWidget is a terminal emulator widget for Qt 5.")
1044 (license license:gpl2+)))
1045
1046 (define-public qterminal
1047 (package
1048 (name "qterminal")
1049 (version "0.17.0")
1050 (source
1051 (origin
1052 (method url-fetch)
1053 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
1054 version "/" name "-" version ".tar.xz"))
1055 (sha256
1056 (base32 "0rfv7a6ncm8fs8aicinh9l29w4636gxzcqz735jmch2r41v9i1d9"))))
1057 (build-system cmake-build-system)
1058 (inputs
1059 (list qtbase-5 qtx11extras qtermwidget))
1060 (native-inputs
1061 (list lxqt-build-tools qttools-5))
1062 (arguments
1063 '(#:tests? #f)) ; no tests
1064 (home-page "https://lxqt-project.org")
1065 (synopsis "Lightweight Qt-based terminal emulator")
1066 (description "QTerminal is a lightweight Qt terminal emulator based on
1067 QTermWidget.")
1068 (license license:gpl2+)))
1069
1070 (define-public screengrab
1071 (package
1072 (name "screengrab")
1073 (version "2.2.0")
1074 (source
1075 (origin
1076 (method url-fetch)
1077 (uri (string-append "https://github.com/lxqt/screengrab/releases/download/"
1078 version "/screengrab-" version ".tar.xz"))
1079 (sha256
1080 (base32 "0cilzw7rz5m2klzpax7rrs5rr6whfda2svwzsn2jvmrirmh5by7r"))))
1081 (build-system cmake-build-system)
1082 (inputs
1083 (list kwindowsystem libqtxdg qtbase-5 qtsvg-5 qtx11extras))
1084 (native-inputs
1085 (list pkg-config perl qttools-5))
1086 (arguments
1087 '(#:tests? #f)) ; no tests
1088 (home-page "https://lxqt-project.org")
1089 (synopsis "Crossplatform tool for fast making screenshots")
1090 (description "ScreenGrab is a program for fast creating screenshots, and
1091 easily publishing them on internet image hosting services.")
1092 (license license:gpl2+)))
1093
1094
1095 (define-public lxqt-archiver
1096 (package
1097 (name "lxqt-archiver")
1098 (version "0.4.0")
1099 (source
1100 (origin
1101 (method url-fetch)
1102 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
1103 version "/" name "-" version ".tar.xz"))
1104 (sha256
1105 (base32 "0fzgq7cyr7hx8qmq84xfgbsdx04mc1r7vzq5mz79j7bp2ysh134z"))))
1106 (build-system cmake-build-system)
1107 (inputs
1108 (list glib json-glib libfm-qt qtbase-5 qtx11extras))
1109 (native-inputs
1110 (list pkg-config lxqt-build-tools qttools-5))
1111 (arguments
1112 '(#:tests? #f))
1113 (home-page "https://lxqt-project.org")
1114 (synopsis "Simple & lightweight desktop-agnostic Qt file archiver")
1115 (description
1116 "This package provides a Qt graphical interface to archiving programs
1117 like @command{tar} and @command{zip}.")
1118 (license license:gpl2+)))
1119
1120 (define-public lxqt-connman-applet
1121 ;; since the main developers didn't release any version yet, their
1122 ;; latest commit on `master` branch at the moment used for this version.
1123 (let ((commit "db1618d58fd3439142c4e44b24cba0dbb68b7141")
1124 (revision "0"))
1125 (package
1126 (name "lxqt-connman-applet")
1127 (version (git-version "0.15.0" revision commit))
1128 (source
1129 (origin
1130 (method git-fetch)
1131 (uri (git-reference
1132 (url (string-append "https://github.com/lxqt/" name))
1133 (commit commit)))
1134 (file-name (git-file-name name version))
1135 (sha256
1136 (base32 "087641idpg7n8yhh5biis4wv52ayw3rddirwqb34bf5fwj664pw9"))))
1137 (build-system cmake-build-system)
1138 (inputs
1139 (list kwindowsystem
1140 qtbase-5
1141 qtsvg-5
1142 liblxqt
1143 qtx11extras
1144 libqtxdg))
1145 (native-inputs
1146 `(("lxqt-build-tools" ,lxqt-build-tools)
1147 ("qtlinguist" ,qttools-5)))
1148 (arguments
1149 `(#:tests? #f ; no tests
1150 #:phases
1151 (modify-phases %standard-phases
1152 (add-after 'unpack 'patch-translations-dir
1153 (lambda* (#:key outputs #:allow-other-keys)
1154 (substitute* "CMakeLists.txt"
1155 (("\\$\\{LXQT_TRANSLATIONS_DIR\\}")
1156 (string-append (assoc-ref outputs "out")
1157 "/share/lxqt/translations"))
1158 (("\\$\\{LXQT_ETC_XDG_DIR\\}") "etc/xdg"))
1159 #t))
1160 (add-after 'unpack 'remove-definitions
1161 (lambda _
1162 (substitute* "CMakeLists.txt"
1163 (("include\\(LXQtCompilerSettings NO_POLICY_SCOPE\\)")
1164 "include(LXQtCompilerSettings NO_POLICY_SCOPE)
1165 remove_definitions(-DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII)"))
1166 #t)))))
1167 (home-page "https://github.com/lxqt/lxqt-connman-applet")
1168 (synopsis "System-tray applet for connman")
1169 (description "This package provides a Qt-based system-tray applet for
1170 the network management tool Connman, originally developed for the LXQT
1171 desktop.")
1172 (license license:lgpl2.1+))))
1173
1174 ;; The LXQt Desktop Environment
1175
1176 (define-public lxqt
1177 (package
1178 (name "lxqt")
1179 (version "17.0")
1180 (source #f)
1181 (build-system trivial-build-system)
1182 (arguments '(#:builder (begin (mkdir %output) #t)))
1183 (propagated-inputs
1184 (list ;; XDG
1185 desktop-file-utils
1186 hicolor-icon-theme
1187 xdg-user-dirs
1188 xdg-utils
1189 ;; Base
1190 ;; TODO: qtsvg-5 is needed for lxqt apps to display icons. Maybe it
1191 ;; should be added to their propagated-inputs?
1192 qtsvg-5
1193 ;; Core
1194 lxqt-about
1195 lxqt-admin
1196 lxqt-config
1197 lxqt-globalkeys
1198 lxqt-notificationd
1199 lxqt-openssh-askpass
1200 lxqt-panel
1201 lxqt-policykit
1202 lxqt-powermanagement
1203 lxqt-qtplugin
1204 lxqt-runner
1205 lxqt-session
1206 lxqt-sudo
1207 lxqt-themes
1208 pcmanfm-qt
1209 ;; Extra
1210 picom
1211 font-dejavu
1212 lximage-qt
1213 obconf-qt
1214 openbox
1215 oxygen-icons
1216 pavucontrol-qt
1217 qps
1218 qterminal))
1219 (synopsis "The Lightweight Qt Desktop Environment")
1220 (description "LXQt is a lightweight Qt desktop environment.")
1221 (home-page "https://lxqt-project.org")
1222 (license license:gpl2+)))