gnu: igt-gpu-tools: Don't use NAME in source URI.
[jackhill/guix/guix.git] / gnu / packages / lxde.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
3 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
4 ;;; Copyright © 2017 Nils Gillmann <ng0@n0.is>
5 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
6 ;;; Copyright © 2017 Brendan Tildesley <brendan.tildesley@openmailbox.org>
7 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
8 ;;; Copyright © 2018 Ison111 <ison111@protonmail.com>
9 ;;; Copyright © 2018, 2019 Ludovic Courtès <ludo@gnu.org>
10 ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
11 ;;;
12 ;;; This file is part of GNU Guix.
13 ;;;
14 ;;; GNU Guix is free software; you can redistribute it and/or modify it
15 ;;; under the terms of the GNU General Public License as published by
16 ;;; the Free Software Foundation; either version 3 of the License, or (at
17 ;;; your option) any later version.
18 ;;;
19 ;;; GNU Guix is distributed in the hope that it will be useful, but
20 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
21 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 ;;; GNU General Public License for more details.
23 ;;;
24 ;;; You should have received a copy of the GNU General Public License
25 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
26
27 (define-module (gnu packages lxde)
28 #:use-module (gnu packages)
29 #:use-module (gnu packages autotools)
30 #:use-module (gnu packages bash)
31 #:use-module (gnu packages docbook)
32 #:use-module (gnu packages freedesktop)
33 #:use-module (gnu packages gettext)
34 #:use-module (gnu packages glib)
35 #:use-module (gnu packages gnome)
36 #:use-module (gnu packages gtk)
37 #:use-module (gnu packages image-viewers)
38 #:use-module (gnu packages linux)
39 #:use-module (gnu packages lsof)
40 #:use-module (gnu packages openbox)
41 #:use-module (gnu packages pkg-config)
42 #:use-module (gnu packages polkit)
43 #:use-module (gnu packages text-editors)
44 #:use-module (gnu packages video)
45 #:use-module (gnu packages wm)
46 #:use-module (gnu packages xml)
47 #:use-module (gnu packages xorg)
48 #:use-module (guix build-system gnu)
49 #:use-module (guix build-system trivial)
50 #:use-module (guix download)
51 #:use-module ((guix licenses) #:prefix license:)
52 #:use-module (guix packages)
53 #:use-module (guix utils))
54
55 (define-public libfm
56 (package
57 (name "libfm")
58 (version "1.3.0.2")
59 (source (origin
60 (method url-fetch)
61 (uri (string-append "mirror://sourceforge/pcmanfm/"
62 "PCManFM%20%2B%20Libfm%20%28tarball%20release"
63 "%29/LibFM/" name "-" version ".tar.xz"))
64 (sha256
65 (base32
66 "0wkwbi1nyvqza3r1dhrq846axiiq0fy0dqgngnagh76fjrwnzl0q"))))
67 (build-system gnu-build-system)
68 (inputs `(("glib" ,glib)
69 ("gtk+" ,gtk+-2)))
70 (native-inputs `(("intltool" ,intltool)
71 ("glib" ,glib "bin") ; for gtester
72 ("libtool" ,libtool)
73 ("menu-cache" ,menu-cache)
74 ("pkg-config" ,pkg-config)
75 ("vala" ,vala)))
76 (synopsis "File management support (core library)")
77 (description "LibFM provides file management functions built on top of
78 Glib/GIO giving a higher-level API.")
79 (home-page "https://lxde.org")
80 (license license:gpl2+)))
81
82 (define-public libfm-extra
83 (package (inherit libfm)
84 (name "libfm-extra")
85 (arguments '(#:configure-flags '("--with-extra-only")))
86 (inputs `(("glib" ,glib)))
87 (native-inputs `(("intltool" ,intltool)
88 ("libtool" ,libtool)
89 ("pkg-config" ,pkg-config)))
90 (synopsis "File management support (extra library)")
91 (description "This package contains standalone library which extends the
92 libFM file management library.")))
93
94 (define-public lxappearance
95 (package
96 (name "lxappearance")
97 (version "0.6.2")
98 (source (origin
99 (method url-fetch)
100 (uri (string-append "mirror://sourceforge/lxde/"
101 "LXAppearance/" name "-" version ".tar.xz"))
102 (sha256
103 (base32
104 "07r0xbi6504zjnbpan7zrn7gi4j0kbsqqfpj8v2x94gr05p16qj4"))))
105 (build-system gnu-build-system)
106 (inputs `(("gtk+" ,gtk+-2)))
107 (native-inputs `(("intltool" ,intltool)
108 ("pkg-config" ,pkg-config)))
109 (synopsis "LXDE GTK+ theme switcher")
110 (description "LXAppearance is a desktop-independent GTK+ theme switcher
111 able to change themes, icons, and fonts used by GTK+ applications.")
112 (home-page "https://lxde.org")
113 (license license:gpl2+)))
114
115 (define-public lxrandr
116 (package
117 (name "lxrandr")
118 (version "0.3.1")
119 (source (origin
120 (method url-fetch)
121 (uri (string-append "mirror://sourceforge/lxde/LXRandR"
122 "%20%28monitor%20config%20tool%29/LXRandR%20"
123 (version-major+minor version) ".x/"
124 name "-" version ".tar.xz"))
125 (sha256
126 (base32
127 "0khqi42paqg82jllb2kza4arf3fafzgq90fhyr3rw3d9hn23763d"))))
128 (build-system gnu-build-system)
129 (inputs `(("gtk+" ,gtk+-2)))
130 (native-inputs `(("intltool" ,intltool)
131 ("pkg-config" ,pkg-config)))
132 (synopsis "LXDE monitor configuration tool")
133 (description "LXRandR is a very basic monitor configuration tool. It
134 relies on the X11 resize-and-rotate (RandR) extension but doesn't aim to be a
135 full frontend of it. LXRandR only gives you some easy and quick options which
136 are intuitive. It's suitable for laptop users who frequently uses projectors
137 or external monitor.")
138 (home-page "https://lxde.org")
139 (license license:gpl2+)))
140
141 (define-public lxtask
142 (package
143 (name "lxtask")
144 (version "0.1.7")
145 (source (origin
146 (method url-fetch)
147 (uri (string-append "mirror://sourceforge/lxde/LXTask"
148 "%20%28task%20manager%29/LXTask%20"
149 (version-major+minor version) ".x/"
150 name "-" version ".tar.xz"))
151 (sha256
152 (base32
153 "1zihhvzsg9bl6k0gv7jwx6cgsi3rmcagvnmshc1h0mjq2immmdph"))))
154 (build-system gnu-build-system)
155 (inputs `(("gtk+" ,gtk+-2)))
156 (native-inputs `(("intltool" ,intltool)
157 ("pkg-config" ,pkg-config)))
158 (synopsis "LXDE task manager")
159 (description "LXTask is a lightweight task manager derived from Xfce task
160 manager with all dependencies on Xfce removed. LXTask is based on the GTK+
161 toolkit. It allows users to monitor and control of running processes.")
162 (home-page "https://lxde.org")
163 (license license:gpl2+)))
164
165 (define-public lxterminal
166 (package
167 (name "lxterminal")
168 (version "0.3.2")
169 (source (origin
170 (method url-fetch)
171 (uri (string-append "mirror://sourceforge/lxde/LXTerminal"
172 "%20%28terminal%20emulator%29/LXTerminal%20"
173 version "/" name "-" version ".tar.xz"))
174 (sha256
175 (base32
176 "1124pghrhnx6q4391ri8nvi6bsmvbj1dx81an08mird8jf2b2rii"))))
177 (build-system gnu-build-system)
178 (inputs `(("gtk+" ,gtk+-2)
179 ("vte" ,vte/gtk+-2)))
180 (native-inputs `(("intltool" ,intltool)
181 ("pkg-config" ,pkg-config)))
182 (synopsis "LXDE terminal emulator")
183 (description "LXTerminal is a VTE-based terminal emulator. It supports
184 multiple tabs and has only minimal dependencies thus being completely
185 desktop-independent. In order to reduce memory usage and increase the
186 performance, all instances of the terminal are sharing a single process.")
187 (home-page "https://lxde.org")
188 (license license:gpl2+)))
189
190 (define-public menu-cache
191 (package
192 (name "menu-cache")
193 (version "1.0.2")
194 (source (origin
195 (method url-fetch)
196 (uri (string-append "mirror://sourceforge/lxde/" name "/"
197 (version-major+minor version) "/"
198 name "-" version ".tar.xz"))
199 (sha256
200 (base32
201 "1m8j40npykfcfqs43kc0fmksal2jfmfi8lnb3mq3xy1lvvrfv0vg"))))
202 (build-system gnu-build-system)
203 (inputs `(("glib" ,glib)
204 ("libfm" ,libfm-extra)))
205 (native-inputs `(("pkg-config" ,pkg-config)))
206 (synopsis "LXDE implementation of the freedesktop menu's cache")
207 (description "Menu-cache is a library creating and utilizing caches to
208 speed up the access to freedesktop.org defined application menus.")
209 (home-page "https://lxde.org")
210 (license license:lgpl2.1+)))
211
212 (define-public pcmanfm
213 (package
214 (name "pcmanfm")
215 (version "1.3.0")
216 (source (origin
217 (method url-fetch)
218 (uri (string-append "mirror://sourceforge/" name "/"
219 "PCManFM%20%2B%20Libfm%20%28tarball%20release"
220 "%29/PCManFM/" name "-" version ".tar.xz"))
221 (sha256
222 (base32
223 "1ywgfyklms5hqkapsbjps4kyx20ac0d1qk16ww74yagkyfdkwsas"))))
224 (build-system gnu-build-system)
225 (inputs `(("gtk+" ,gtk+-2)
226 ("gvfs" ,gvfs) ; for trash and mount support
227 ("libfm" ,libfm)
228 ("libx11" ,libx11)))
229 (native-inputs `(("intltool" ,intltool)
230 ("libtool" ,libtool)
231 ("pkg-config" ,pkg-config)))
232 (propagated-inputs
233 `(("lxmenu-data" ,lxmenu-data))) ; for "Open With..." application list
234 (synopsis "LXDE file manager")
235 (description "PCMan is a lightweight GTK+ based file manager, compliant
236 with freedesktop.org standard.")
237 (home-page "https://lxde.org")
238 (license license:gpl2+)))
239
240 (define-public spacefm
241 ;; SpaceFM is based on PCManFM.
242 (package
243 (name "spacefm")
244 (version "1.0.6")
245 (source (origin
246 (method url-fetch)
247 (uri (string-append
248 "https://github.com/IgnorantGuru/spacefm/archive/"
249 version ".tar.gz"))
250 (sha256
251 (base32
252 "1jg7xfyr7kihjnalxp8wxyb9qjk8hqf5l36rp3s0lvkpmpyakppy"))
253 (modules '((guix build utils)))
254 (snippet
255 '(begin
256 (substitute* "src/main.c"
257 (("#include <sys/types\\.h>" all)
258 ;; Add missing include for 'major' and 'minor' with glibc
259 ;; >= 2.28.
260 (string-append all "\n"
261 "#include <sys/sysmacros.h>\n")))
262 #t))
263 (file-name (string-append name "-" version ".tar.gz"))))
264 (build-system gnu-build-system)
265 (native-inputs `(("pkg-config" ,pkg-config)
266 ("intltool" ,intltool)))
267 (inputs `(("bash" ,bash)
268 ("gtk+" ,gtk+)
269 ("eudev" ,eudev)
270 ("desktop-file-utils" ,desktop-file-utils)
271 ("shared-mime-info" ,shared-mime-info)
272 ("ffmpegthumbnailer" ,ffmpegthumbnailer)
273 ("jmtpfs" ,jmtpfs)
274 ("lsof" ,lsof)
275 ("udisks" ,udisks)))
276 (arguments
277 `(#:configure-flags (list (string-append "--with-bash-path="
278 (assoc-ref %build-inputs "bash")
279 "/bin/bash")
280 (string-append "--sysconfdir="
281 (assoc-ref %outputs "out")
282 "/etc"))))
283 (home-page "http://ignorantguru.github.io/spacefm/")
284 (synopsis "Multi-panel tabbed file manager")
285 (description "SpaceFM is a graphical, multi-panel, tabbed file manager
286 based on PCManFM with built-in virtual file system, udev-based device manager,
287 customizable menu system, and Bash integration.")
288
289 ;; The combination is GPLv3+ but src/exo is under LGPLv3+.
290 (license license:gpl3+)))
291
292 (define-public lxmenu-data
293 (package
294 (name "lxmenu-data")
295 (version "0.1.5")
296 (source
297 (origin
298 (method url-fetch)
299 (uri (string-append "https://downloads.sourceforge.net/lxde/"
300 name "-" version ".tar.xz"))
301 (sha256
302 (base32
303 "1f5sh2dvb3pdnjlcsyzq9543ck2jsqizkx3204cr22zm5s6j3qwz"))))
304 (build-system gnu-build-system)
305 (native-inputs
306 `(("pkg-config" ,pkg-config)
307 ("intltool" ,intltool)))
308 (synopsis "Freedesktop.org desktop menus for LXDE")
309 (description
310 "Lxmenu-data provides files required to build freedesktop.org
311 menu spec-compliant desktop menus for LXDE.")
312 (home-page "https://lxde.org")
313 (license license:lgpl2.1+)))
314
315 (define-public lxde-icon-theme
316 (package
317 (name "lxde-icon-theme")
318 (version "0.5.1")
319 (source
320 (origin
321 (method url-fetch)
322 (uri (string-append "https://downloads.sourceforge.net/lxde/"
323 name "-" version ".tar.xz"))
324 (sha256
325 (base32
326 "0v4i6x86fr2hbx4fb2si7y2qzmj7h6hcjwaifnin18r8kwwvgl73"))))
327 (build-system gnu-build-system)
328 (native-inputs
329 `(("pkg-config" ,pkg-config)))
330 (synopsis "LXDE default icon theme based on nuoveXT2")
331 (description
332 "Lxde-icon-theme provides an default icon theme for LXDE.")
333 (home-page "https://lxde.org")
334 (license license:lgpl3)))
335
336 (define-public lxde-common
337 (package
338 (name "lxde-common")
339 (version "0.99.2")
340 (source
341 (origin
342 (method url-fetch)
343 (uri (string-append "https://downloads.sourceforge.net/lxde/"
344 name "-" version ".tar.xz"))
345 (sha256
346 (base32
347 "0mj84fa3f4ak1jjslrwc2q3ci9zxrxpciggviza9bjb0168brn8w"))))
348 (build-system gnu-build-system)
349 (arguments
350 '(#:phases (modify-phases %standard-phases
351 (add-before 'configure 'set-lxsession
352 (lambda* (#:key inputs #:allow-other-keys)
353 ;; Set the right file name for 'lxsession'.
354 (let ((lxsession (assoc-ref inputs "lxsession")))
355 (substitute* "startlxde.in"
356 (("^exec .*/bin/lxsession")
357 (string-append "exec " lxsession
358 "/bin/lxsession")))
359 #t))))))
360 (native-inputs
361 `(("pkg-config" ,pkg-config)
362 ("intltool" ,intltool)
363 ("lxmenu-data" ,lxmenu-data)
364 ("lxde-icon-theme" ,lxde-icon-theme)))
365 (inputs
366 `(("lxsession" ,lxsession)
367 ;; ("lxlock" ,lxlock) ;for 'lxde-screenlock.desktop'
368 ))
369 (synopsis "Common files of the LXDE Desktop")
370 (description
371 "Lxde-common provides common files of the LXDE Desktop.")
372 (home-page "https://lxde.org")
373 (license license:gpl2+)))
374
375 (define-public lxinput
376 (package
377 (name "lxinput")
378 (version "0.3.5")
379 (source
380 (origin
381 (method url-fetch)
382 (uri (string-append "https://downloads.sourceforge.net/lxde/"
383 name "-" version ".tar.xz"))
384 (sha256
385 (base32
386 "123f3yn4rp1w5b3n5aj3ad9snkxab29qkrs7bcvf5bx4cn57g3sf"))))
387 (build-system gnu-build-system)
388 (inputs
389 `(("gtk+-2" ,gtk+-2)))
390 (native-inputs
391 `(("pkg-config" ,pkg-config)
392 ("intltool" ,intltool)))
393 (synopsis "Tool for mouse and keyboard configuration in LXDE")
394 (description
395 "Lxinput provides a small program to configure keyboard and mouse
396 in LXDE.")
397 (home-page "https://lxde.org")
398 (license license:gpl2+)))
399
400 (define-public lxsession
401 (package
402 (name "lxsession")
403 (version "0.5.3")
404 (source
405 (origin
406 (method url-fetch)
407 (uri (string-append "https://downloads.sourceforge.net/lxde/"
408 name "-" version ".tar.xz"))
409 (patches (search-patches "lxsession-use-gapplication.patch"))
410 (sha256
411 (base32
412 "1a0zmyywwzdh59nc0l94cir18vhp633z4q2xfhn5zx11ajj45gwh"))
413 (modules '((guix build utils)))
414 (snippet
415 ;; Remove C files generated by Vala so we can build from source.
416 '(let* ((c->vala
417 (lambda (file)
418 (string-append (string-drop-right file 2)
419 ".vala")))
420 (generated-c-file?
421 (lambda (file stat)
422 (and (string-suffix? ".c" file)
423 (file-exists? (c->vala file))))))
424 (for-each delete-file
425 (find-files "." generated-c-file?))
426 #t))))
427 (build-system gnu-build-system)
428 (arguments
429 `(#:phases
430 (modify-phases %standard-phases
431 (add-after 'unpack 'rm-stamp
432 (lambda _
433 (for-each delete-file (find-files "." "\\.stamp$"))
434 ;; Force regeneration of configure script.
435 (delete-file "configure")
436 #t)))))
437 (inputs
438 `(("gtk+-2" ,gtk+-2)
439 ("polkit" ,polkit)))
440 (native-inputs
441 `(("pkg-config" ,pkg-config)
442 ("intltool" ,intltool)
443 ("docbook-xsl" ,docbook-xsl)
444 ("vala" ,vala)
445 ("autoconf" ,autoconf)
446 ("automake" ,automake)))
447 (synopsis "Lightweight X11 session manager")
448 (description
449 "Lxsession provides an lightweight X11 session manager.")
450 (home-page "https://lxde.org")
451 (license license:gpl2+)))
452
453 (define-public lxpanel
454 (package
455 (name "lxpanel")
456 (version "0.9.3")
457 (source
458 (origin
459 (method url-fetch)
460 (uri (string-append "https://downloads.sourceforge.net/lxde/"
461 name "-" version ".tar.xz"))
462 (sha256
463 (base32
464 "1ccgv7jgl3y865cpb6w7baaz7468fxncm83bqxlwyni5bwhglb1l"))))
465 (build-system gnu-build-system)
466 (arguments
467 `(#:phases
468 (modify-phases %standard-phases
469 (add-after 'install 'wrap
470 (lambda* (#:key inputs outputs #:allow-other-keys)
471 (let ((out (assoc-ref outputs "out"))
472 (menu (assoc-ref inputs "lxmenu-data")))
473 (wrap-program (string-append out "/bin/lxpanel")
474 `("XDG_DATA_DIRS" ":" prefix
475 (,(string-append menu "/share"))))
476 #t))))))
477 (inputs
478 ;; TODO: libindicator-0.3.0
479 `(("gtk+-2" ,gtk+-2)
480 ("alsa-lib" ,alsa-lib)
481 ("libwnck-2" ,libwnck-2)
482 ("keybinder" ,keybinder)
483 ("libxmu" ,libxmu)
484 ("libxpm" ,libxpm)
485 ("libxml2" ,libxml2)
486 ("cairo" ,cairo)
487 ("libx11" ,libx11)
488 ("wireless-tools" ,wireless-tools)))
489 (native-inputs
490 `(("pkg-config" ,pkg-config)
491 ("intltool" ,intltool)
492 ("docbook-xml" ,docbook-xml)
493 ("gettext-minimal" ,gettext-minimal)))
494 (propagated-inputs
495 `(("lxmenu-data" ,lxmenu-data)
496 ("libfm" ,libfm)
497 ("menu-cache" ,menu-cache)))
498 (synopsis "X11 Desktop panel for LXDE")
499 (description
500 "Lxpanel provides an X11 desktop panel for LXDE.")
501 (home-page "https://lxde.org")
502 (license license:gpl2+)))
503
504 (define-public lxde
505 (package
506 (name "lxde")
507 (version (package-version lxde-common))
508 (source #f)
509 (build-system trivial-build-system)
510 (arguments '(#:builder (begin (mkdir %output) #t)))
511 (propagated-inputs
512 ;; TODO:
513 ;; lxshortcut, lxsession-edit
514 ;; lxappearance-obconf
515 `(("menu-cache" ,menu-cache)
516 ("gpicview" ,gpicview)
517 ("leafpad" ,leafpad)
518 ("lxappearance" ,lxappearance)
519 ("lxde-icon-theme" ,lxde-icon-theme)
520 ("lxde-common" ,lxde-common)
521 ("lxmenu-data" ,lxmenu-data)
522 ("lxpanel" ,lxpanel)
523 ("lxrandr" ,lxrandr)
524 ("lxsession" ,lxsession)
525 ("libfm" ,libfm)
526 ("libfm-extra" ,libfm-extra)
527 ("lxtask" ,lxtask)
528 ("lxterminal" ,lxterminal)
529 ("pcmanfm" ,pcmanfm)
530 ("openbox" ,openbox)
531 ("obconf" ,obconf)))
532 (synopsis "Lightweight X11 Desktop Environment")
533 (description
534 "LXDE, which stands for Lightweight X11 Desktop Environment, is a
535 desktop environment which is lightweight and fast. It is designed to be
536 user friendly and slim, while keeping the resource usage low. LXDE uses
537 less RAM and less CPU while being a feature rich desktop environment. Unlike
538 other tightly integrated desktops LXDE strives to be modular, so each
539 component can be used independently with few dependencies.")
540 (home-page "https://lxde.org")
541 (license license:gpl2+))) ; And others.
542
543 ;;; lxde.scm ends here