gnu: nghttp2: Update to 1.32.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>
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>
889e57f4
ML
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)
d3897349 25 #:use-module (gnu packages)
83365461 26 #:use-module (gnu packages autotools)
d3897349 27 #:use-module (gnu packages docbook)
50042505 28 #:use-module (gnu packages gettext)
889e57f4 29 #:use-module (gnu packages glib)
19dd9983 30 #:use-module (gnu packages gnome)
889e57f4 31 #:use-module (gnu packages gtk)
ed3a9ec5 32 #:use-module (gnu packages image-viewers)
50042505 33 #:use-module (gnu packages linux)
812c1819 34 #:use-module (gnu packages openbox)
889e57f4 35 #:use-module (gnu packages pkg-config)
d3897349 36 #:use-module (gnu packages polkit)
8b1e572d 37 #:use-module (gnu packages text-editors)
50042505 38 #:use-module (gnu packages wm)
39 #:use-module (gnu packages xml)
b3527d5d 40 #:use-module (gnu packages xorg)
889e57f4 41 #:use-module (guix build-system gnu)
812c1819 42 #:use-module (guix build-system trivial)
889e57f4
ML
43 #:use-module (guix download)
44 #:use-module ((guix licenses) #:prefix license:)
6e6b5344
ML
45 #:use-module (guix packages)
46 #:use-module (guix utils))
889e57f4 47
19dd9983 48(define-public libfm
83365461 49 (package
19dd9983 50 (name "libfm")
e17af38f 51 (version "1.3.0.2")
83365461
ML
52 (source (origin
53 (method url-fetch)
0f971a04 54 (uri (string-append "mirror://sourceforge/pcmanfm/"
19dd9983
ML
55 "PCManFM%20%2B%20Libfm%20%28tarball%20release"
56 "%29/LibFM/" name "-" version ".tar.xz"))
83365461
ML
57 (sha256
58 (base32
e17af38f 59 "0wkwbi1nyvqza3r1dhrq846axiiq0fy0dqgngnagh76fjrwnzl0q"))))
83365461 60 (build-system gnu-build-system)
19dd9983
ML
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
71Glib/GIO giving a higher-level API.")
7ea7eb22 72 (home-page "https://lxde.org")
19dd9983
ML
73 (license license:gpl2+)))
74
75(define-public libfm-extra
76 (package (inherit libfm)
77 (name "libfm-extra")
83365461
ML
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)")
19dd9983
ML
84 (description "This package contains standalone library which extends the
85libFM file management library.")))
83365461 86
889e57f4
ML
87(define-public lxappearance
88 (package
89 (name "lxappearance")
2c2a9ef7 90 (version "0.6.2")
889e57f4
ML
91 (source (origin
92 (method url-fetch)
0f971a04 93 (uri (string-append "mirror://sourceforge/lxde/"
889e57f4
ML
94 "LXAppearance/" name "-" version ".tar.xz"))
95 (sha256
96 (base32
2c2a9ef7 97 "07r0xbi6504zjnbpan7zrn7gi4j0kbsqqfpj8v2x94gr05p16qj4"))))
889e57f4
ML
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
104able to change themes, icons, and fonts used by GTK+ applications.")
7ea7eb22 105 (home-page "https://lxde.org")
753dc7d3
ML
106 (license license:gpl2+)))
107
729b44e3
ML
108(define-public lxrandr
109 (package
110 (name "lxrandr")
d7ec759a 111 (version "0.3.1")
729b44e3
ML
112 (source (origin
113 (method url-fetch)
0f971a04 114 (uri (string-append "mirror://sourceforge/lxde/LXRandR"
729b44e3
ML
115 "%20%28monitor%20config%20tool%29/LXRandR%20"
116 (version-major+minor version) ".x/"
117 name "-" version ".tar.xz"))
118 (sha256
119 (base32
d7ec759a 120 "0khqi42paqg82jllb2kza4arf3fafzgq90fhyr3rw3d9hn23763d"))))
729b44e3
ML
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
127relies on the X11 resize-and-rotate (RandR) extension but doesn't aim to be a
128full frontend of it. LXRandR only gives you some easy and quick options which
129are intuitive. It's suitable for laptop users who frequently uses projectors
130or external monitor.")
7ea7eb22 131 (home-page "https://lxde.org")
729b44e3
ML
132 (license license:gpl2+)))
133
6f92ad5a
ML
134(define-public lxtask
135 (package
136 (name "lxtask")
d78c952d 137 (version "0.1.7")
6f92ad5a
ML
138 (source (origin
139 (method url-fetch)
0f971a04 140 (uri (string-append "mirror://sourceforge/lxde/LXTask"
6f92ad5a
ML
141 "%20%28task%20manager%29/LXTask%20"
142 (version-major+minor version) ".x/"
143 name "-" version ".tar.xz"))
144 (sha256
145 (base32
d78c952d 146 "1zihhvzsg9bl6k0gv7jwx6cgsi3rmcagvnmshc1h0mjq2immmdph"))))
6f92ad5a
ML
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
153manager with all dependencies on Xfce removed. LXTask is based on the GTK+
154toolkit. It allows users to monitor and control of running processes.")
7ea7eb22 155 (home-page "https://lxde.org")
6f92ad5a
ML
156 (license license:gpl2+)))
157
753dc7d3
ML
158(define-public lxterminal
159 (package
160 (name "lxterminal")
b87bf3bb 161 (version "0.3.1")
753dc7d3
ML
162 (source (origin
163 (method url-fetch)
0f971a04 164 (uri (string-append "mirror://sourceforge/lxde/LXTerminal"
753dc7d3 165 "%20%28terminal%20emulator%29/LXTerminal%20"
dc29cc77 166 version "/" name "-" version ".tar.xz"))
753dc7d3
ML
167 (sha256
168 (base32
b87bf3bb 169 "0jrc3m0hbxcmcgahwjlm46s2350gh80ggb6a90xy0h6xqa3z73fd"))))
753dc7d3
ML
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
177multiple tabs and has only minimal dependencies thus being completely
178desktop-independent. In order to reduce memory usage and increase the
179performance, all instances of the terminal are sharing a single process.")
7ea7eb22 180 (home-page "https://lxde.org")
889e57f4
ML
181 (license license:gpl2+)))
182
6e6b5344
ML
183(define-public menu-cache
184 (package
185 (name "menu-cache")
bed2e0df 186 (version "1.0.2")
6e6b5344
ML
187 (source (origin
188 (method url-fetch)
0f971a04 189 (uri (string-append "mirror://sourceforge/lxde/" name "/"
6e6b5344
ML
190 (version-major+minor version) "/"
191 name "-" version ".tar.xz"))
192 (sha256
193 (base32
bed2e0df 194 "1m8j40npykfcfqs43kc0fmksal2jfmfi8lnb3mq3xy1lvvrfv0vg"))))
6e6b5344
ML
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
201speed up the access to freedesktop.org defined application menus.")
7ea7eb22 202 (home-page "https://lxde.org")
6e6b5344
ML
203 (license license:lgpl2.1+)))
204
b3527d5d
ML
205(define-public pcmanfm
206 (package
207 (name "pcmanfm")
ca2158bb 208 (version "1.3.0")
b3527d5d
ML
209 (source (origin
210 (method url-fetch)
0f971a04 211 (uri (string-append "mirror://sourceforge/" name "/"
b3527d5d
ML
212 "PCManFM%20%2B%20Libfm%20%28tarball%20release"
213 "%29/PCManFM/" name "-" version ".tar.xz"))
214 (sha256
215 (base32
ca2158bb 216 "1ywgfyklms5hqkapsbjps4kyx20ac0d1qk16ww74yagkyfdkwsas"))))
b3527d5d 217 (build-system gnu-build-system)
b3527d5d 218 (inputs `(("gtk+" ,gtk+-2)
ca2158bb 219 ("gvfs" ,gvfs) ; for trash and mount support
b3527d5d
ML
220 ("libfm" ,libfm)
221 ("libx11" ,libx11)))
222 (native-inputs `(("intltool" ,intltool)
223 ("libtool" ,libtool)
224 ("pkg-config" ,pkg-config)))
0dcad042 225 (propagated-inputs
ca2158bb 226 `(("lxmenu-data" ,lxmenu-data))) ; for "Open With..." application list
b3527d5d
ML
227 (synopsis "LXDE file manager")
228 (description "PCMan is a lightweight GTK+ based file manager, compliant
229with freedesktop.org standard.")
7ea7eb22 230 (home-page "https://lxde.org")
b3527d5d
ML
231 (license license:gpl2+)))
232
7f7d52cc 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
252menu spec-compliant desktop menus for LXDE.")
7ea7eb22 253 (home-page "https://lxde.org")
7f7d52cc 254 (license license:lgpl2.1+)))
255
4dcbed57 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.")
7ea7eb22 274 (home-page "https://lxde.org")
4dcbed57 275 (license license:lgpl3)))
276
169274d5 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)
d5e7d014
LC
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))))))
169274d5 301 (native-inputs
302 `(("pkg-config" ,pkg-config)
303 ("intltool" ,intltool)
304 ("lxmenu-data" ,lxmenu-data)
305 ("lxde-icon-theme" ,lxde-icon-theme)))
d5e7d014
LC
306 (inputs
307 `(("lxsession" ,lxsession)
308 ;; ("lxlock" ,lxlock) ;for 'lxde-screenlock.desktop'
309 ))
169274d5 310 (synopsis "Common files of the LXDE Desktop")
311 (description
312 "Lxde-common provides common files of the LXDE Desktop.")
7ea7eb22 313 (home-page "https://lxde.org")
169274d5 314 (license license:gpl2+)))
315
f3b3af37 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
337in LXDE.")
7ea7eb22 338 (home-page "https://lxde.org")
f3b3af37 339 (license license:gpl2+)))
340
d3897349 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
a4cdcffb
LC
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
6cbee49d
MW
366 (find-files "." generated-c-file?))
367 #t))))
d3897349 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.")
7ea7eb22 391 (home-page "https://lxde.org")
d3897349 392 (license license:gpl2+)))
393
50042505 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.")
7ea7eb22 442 (home-page "https://lxde.org")
50042505 443 (license license:gpl2+)))
444
812c1819 445(define-public lxde
446 (package
447 (name "lxde")
448 (version (package-version lxde-common))
449 (source #f)
450 (build-system trivial-build-system)
e3cfef22 451 (arguments '(#:builder (begin (mkdir %output) #t)))
812c1819 452 (propagated-inputs
453 ;; TODO:
ed3a9ec5 454 ;; lxshortcut, lxsession-edit
812c1819 455 ;; lxappearance-obconf
456 `(("menu-cache" ,menu-cache)
ed3a9ec5 457 ("gpicview" ,gpicview)
8b1e572d 458 ("leafpad" ,leafpad)
812c1819 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
476desktop environment which is lightweight and fast. It is designed to be
477user friendly and slim, while keeping the resource usage low. LXDE uses
478less RAM and less CPU while being a feature rich desktop environment. Unlike
479other tightly integrated desktops LXDE strives to be modular, so each
480component can be used independently with few dependencies.")
481 (home-page "https://lxde.org")
482 (license license:gpl2+))) ; And others.
483
889e57f4 484;;; lxde.scm ends here