1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
3 ;;; Copyright © 2015 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 ng0 <ng0@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>
13 ;;; This file is part of GNU Guix.
15 ;;; GNU Guix is free software; you can redistribute it and/or modify it
16 ;;; under the terms of the GNU General Public License as published by
17 ;;; the Free Software Foundation; either version 3 of the License, or (at
18 ;;; your option) any later version.
20 ;;; GNU Guix is distributed in the hope that it will be useful, but
21 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
22 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 ;;; GNU General Public License for more details.
25 ;;; You should have received a copy of the GNU General Public License
26 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
28 (define-module (gnu packages lxqt)
29 #:use-module (guix download)
30 #:use-module (guix git-download)
31 #:use-module ((guix licenses) #:prefix license:)
32 #:use-module (guix packages)
33 #:use-module (guix utils)
34 #:use-module (guix build-system cmake)
35 #:use-module (guix build-system gnu)
36 #:use-module (guix build-system trivial)
37 #:use-module (gnu packages)
38 #:use-module (gnu packages admin)
39 #:use-module (gnu packages compression)
40 #:use-module (gnu packages documentation)
41 #:use-module (gnu packages compton)
42 #:use-module (gnu packages fonts)
43 #:use-module (gnu packages freedesktop)
44 #:use-module (gnu packages glib)
45 #:use-module (gnu packages gnome)
46 #:use-module (gnu packages gtk)
47 #:use-module (gnu packages image)
48 #:use-module (gnu packages kde-frameworks)
49 #:use-module (gnu packages kde-plasma)
50 #:use-module (gnu packages linux)
51 #:use-module (gnu packages perl)
52 #:use-module (gnu packages lxde)
53 #:use-module (gnu packages maths)
54 #:use-module (gnu packages openbox)
55 #:use-module (gnu packages pcre)
56 #:use-module (gnu packages photo)
57 #:use-module (gnu packages pkg-config)
58 #:use-module (gnu packages polkit)
59 #:use-module (gnu packages pulseaudio)
60 #:use-module (gnu packages qt)
61 #:use-module (gnu packages textutils)
62 #:use-module (gnu packages xdisorg)
63 #:use-module (gnu packages xml)
64 #:use-module (gnu packages xorg))
67 ;; Third party libraries
69 (define-public libdbusmenu-qt
71 (name "libdbusmenu-qt")
72 (version "0.9.3+16.04.20160218-0ubuntu1")
76 ;; Download from github rather than launchpad because launchpad trunk
77 ;; tarball hash is not deterministic.
79 (url "https://github.com/unity8-team/libdbusmenu-qt.git")
81 (file-name (git-file-name name version))
83 (base32 "0b7ii1cvmpcyl79gqal9c3va9m55h055s4hx7fpxkhhqs9463ggg"))))
84 (build-system cmake-build-system)
86 ;; XXX: Tests require a dbus session and some icons.
89 `(("doxygen" ,doxygen)))
91 `(("qtbase" ,qtbase)))
92 (home-page "https://launchpad.net/libdbusmenu-qt")
93 (synopsis "Qt implementation of the DBusMenu spec")
94 (description "This library provides a Qt implementation of the DBusMenu
95 protocol. The DBusMenu protocol makes it possible for applications to export
96 and import their menus over DBus.")
97 (license license:lgpl2.1+)))
99 (define-public libstatgrab
106 (uri (string-append "https://ftp.i-scream.org/pub/i-scream/libstatgrab/"
107 name "-" version ".tar.gz"))
109 (base32 "1azinx2yzs442ycwq6p15skl3mscmqj7fd5hq7fckhjp92735s83"))))
110 (build-system gnu-build-system)
112 '(#:configure-flags '("--enable-tests")))
116 (home-page "https://www.i-scream.org/libstatgrab/")
117 (synopsis "Provides access to statistics about the system")
118 (description "libstatgrab is a library that provides cross platform access
119 to statistics about the system on which it's run.")
120 ;; Libraries are under LGPL2.1+, and programs under GPLv2+.
121 (license license:gpl2+)))
126 (define-public lxqt-build-tools
128 (name "lxqt-build-tools")
133 (uri (string-append "https://github.com/lxqt/lxqt-build-tools/releases"
135 "/lxqt-build-tools-" version ".tar.xz"))
137 (base32 "0n0p0mf12n9f7zm2592779rpqrbcamfdz87nnjb8j058bc8g3214"))))
138 (build-system cmake-build-system)
140 `(#:tests? #f ; no tests
142 ;; 'startlxqt' will add LXQT_DATA_DIR to XDG_DATA_DIRS,
143 ;; LXQT_ETC_XDG_DIR to XDG_CONFIG_DIRS, and 'lxqt-about' will report
144 ;; LXQT_ETC_XDG_DIR in its "Technical Info".
145 '("-DLXQT_DATA_DIR=/run/current-system/profile/share"
146 "-DLXQT_ETC_XDG_DIR=/run/current-system/profile/etc/xdg")))
148 `(("pkg-config" ,pkg-config)
151 `(("qtbase" ,qtbase)))
152 (synopsis "LXQt Build tools")
154 "Lxqt-build-tools is providing several tools needed to build LXQt
155 itself as well as other components maintained by the LXQt project.")
156 (home-page "https://lxqt.org")
157 (license license:lgpl2.1+)))
159 (define-public libqtxdg
167 "https://github.com/lxqt/libqtxdg/releases/download/"
168 version "/libqtxdg-" version ".tar.xz"))
170 (base32 "0vmn59653dmy79mnbnibhdq9jmh11091zkfx0y0qh58rj2xvpdbv"))))
171 (build-system cmake-build-system)
175 "-DQTXDGX_ICONENGINEPLUGIN_INSTALL_PATH=lib/qt5/plugins/iconengines")
177 (modify-phases %standard-phases
178 (add-before 'check 'pre-check
180 ;; Run the tests offscreen.
181 (setenv "QT_QPA_PLATFORM" "offscreen")
184 ;; required by Qt5XdgIconLoader.pc
189 `(("lxqt-build-tools" ,lxqt-build-tools)
190 ("pkg-config" ,pkg-config)))
191 (home-page "https://github.com/lxqt/libqtxdg")
192 (synopsis "Qt implementation of freedesktop.org xdg specifications")
193 (description "Libqtxdg implements the freedesktop.org xdg specifications
195 (license license:lgpl2.1+)))
197 (define-public liblxqt
205 "https://github.com/lxqt/" name "/releases/download/"
206 version "/" name "-" version ".tar.xz"))
208 (base32 "1gb922npf6nw4w3nkvh4czk8xmdzzqkzq3zgl1h303fjaib359qs"))))
209 (build-system cmake-build-system)
211 `(#:tests? #f ; no tests
213 (modify-phases %standard-phases
214 (add-after 'unpack 'patch-source
216 (substitute* "CMakeLists.txt"
217 (("DESTINATION \"\\$\\{POLKITQT-1_POLICY_FILES_INSTALL_DIR\\}")
218 "DESTINATION \"share/polkit-1/actions"))
220 (add-after 'unpack 'patch-translations-dir
221 (lambda* (#:key outputs #:allow-other-keys)
222 (substitute* "CMakeLists.txt"
223 (("\\$\\{LXQT_TRANSLATIONS_DIR\\}")
224 (string-append (assoc-ref outputs "out")
225 "/share/lxqt/translations")))
228 `(("kwindowsystem" ,kwindowsystem)
229 ("libqtxdg" ,libqtxdg)
230 ("libxscrnsaver" ,libxscrnsaver)
231 ("polkit-qt" ,polkit-qt)
233 ("qtx11extras" ,qtx11extras)))
235 `(("lxqt-build-tools" ,lxqt-build-tools)
236 ("qttools" ,qttools)))
237 (home-page "https://lxqt.org/")
238 (synopsis "Core utility library for all LXQt components")
239 (description "liblxqt provides the basic libraries shared by the
240 components of the LXQt desktop environment.")
241 (license license:lgpl2.1+)))
243 (define-public libsysstat
250 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
251 version "/" name "-" version ".tar.xz"))
253 (base32 "0rz9w49khra9kl91kfnd3wxkldy1fqf6755mvlgbsqxb1yv8597w"))))
254 (build-system cmake-build-system)
255 (arguments '(#:tests? #f)) ; no tests
257 `(("qtbase" ,qtbase)))
259 `(("lxqt-build-tools" ,lxqt-build-tools)))
260 (home-page "https://lxqt.org/")
261 (synopsis "Library used to query system info and statistics")
262 (description "libsysstat is a library to query system information like CPU
263 and memory usage or network traffic.")
264 (license license:lgpl2.1+)))
269 (define-public lxqt-about
276 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
277 version "/" name "-" version ".tar.xz"))
279 (base32 "01xp5ddcxc9wvl7jm4179hjrirj07mpzm9z50936d1fqx34wfbis"))))
280 (build-system cmake-build-system)
282 `(("kwindowsystem" ,kwindowsystem)
284 ("libqtxdg" ,libqtxdg)
287 ("qtx11extras" ,qtx11extras)))
289 `(("lxqt-build-tools" ,lxqt-build-tools)
290 ("qttools" ,qttools)))
292 '(#:tests? #f ; no tests
294 (modify-phases %standard-phases
295 (add-before 'build 'setenv
297 (setenv "QT_RCC_SOURCE_DATE_OVERRIDE" "1")
299 (add-after 'unpack 'patch-translations-dir
300 (lambda* (#:key outputs #:allow-other-keys)
301 (substitute* "CMakeLists.txt"
302 (("\\$\\{LXQT_TRANSLATIONS_DIR\\}")
303 (string-append (assoc-ref outputs "out")
304 "/share/lxqt/translations")))
306 (home-page "https://lxqt.org")
307 (synopsis "Provides information about LXQt and the system")
308 (description "lxqt-about is a dialogue window providing information about
309 LXQt and the system it's running on.")
310 (license license:lgpl2.1+)))
312 (define-public lxqt-admin
319 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
320 version "/" name "-" version ".tar.xz"))
322 (base32 "0f0skkxqyhpidpd5phliax869v4n2whvglg8rahzia2zhw4ylzry"))))
323 (build-system cmake-build-system)
325 `(("kwindowsystem" ,kwindowsystem)
327 ("libqtxdg" ,libqtxdg)
328 ("polkit-qt" ,polkit-qt)
330 ("qtx11extras" ,qtx11extras)))
332 `(("lxqt-build-tools" ,lxqt-build-tools)
333 ("qttools" ,qttools)))
335 '(#:tests? #f ; no tests
337 (modify-phases %standard-phases
338 (add-after 'unpack 'patch-source
340 (substitute* "lxqt-admin-user/CMakeLists.txt"
341 (("DESTINATION \"\\$\\{POLKITQT-1_POLICY_FILES_INSTALL_DIR\\}")
342 "DESTINATION \"share/polkit-1/actions"))
344 (add-after 'unpack 'patch-translations-dir
345 (lambda* (#:key outputs #:allow-other-keys)
346 (substitute* '("lxqt-admin-time/CMakeLists.txt"
347 "lxqt-admin-user/CMakeLists.txt")
348 (("\\$\\{LXQT_TRANSLATIONS_DIR\\}")
349 (string-append (assoc-ref outputs "out")
350 "/share/lxqt/translations")))
352 (home-page "https://lxqt.org")
353 (synopsis "LXQt system administration tool")
354 (description "lxqt-admin is providing two GUI tools to adjust settings of
355 the operating system LXQt is running on.")
356 (license license:lgpl2.1+)))
358 (define-public lxqt-config
365 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
366 version "/" name "-" version ".tar.xz"))
368 (base32 "16k36knv6d72gg8hp7423l3ic43y3l3zbaf3spqn2a354y30myrg"))))
369 (build-system cmake-build-system)
372 ("kwindowsystem" ,kwindowsystem)
373 ("libkscreen" ,libkscreen)
375 ("libqtxdg" ,libqtxdg)
376 ("libxcursor" ,libxcursor)
380 ("qtx11extras" ,qtx11extras)
382 ("xf86-input-libinput" ,xf86-input-libinput)
383 ("xkeyboard-config" ,xkeyboard-config)
386 `(("pkg-config" ,pkg-config)
387 ("lxqt-build-tools" ,lxqt-build-tools)
388 ("qttools" ,qttools)))
390 '(#:tests? #f ; no tests
392 (modify-phases %standard-phases
393 (add-after 'unpack 'patch-source
395 (substitute* '("src/CMakeLists.txt")
396 (("DESTINATION \"\\$\\{LXQT_ETC_XDG_DIR\\}")
397 "DESTINATION \"etc/xdg"))
399 (add-after 'unpack 'set-xkeyboard-config-file-name
400 (lambda* (#:key inputs #:allow-other-keys)
401 ;; Set the file name to xkeyboard-config.
402 (let ((xkb (assoc-ref inputs "xkeyboard-config")))
403 (substitute* "lxqt-config-input/keyboardlayoutconfig.h"
404 (("/usr/share/X11/xkb/rules/base.lst")
405 (string-append xkb "/share/X11/xkb/rules/base.lst")))
407 (add-after 'unpack 'patch-translations-dir
408 (lambda* (#:key outputs #:allow-other-keys)
409 (substitute* '("lxqt-config-file-associations/CMakeLists.txt"
410 "lxqt-config-brightness/CMakeLists.txt"
411 "lxqt-config-appearance/CMakeLists.txt"
412 "lxqt-config-locale/CMakeLists.txt"
413 "lxqt-config-monitor/CMakeLists.txt"
414 "lxqt-config-input/CMakeLists.txt"
415 "liblxqt-config-cursor/CMakeLists.txt"
416 "src/CMakeLists.txt")
417 (("\\$\\{LXQT_TRANSLATIONS_DIR\\}")
418 (string-append (assoc-ref outputs "out")
419 "/share/lxqt/translations")))
421 (home-page "https://lxqt.org")
422 (synopsis "Tools to configure LXQt and the underlying operating system")
423 (description "lxqt-config is providing several tools involved in the
424 configuration of both LXQt and the underlying operating system.")
425 (license license:lgpl2.1+)))
427 (define-public lxqt-globalkeys
429 (name "lxqt-globalkeys")
434 (uri (string-append "https://github.com/lxqt/lxqt-globalkeys/"
435 "releases/download/" version "/"
436 "lxqt-globalkeys-" version ".tar.xz"))
438 (base32 "0mgl05qxvq4pdqvcw34i2cbyy87x605wy3np62mrbbb1kdfjrfg6"))))
439 (build-system cmake-build-system)
441 `(("kwindowsystem" ,kwindowsystem)
443 ("libqtxdg" ,libqtxdg)
446 ("qtx11extras" ,qtx11extras)))
448 `(("pkg-config" ,pkg-config)
450 ("lxqt-build-tools" ,lxqt-build-tools)))
452 '(#:tests? #f ; no tests
454 (modify-phases %standard-phases
455 (add-after 'unpack 'patch-source
457 (substitute* '("autostart/CMakeLists.txt"
458 "xdg/CMakeLists.txt")
459 (("DESTINATION \"\\$\\{LXQT_ETC_XDG_DIR\\}")
460 "DESTINATION \"etc/xdg"))
462 (add-after 'unpack 'patch-translations-dir
463 (lambda* (#:key outputs #:allow-other-keys)
464 (substitute* "config/CMakeLists.txt"
465 (("\\$\\{LXQT_TRANSLATIONS_DIR\\}")
466 (string-append (assoc-ref outputs "out")
467 "/share/lxqt/translations")))
469 (home-page "https://lxqt.org/")
470 (synopsis "Daemon used to register global keyboard shortcuts")
471 (description "lxqt-globalkeys is providing tools to set global keyboard
472 shortcuts in LXQt sessions, that is shortcuts which apply to the LXQt session
473 as a whole and are not limited to distinct applications.")
474 (license license:lgpl2.1+)))
476 (define-public lxqt-notificationd
478 (name "lxqt-notificationd")
483 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
484 version "/" name "-" version ".tar.xz"))
486 (base32 "1kiag3fcx12qmslln6x6lwvm4f1spymwf71389kdya3vwx7hkmcy"))))
487 (build-system cmake-build-system)
489 `(("kwindowsystem" ,kwindowsystem)
491 ("libqtxdg" ,libqtxdg)
494 ("qtx11extras" ,qtx11extras)))
496 `(("lxqt-build-tools" ,lxqt-build-tools)
497 ("qttools" ,qttools)))
499 '(#:tests? #f ; no test target
501 (modify-phases %standard-phases
502 (add-after 'unpack 'patch-source
504 (substitute* '("autostart/CMakeLists.txt")
505 (("DESTINATION \"\\$\\{LXQT_ETC_XDG_DIR\\}")
506 "DESTINATION \"etc/xdg"))
508 (add-after 'unpack 'patch-translations-dir
509 (lambda* (#:key outputs #:allow-other-keys)
510 (substitute* '("config/CMakeLists.txt"
511 "src/CMakeLists.txt")
512 (("\\$\\{LXQT_TRANSLATIONS_DIR\\}")
513 (string-append (assoc-ref outputs "out")
514 "/share/lxqt/translations")))
516 (home-page "https://lxqt.org/")
517 (synopsis "The LXQt notification daemon")
518 (description "lxqt-notificationd is LXQt's implementation of a daemon
519 according to the Desktop Notifications Specification.")
520 (license license:lgpl2.1+)))
522 (define-public lxqt-openssh-askpass
524 (name "lxqt-openssh-askpass")
529 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
530 version "/" name "-" version ".tar.xz"))
532 (base32 "1fvbgjidpifn420avh8n1gym49vcz6zgayz7xygg1x93s4awy1cs"))))
533 (build-system cmake-build-system)
535 `(("kwindowsystem" ,kwindowsystem)
537 ("libqtxdg" ,libqtxdg)
540 ("qtx11extras" ,qtx11extras)))
542 `(("lxqt-build-tools" ,lxqt-build-tools)
543 ("qttools" ,qttools)))
545 '(#:tests? #f ; no tests
547 (modify-phases %standard-phases
548 (add-after 'unpack 'patch-translations-dir
549 (lambda* (#:key outputs #:allow-other-keys)
550 (substitute* "CMakeLists.txt"
551 (("\\$\\{LXQT_TRANSLATIONS_DIR\\}")
552 (string-append (assoc-ref outputs "out")
553 "/share/lxqt/translations")))
555 (home-page "https://lxqt.org/")
556 (synopsis "GUI to query passwords on behalf of SSH agents")
557 (description "lxqt-openssh-askpass is a GUI to query credentials on behalf
559 (license license:lgpl2.1+)))
561 (define-public lxqt-panel
568 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
569 version "/" name "-" version ".tar.xz"))
571 (base32 "1r3wx0v3jm7j41h7gxr49izc9xa1afvrzq4wcdm0qbj98qa1rgpq"))))
572 (build-system cmake-build-system)
574 `(("alsa-lib" ,alsa-lib)
575 ("kguiaddons" ,kguiaddons)
576 ("libdbusmenu-qt" ,libdbusmenu-qt)
578 ("libqtxdg" ,libqtxdg)
579 ("libstatgrab" ,libstatgrab)
580 ("libsysstat" ,libsysstat)
581 ("libxcomposite" ,libxcomposite)
582 ("libxdamage" ,libxdamage)
583 ("libxkbcommon" ,libxkbcommon)
584 ("libxrender" ,libxrender)
585 ("lm-sensors" ,lm-sensors "lib")
586 ("lxqt-globalkeys" ,lxqt-globalkeys)
588 ("pulseaudio" ,pulseaudio)
591 ("qtx11extras" ,qtx11extras)
593 ("xcb-util" ,xcb-util)))
595 `(("pkg-config" ,pkg-config)
596 ("lxqt-build-tools" ,lxqt-build-tools)
597 ("qttools" ,qttools)))
599 ;; Propagating KWINDOWSYSTEM so that the list of opened applications
600 ;; shows up in lxqt-panel's taskbar plugin.
601 `(("kwindowsystem" ,kwindowsystem)))
603 '(#:tests? #f ; no tests
605 (modify-phases %standard-phases
606 (add-after 'unpack 'patch-source
608 (substitute* '("autostart/CMakeLists.txt"
609 "menu/CMakeLists.txt")
610 (("DESTINATION \"\\$\\{LXQT_ETC_XDG_DIR\\}")
611 "DESTINATION \"etc/xdg"))
613 (add-after 'unpack 'patch-translations-dir
614 (lambda* (#:key outputs #:allow-other-keys)
615 (substitute* '("cmake/BuildPlugin.cmake"
616 "panel/CMakeLists.txt")
617 (("\\$\\{LXQT_TRANSLATIONS_DIR\\}")
618 (string-append (assoc-ref outputs "out")
619 "/share/lxqt/translations")))
621 (home-page "https://lxqt.org/")
622 (synopsis "The LXQt desktop panel")
623 (description "lxqt-panel represents the taskbar of LXQt.")
624 (license license:lgpl2.1+)))
626 (define-public lxqt-policykit
628 (name "lxqt-policykit")
633 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
634 version "/" name "-" version ".tar.xz"))
636 (base32 "127rqb0nprybkc41lk0yq0r0dk5pbbw22gvrm4pwag71qh8wpk5i"))))
637 (build-system cmake-build-system)
639 `(("kwindowsystem" ,kwindowsystem)
641 ("libqtxdg" ,libqtxdg)
643 ("polkit-qt" ,polkit-qt)
646 ("qtx11extras" ,qtx11extras)))
648 `(("pkg-config" ,pkg-config)
650 ("lxqt-build-tools" ,lxqt-build-tools)
651 ("qttools" ,qttools)))
653 '(#:tests? #f ; no test target
655 (modify-phases %standard-phases
656 (add-after 'unpack 'patch-source
658 (substitute* '("autostart/CMakeLists.txt")
659 (("DESTINATION \"\\$\\{LXQT_ETC_XDG_DIR\\}")
660 "DESTINATION \"etc/xdg"))
662 (add-after 'unpack 'patch-translations-dir
663 (lambda* (#:key outputs #:allow-other-keys)
664 (substitute* "CMakeLists.txt"
665 (("\\$\\{LXQT_TRANSLATIONS_DIR\\}")
666 (string-append (assoc-ref outputs "out")
667 "/share/lxqt/translations")))
669 (home-page "https://lxqt.org/")
670 (synopsis "The LXQt PolicyKit agent")
671 (description "lxqt-policykit is the polkit authentication agent of
673 (license license:lgpl2.1+)))
675 (define-public lxqt-powermanagement
677 (name "lxqt-powermanagement")
682 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
683 version "/" name "-" version ".tar.xz"))
685 (base32 "06bvgbkbl9p9n8ba5cfsynqgmpb5c8yfnsvp7zqhflj8k9p9msip"))))
686 (build-system cmake-build-system)
688 `(("kidletime" ,kidletime)
689 ("kwindowsystem" ,kwindowsystem)
691 ("libqtxdg" ,libqtxdg)
694 ("qtx11extras" ,qtx11extras)
697 `(("lxqt-build-tools" ,lxqt-build-tools)
698 ("qttools" ,qttools)))
700 '(#:tests? #f ; no tests
702 (modify-phases %standard-phases
703 (add-after 'unpack 'patch-source
705 (substitute* '("autostart/CMakeLists.txt")
706 (("DESTINATION \"\\$\\{LXQT_ETC_XDG_DIR\\}")
707 "DESTINATION \"etc/xdg"))
709 (add-after 'unpack 'patch-translations-dir
710 (lambda* (#:key outputs #:allow-other-keys)
711 (substitute* '("config/CMakeLists.txt"
712 "src/CMakeLists.txt")
713 (("\\$\\{LXQT_TRANSLATIONS_DIR\\}")
714 (string-append (assoc-ref outputs "out")
715 "/share/lxqt/translations")))
717 (home-page "https://lxqt.org/")
718 (synopsis "Power management module for LXQt")
719 (description "lxqt-powermanagement is providing tools to monitor power
720 management events and optionally trigger actions like e. g. shut down a system
721 when laptop batteries are low on power.")
722 (license license:lgpl2.1+)))
724 (define-public lxqt-qtplugin
726 (name "lxqt-qtplugin")
731 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
732 version "/" name "-" version ".tar.xz"))
734 (base32 "18y7xfxwyismcycg70q6r8zrcygz1pdcvg6lqc6ba7azqb9806ds"))))
735 (build-system cmake-build-system)
737 `(("libdbusmenu-qt" ,libdbusmenu-qt)
738 ("libfm-qt" ,libfm-qt)
739 ("libqtxdg" ,libqtxdg)
742 ("qtx11extras" ,qtx11extras)))
744 `(("lxqt-build-tools" ,lxqt-build-tools)
745 ("qttools" ,qttools)))
747 '(#:tests? #f ; no tests
749 (modify-phases %standard-phases
750 (add-after 'unpack 'patch-source
752 (substitute* '("src/CMakeLists.txt")
753 (("DESTINATION \"\\$\\{QT_PLUGINS_DIR\\}")
754 "DESTINATION \"lib/qt5/plugins"))
756 (home-page "https://lxqt.org/")
757 (synopsis "LXQt Qt platform integration plugin")
758 (description "lxqt-qtplugin is providing a library libqtlxqt to integrate
760 (license license:lgpl2.1+)))
762 (define-public lxqt-runner
769 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
770 version "/" name "-" version ".tar.xz"))
772 (base32 "1c687shypivkhjrpzs1jcy5l2i8d7xzm31c4is1xx6x9nbkgm4bm"))))
773 (build-system cmake-build-system)
775 `(("kwindowsystem" ,kwindowsystem)
777 ("libqtxdg" ,libqtxdg)
778 ("lxqt-globalkeys" ,lxqt-globalkeys)
779 ("muparser" ,muparser)
783 ("qtx11extras" ,qtx11extras)))
785 `(("pkg-config" ,pkg-config)
787 ("lxqt-build-tools" ,lxqt-build-tools)))
789 '(#:tests? #f ; no tests
791 (modify-phases %standard-phases
792 (add-after 'unpack 'patch-source
794 (substitute* '("autostart/CMakeLists.txt")
795 (("DESTINATION \"\\$\\{LXQT_ETC_XDG_DIR\\}")
796 "DESTINATION \"etc/xdg"))
798 (add-after 'unpack 'patch-translations-dir
799 (lambda* (#:key outputs #:allow-other-keys)
800 (substitute* "CMakeLists.txt"
801 (("\\$\\{LXQT_TRANSLATIONS_DIR\\}")
802 (string-append (assoc-ref outputs "out")
803 "/share/lxqt/translations")))
805 (home-page "https://lxqt.org/")
806 (synopsis "Tool used to launch programs quickly by typing their names")
807 (description "lxqt-runner provides a GUI that comes up on the desktop and
808 allows for launching applications or shutting down the system.")
809 (license license:lgpl2.1+)))
811 (define-public lxqt-session
813 (name "lxqt-session")
818 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
819 version "/" name "-" version ".tar.xz"))
821 (base32 "11i2vimv3336dvvxb6y5csdybwjncr7cq3kwlj52vkpisnxslvgy"))))
822 (build-system cmake-build-system)
825 ("kwindowsystem" ,kwindowsystem)
827 ("libqtxdg" ,libqtxdg)
830 ("qtx11extras" ,qtx11extras)
831 ("xdg-user-dirs" ,xdg-user-dirs)))
833 `(("pkg-config" ,pkg-config)
834 ("lxqt-build-tools" ,lxqt-build-tools)
835 ("qttools" ,qttools)))
839 (modify-phases %standard-phases
840 (add-after 'unpack 'patch-source
842 (substitute* '("autostart/CMakeLists.txt"
843 "config/CMakeLists.txt")
844 (("DESTINATION \"\\$\\{LXQT_ETC_XDG_DIR\\}")
845 "DESTINATION \"etc/xdg"))
847 ;; add write permission to lxqt-rc.xml file which is stored as read-only in store
848 (add-after 'unpack 'patch-openbox-permission
850 (substitute* "startlxqt.in"
851 (("cp \"\\$LXQT_DEFAULT_OPENBOX_CONFIG\" \"\\$XDG_CONFIG_HOME/openbox\"")
852 (string-append "cp \"$LXQT_DEFAULT_OPENBOX_CONFIG\" \"$XDG_CONFIG_HOME/openbox\"\n"
853 " # fix openbox permission issue\n"
854 " chmod u+w \"$XDG_CONFIG_HOME/openbox\"/*")))
856 (add-after 'unpack 'patch-translations-dir
857 (lambda* (#:key outputs #:allow-other-keys)
858 (substitute* '("lxqt-config-session/CMakeLists.txt"
859 "lxqt-leave/CMakeLists.txt"
860 "lxqt-session/CMakeLists.txt")
861 (("\\$\\{LXQT_TRANSLATIONS_DIR\\}")
862 (string-append (assoc-ref outputs "out")
863 "/share/lxqt/translations")))
865 (home-page "https://lxqt.org/")
866 (synopsis "Session manager for LXQt")
867 (description "lxqt-session provides the standard session manager
868 for the LXQt desktop environment.")
869 (license license:lgpl2.1+)))
871 (define-public lxqt-sudo
878 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
879 version "/" name "-" version ".tar.xz"))
881 (base32 "0mbygp2kkppwk7sxvpnwavdwrx88mh7ldcg6xm3zw1ndp29danay"))))
882 (build-system cmake-build-system)
884 `(("kwindowsystem" ,kwindowsystem)
886 ("libqtxdg" ,libqtxdg)
889 ("qtx11extras" ,qtx11extras)
892 `(("pkg-config" ,pkg-config)
894 ("lxqt-build-tools" ,lxqt-build-tools)))
896 '(#:tests? #f ; no tests
898 (modify-phases %standard-phases
899 (add-after 'unpack 'patch-translations-dir
900 (lambda* (#:key outputs #:allow-other-keys)
901 (substitute* "CMakeLists.txt"
902 (("\\$\\{LXQT_TRANSLATIONS_DIR\\}")
903 (string-append (assoc-ref outputs "out")
904 "/share/lxqt/translations")))
906 (home-page "https://lxqt.org/")
907 (synopsis "GUI frontend for sudo/su")
908 (description "lxqt-sudo is a graphical front-end of commands sudo and su
909 respectively. As such it enables regular users to launch applications with
910 permissions of other users including root.")
911 (license license:lgpl2.1+)))
913 (define-public lxqt-themes
920 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
921 version "/" name "-" version ".tar.xz"))
923 (base32 "0p7svdpp0z44hvgrp2aip6hym0gdhbanyxsz6iz8sjnn28c995ia"))))
924 (build-system cmake-build-system)
926 `(("lxqt-build-tools" ,lxqt-build-tools)))
928 `(#:tests? #f ; no tests
930 (modify-phases %standard-phases
931 (add-after 'unpack 'patch-source
933 (substitute* '("CMakeLists.txt")
934 (("DESTINATION \"\\$\\{LXQT_GRAPHICS_DIR\\}")
935 "DESTINATION \"share/lxqt/graphics"))
936 (substitute* '("themes/CMakeLists.txt")
937 (("DESTINATION \"\\$\\{LXQT_SHARE_DIR\\}")
938 "DESTINATION \"share/lxqt"))
940 (home-page "https://lxqt.org/")
941 (synopsis "Themes, graphics and icons for LXQt")
942 (description "This package comprises a number of graphic files and themes
944 ;; The whole package is released under LGPL 2.1+, while the LXQt logo is
945 ;; licensed under CC-BY-SA 3.0.
946 (license license:lgpl2.1+)))
951 (define-public libfm-qt
958 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
959 version "/" name "-" version ".tar.xz"))
961 (base32 "06p3wqpc574v9f94wkq9hqmbbvb9q8phfpq301z55c5r939f4hrp"))))
962 (build-system cmake-build-system)
964 '(#:tests? #f)) ; no tests
970 ("menu-cache" ,menu-cache)
973 ("qtx11extras" ,qtx11extras)))
975 `(("pkg-config" ,pkg-config)
976 ("lxqt-build-tools" ,lxqt-build-tools)
977 ("qttools" ,qttools)))
978 (home-page "https://lxqt.org/")
979 (synopsis "Qt binding for libfm")
980 (description "libfm-qt is the Qt port of libfm, a library providing
981 components to build desktop file managers which belongs to LXDE.")
982 (license license:lgpl2.1+)))
984 (define-public pcmanfm-qt
991 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
992 version "/" name "-" version ".tar.xz"))
994 (base32 "0x3c25inlxll965xszx37mnl5gp3smm2h7x04f67z0qlh3vsbrjq"))))
995 (build-system cmake-build-system)
997 `(("glib:bin" ,glib "bin")
998 ("libfm-qt" ,libfm-qt)
1000 ("qtx11extras" ,qtx11extras)))
1002 `(("pkg-config" ,pkg-config)
1003 ("qttools" ,qttools)
1004 ("lxqt-build-tools" ,lxqt-build-tools)))
1006 '(#:tests? #f ; no tests
1008 (modify-phases %standard-phases
1009 (add-after 'unpack 'patch-source
1011 (substitute* '("autostart/CMakeLists.txt")
1012 (("DESTINATION \"\\$\\{LXQT_ETC_XDG_DIR\\}")
1013 "DESTINATION \"etc/xdg"))
1015 (add-after 'install 'wrap-glib
1016 (lambda* (#:key outputs inputs #:allow-other-keys)
1017 (let* ((out (assoc-ref outputs "out"))
1018 (glib (assoc-ref inputs "glib:bin"))
1019 (gio-exe-path (string-append glib "/bin/gio-launch-desktop")))
1020 (if (file-exists? gio-exe-path)
1021 (wrap-program (string-append out "/bin/pcmanfm-qt")
1022 `("GIO_LAUNCH_DESKTOP" = (,gio-exe-path)))
1023 (error "could not find gio-launch-desktop"))
1025 (home-page "https://lxqt.org/")
1026 (synopsis "File manager and desktop icon manager")
1027 (description "PCManFM-Qt is the Qt port of PCManFM, the file manager of
1029 (license license:gpl2+)))
1034 (define-public compton-conf
1036 (name "compton-conf")
1041 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
1042 version "/" name "-" version ".tar.xz"))
1044 (base32 "11n8k59jd0q2x66cispc9dpk139mp6j99hq1yjccxvh21vhc7mbc"))))
1045 (build-system cmake-build-system)
1047 `(("libconfig" ,libconfig)
1048 ("qtbase" ,qtbase)))
1050 `(("lxqt-build-tools" ,lxqt-build-tools)
1051 ("pkg-config" ,pkg-config)
1052 ("qttools" ,qttools)))
1054 '(#:tests? #f ; no tests
1056 (modify-phases %standard-phases
1057 (add-after 'unpack 'patch-source
1059 (substitute* '("autostart/CMakeLists.txt")
1060 (("DESTINATION \"\\$\\{LXQT_ETC_XDG_DIR\\}")
1061 "DESTINATION \"etc/xdg"))
1063 (home-page "https://lxqt.org/")
1064 (synopsis "GUI configuration tool for compton X composite manager")
1065 (description "@code{compton-conf} is a configuration tool for X composite
1067 (license license:lgpl2.1+)))
1069 (define-public lximage-qt
1076 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
1077 version "/" name "-" version ".tar.xz"))
1079 (base32 "0iiq55rm4z2jp19q1pbd2whifwvxg052q324vrwp4p7nz0wh04za"))))
1080 (build-system cmake-build-system)
1082 `(("libexif" ,libexif)
1083 ("libfm-qt" ,libfm-qt)
1086 ("qtx11extras" ,qtx11extras)))
1088 `(("pkg-config" ,pkg-config)
1089 ("lxqt-build-tools" ,lxqt-build-tools)
1090 ("qttools" ,qttools)))
1092 '(#:tests? #f)) ; no tests
1093 (home-page "https://lxqt.org/")
1094 (synopsis "The image viewer and screenshot tool for lxqt")
1095 (description "LXImage-Qt is the Qt port of LXImage, a simple and fast
1097 (license license:gpl2+)))
1099 (define-public obconf-qt
1106 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
1107 version "/" name "-" version ".tar.xz"))
1109 (base32 "1kzb7364150b60qd3wcgnw78b9ia5k3b16kq8w3p1y7pg6pddy8m"))))
1110 (build-system cmake-build-system)
1112 `(("imlib2" ,imlib2)
1114 ("librsvg" ,librsvg)
1116 ("libxml2" ,libxml2)
1117 ("openbox" ,openbox)
1121 ("qtx11extras" ,qtx11extras)))
1123 `(("lxqt-build-tools" ,lxqt-build-tools)
1124 ("pkg-config" ,pkg-config)
1125 ("qttools" ,qttools)))
1127 '(#:tests? #f)) ; no tests
1128 (home-page "https://lxqt.org/")
1129 (synopsis "Openbox configuration tool")
1130 (description "ObConf-Qt is a Qt port of ObConf, a configuration editor for
1131 window manager OpenBox.")
1132 (license license:gpl2+)))
1134 (define-public pavucontrol-qt
1136 (name "pavucontrol-qt")
1141 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
1142 version "/" name "-" version ".tar.xz"))
1144 (base32 "18mw5r8grfrf95vxjbqrr790kl5l59qdqcmlxmwa6rwbfgywj1fq"))))
1145 (build-system cmake-build-system)
1149 ("pulseaudio" ,pulseaudio)
1151 ("qtx11extras" ,qtx11extras)))
1153 `(("pkg-config" ,pkg-config)
1154 ("lxqt-build-tools" ,lxqt-build-tools)
1155 ("qttools" ,qttools)))
1157 '(#:tests? #f)) ; no tests
1158 (home-page "https://lxqt.org/")
1159 (synopsis "Pulseaudio mixer in Qt")
1160 (description "@code{pavucontrol-qt} is the Qt port of volume control
1161 @code{pavucontrol} of sound server @code{PulseAudio}.")
1162 (license license:gpl2+)))
1171 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
1172 version "/" name "-" version ".tar.xz"))
1174 (base32 "0ysnh918n9wz2vgjvyix32kx2j0v4lskjacgcychrpb8sch2dbsi"))))
1175 (build-system cmake-build-system)
1177 `(("libxrender" ,libxrender)
1179 ("qtx11extras" ,qtx11extras)))
1181 `(("lxqt-build-tools" ,lxqt-build-tools)
1182 ("qttools" ,qttools)))
1184 '(#:tests? #f)) ; no tests
1185 (home-page "https://lxqt.org/")
1186 (synopsis "Qt-based visual process status monitor")
1187 (description "@code{qps} is a monitor that displays the status of the
1188 processes currently in existence, much like code{top} or code{ps}.")
1189 (license license:gpl2+)))
1191 (define-public qtermwidget
1193 (name "qtermwidget")
1198 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
1199 version "/" name "-" version ".tar.xz"))
1201 (base32 "0v1vvi8vf9y8nv8y0gzffaqji53s75ab5jypksih0ndcws8ryww4"))))
1202 (build-system cmake-build-system)
1204 `(("qtbase" ,qtbase)
1205 ("utf8proc" ,utf8proc)))
1207 `(("lxqt-build-tools" ,lxqt-build-tools)
1208 ("qttools" ,qttools)))
1210 '(#:tests? #f)) ; no tests
1211 (home-page "https://lxqt.org/")
1212 (synopsis "The terminal widget for QTerminal")
1213 (description "QTermWidget is a terminal emulator widget for Qt 5.")
1214 (license license:gpl2+)))
1216 (define-public qterminal
1223 (uri (string-append "https://github.com/lxqt/" name "/releases/download/"
1224 version "/" name "-" version ".tar.xz"))
1226 (base32 "0cgyaskyqginmm85d11inbi0mmxrsrnvgyx6g4l4l4iqpphfq670"))))
1227 (build-system cmake-build-system)
1229 `(("qtbase" ,qtbase)
1230 ("qtx11extras" ,qtx11extras)
1231 ("qtermwidget" ,qtermwidget)))
1233 `(("lxqt-build-tools" ,lxqt-build-tools)
1234 ("qttools" ,qttools)))
1236 '(#:tests? #f)) ; no tests
1237 (home-page "https://lxqt.org/")
1238 (synopsis "Lightweight Qt-based terminal emulator")
1239 (description "QTerminal is a lightweight Qt terminal emulator based on
1241 (license license:gpl2+)))
1243 (define-public screengrab
1250 (uri (string-append "https://github.com/lxqt/screengrab/releases/download/"
1251 version "/screengrab-" version ".tar.xz"))
1253 (base32 "05f81xjlmiykd7iwx5xns5vnynjq4js4x1bk8wd648frrksp44fa"))))
1254 (build-system cmake-build-system)
1256 `(("kwindowsystem" ,kwindowsystem)
1257 ("libqtxdg" ,libqtxdg)
1260 ("qtx11extras" ,qtx11extras)))
1262 `(("pkg-config" ,pkg-config)
1263 ("qttools" ,qttools)))
1265 '(#:tests? #f)) ; no tests
1266 (home-page "https://lxqt.org/")
1267 (synopsis "Crossplatform tool for fast making screenshots")
1268 (description "ScreenGrab is a program for fast creating screenshots, and
1269 easily publishing them on internet image hosting services.")
1270 (license license:gpl2+)))
1273 (define-public lxqt-archiver
1275 (name "lxqt-archiver")
1281 (url (string-append "https://github.com/lxqt/" name ".git"))
1283 (file-name (git-file-name name version))
1285 (base32 "09rw774vxj96wcpxxncz6nr9bmw7l4l0kwylmz1saq6rpa2yvn2i"))))
1286 (build-system cmake-build-system)
1289 ("json-glib" ,json-glib)
1290 ("libfm-qt" ,libfm-qt)
1292 ("qtx11extras" ,qtx11extras)))
1294 `(("pkg-config" ,pkg-config)
1295 ("lxqt-build-tools" ,lxqt-build-tools)
1296 ("qttools" ,qttools)))
1299 (home-page "https://lxqt.org/")
1300 (synopsis "Simple & lightweight desktop-agnostic Qt file archiver")
1302 "This package provides a Qt graphical interface to archiving programs
1303 like @command{tar} and @command{zip}.")
1304 (license license:gpl2+)))
1306 (define-public lxqt-connman-applet
1307 ;; since the main developers didn't release any version yet, their
1308 ;; latest commit on `master` branch at the moment used for this version.
1309 (let ((commit "3db374eebd8d851f68a50fc5d1ef5fa9478c275e")
1312 (name "lxqt-connman-applet")
1313 (version (git-version "0.14.1" revision commit))
1318 (url (string-append "https://github.com/lxqt/" name ".git"))
1320 (file-name (git-file-name name version))
1321 (sha256 (base32 "1brkyzjmpa7hiv8p8rvmkcgagchh2zn71ry4pjiplga05as3jc11"))))
1322 (build-system cmake-build-system)
1324 `(("kwindowsystem" ,kwindowsystem)
1327 ("liblxqt" ,liblxqt)
1328 ("qtx11extras" ,qtx11extras)
1329 ("libqtxdg" ,libqtxdg)))
1331 `(("lxqt-build-tools" ,lxqt-build-tools)
1332 ("qtlinguist" ,qttools)))
1334 `(#:tests? #f ; no tests
1336 (modify-phases %standard-phases
1337 (add-after 'unpack 'patch-translations-dir
1338 (lambda* (#:key outputs #:allow-other-keys)
1339 (substitute* "CMakeLists.txt"
1340 (("\\$\\{LXQT_TRANSLATIONS_DIR\\}")
1341 (string-append (assoc-ref outputs "out")
1342 "/share/lxqt/translations"))
1343 (("\\$\\{LXQT_ETC_XDG_DIR\\}") "etc/xdg"))
1345 (home-page "https://github.com/lxqt/lxqt-connman-applet")
1346 (synopsis "System-tray applet for connman")
1347 (description "This package provides a Qt-based system-tray applet for
1348 the network management tool Connman, originally developed for the LXQT
1350 (license license:lgpl2.1+))))
1352 ;; The LXQt Desktop Environment
1357 (version (package-version lxqt-session))
1359 (build-system trivial-build-system)
1360 (arguments '(#:builder (begin (mkdir %output) #t)))
1363 ("desktop-file-utils" ,desktop-file-utils)
1364 ("hicolor-icon-theme" ,hicolor-icon-theme)
1365 ("xdg-user-dirs" ,xdg-user-dirs)
1366 ("xdg-utils" ,xdg-utils)
1368 ;; TODO: qtsvg is needed for lxqt apps to display icons. Maybe it
1369 ;; should be added to their propagated-inputs?
1372 ("lxqt-about" ,lxqt-about)
1373 ("lxqt-admin" ,lxqt-admin)
1374 ("lxqt-config" ,lxqt-config)
1375 ("lxqt-notificationd" ,lxqt-notificationd)
1376 ("lxqt-openssh-askpass" ,lxqt-openssh-askpass)
1377 ("lxqt-panel" ,lxqt-panel)
1378 ("lxqt-policykit" ,lxqt-policykit)
1379 ("lxqt-powermanagement" ,lxqt-powermanagement)
1380 ("lxqt-qtplugin" ,lxqt-qtplugin)
1381 ("lxqt-runner" ,lxqt-runner)
1382 ("lxqt-session" ,lxqt-session)
1383 ("lxqt-sudo" ,lxqt-sudo)
1384 ("lxqt-themes" ,lxqt-themes)
1385 ("pcmanfm-qt" ,pcmanfm-qt)
1387 ("compton" ,compton)
1388 ("compton-conf" ,compton-conf)
1389 ("font-dejavu" ,font-dejavu)
1390 ("lximage-qt" ,lximage-qt)
1391 ("obconf-qt" ,obconf-qt)
1392 ("openbox" ,openbox)
1393 ("oxygen-icons" ,oxygen-icons)
1394 ("pavucontrol-qt" ,pavucontrol-qt)
1396 ("qterminal" ,qterminal)))
1397 (synopsis "The Lightweight Qt Desktop Environment")
1398 (description "LXQt is a lightweight Qt desktop environment.")
1399 (home-page "https://lxqt.org/")
1400 (license license:gpl2+)))