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