projects/guix·blob java-team · refs

1184 lines · 40.7 KiB

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