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