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