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