gnu: Add pulseaudio-qt.
[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>
3c986a7d 4;;; Copyright © 2017 Nikita <nikita@n0.is>
8b1e572d 5;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
dcfa0acd 6;;; Copyright © 2017 Brendan Tildesley <mail@brendan.scot>
3dfb21f0 7;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
3e859090 8;;; Copyright © 2018 ison <ison@airmail.cc>
9a0bc7b5 9;;; Copyright © 2018, 2019 Ludovic Courtès <ludo@gnu.org>
a49b5322 10;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
a436a491 11;;; Copyright © 2019 Meiyo Peng <meiyo@riseup.net>
889e57f4
ML
12;;;
13;;; This file is part of GNU Guix.
14;;;
15;;; GNU Guix is free software; you can redistribute it and/or modify it
16;;; under the terms of the GNU General Public License as published by
17;;; the Free Software Foundation; either version 3 of the License, or (at
18;;; your option) any later version.
19;;;
20;;; GNU Guix is distributed in the hope that it will be useful, but
21;;; WITHOUT ANY WARRANTY; without even the implied warranty of
22;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23;;; GNU General Public License for more details.
24;;;
25;;; You should have received a copy of the GNU General Public License
26;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
27
28(define-module (gnu packages lxde)
d3897349 29 #:use-module (gnu packages)
53e8b852 30 #:use-module (gnu packages admin)
83365461 31 #:use-module (gnu packages autotools)
7ee215de 32 #:use-module (gnu packages base)
d2434b69 33 #:use-module (gnu packages bash)
46b02378 34 #:use-module (gnu packages curl)
bf37b49c 35 #:use-module (gnu packages disk)
d3897349 36 #:use-module (gnu packages docbook)
bf37b49c 37 #:use-module (gnu packages file-systems)
d2434b69 38 #:use-module (gnu packages freedesktop)
50042505 39 #:use-module (gnu packages gettext)
889e57f4 40 #:use-module (gnu packages glib)
19dd9983 41 #:use-module (gnu packages gnome)
889e57f4 42 #:use-module (gnu packages gtk)
ed3a9ec5 43 #:use-module (gnu packages image-viewers)
bf37b49c 44 #:use-module (gnu packages libusb)
50042505 45 #:use-module (gnu packages linux)
d2434b69 46 #:use-module (gnu packages lsof)
812c1819 47 #:use-module (gnu packages openbox)
889e57f4 48 #:use-module (gnu packages pkg-config)
d3897349 49 #:use-module (gnu packages polkit)
8b1e572d 50 #:use-module (gnu packages text-editors)
d2434b69 51 #:use-module (gnu packages video)
bf37b49c 52 #:use-module (gnu packages wget)
50042505 53 #:use-module (gnu packages wm)
bf37b49c 54 #:use-module (gnu packages xdisorg)
50042505 55 #:use-module (gnu packages xml)
b3527d5d 56 #:use-module (gnu packages xorg)
bf37b49c 57 #:use-module (guix build-system glib-or-gtk)
889e57f4 58 #:use-module (guix build-system gnu)
812c1819 59 #:use-module (guix build-system trivial)
889e57f4 60 #:use-module (guix download)
7ee215de 61 #:use-module (guix git-download)
889e57f4 62 #:use-module ((guix licenses) #:prefix license:)
6e6b5344
ML
63 #:use-module (guix packages)
64 #:use-module (guix utils))
889e57f4 65
19dd9983 66(define-public libfm
83365461 67 (package
19dd9983 68 (name "libfm")
d1d8235e 69 (version "1.3.1")
83365461
ML
70 (source (origin
71 (method url-fetch)
0f971a04 72 (uri (string-append "mirror://sourceforge/pcmanfm/"
19dd9983
ML
73 "PCManFM%20%2B%20Libfm%20%28tarball%20release"
74 "%29/LibFM/" name "-" version ".tar.xz"))
83365461
ML
75 (sha256
76 (base32
d1d8235e 77 "1r6gl49xrykldwz8y4h2s7gjarxigg3bbkrj0gphxjj1vr5j9ccn"))))
83365461 78 (build-system gnu-build-system)
19dd9983
ML
79 (inputs `(("glib" ,glib)
80 ("gtk+" ,gtk+-2)))
81 (native-inputs `(("intltool" ,intltool)
82 ("glib" ,glib "bin") ; for gtester
83 ("libtool" ,libtool)
84 ("menu-cache" ,menu-cache)
85 ("pkg-config" ,pkg-config)
86 ("vala" ,vala)))
87 (synopsis "File management support (core library)")
88 (description "LibFM provides file management functions built on top of
89Glib/GIO giving a higher-level API.")
7ea7eb22 90 (home-page "https://lxde.org")
19dd9983
ML
91 (license license:gpl2+)))
92
93(define-public libfm-extra
94 (package (inherit libfm)
95 (name "libfm-extra")
83365461
ML
96 (arguments '(#:configure-flags '("--with-extra-only")))
97 (inputs `(("glib" ,glib)))
98 (native-inputs `(("intltool" ,intltool)
99 ("libtool" ,libtool)
100 ("pkg-config" ,pkg-config)))
101 (synopsis "File management support (extra library)")
19dd9983
ML
102 (description "This package contains standalone library which extends the
103libFM file management library.")))
83365461 104
889e57f4
ML
105(define-public lxappearance
106 (package
107 (name "lxappearance")
3dfb21f0 108 (version "0.6.3")
cbec994d
TGR
109 (source
110 (origin
111 (method url-fetch)
112 (uri (string-append "mirror://sourceforge/lxde/"
113 "LXAppearance/lxappearance-" version ".tar.xz"))
114 (sha256
115 (base32 "0f4bjaamfxxdr9civvy55pa6vv9dx1hjs522gjbbgx7yp1cdh8kj"))))
889e57f4
ML
116 (build-system gnu-build-system)
117 (inputs `(("gtk+" ,gtk+-2)))
118 (native-inputs `(("intltool" ,intltool)
119 ("pkg-config" ,pkg-config)))
120 (synopsis "LXDE GTK+ theme switcher")
121 (description "LXAppearance is a desktop-independent GTK+ theme switcher
122able to change themes, icons, and fonts used by GTK+ applications.")
7ea7eb22 123 (home-page "https://lxde.org")
753dc7d3
ML
124 (license license:gpl2+)))
125
729b44e3
ML
126(define-public lxrandr
127 (package
128 (name "lxrandr")
85343f49 129 (version "0.3.2")
729b44e3
ML
130 (source (origin
131 (method url-fetch)
0f971a04 132 (uri (string-append "mirror://sourceforge/lxde/LXRandR"
729b44e3
ML
133 "%20%28monitor%20config%20tool%29/LXRandR%20"
134 (version-major+minor version) ".x/"
4fa75903 135 "lxrandr-" version ".tar.xz"))
729b44e3
ML
136 (sha256
137 (base32
85343f49 138 "04n3vgh3ix12p8jfs4w0dyfq3anbjy33h7g53wbbqqc0f74xyplb"))))
729b44e3
ML
139 (build-system gnu-build-system)
140 (inputs `(("gtk+" ,gtk+-2)))
141 (native-inputs `(("intltool" ,intltool)
142 ("pkg-config" ,pkg-config)))
143 (synopsis "LXDE monitor configuration tool")
144 (description "LXRandR is a very basic monitor configuration tool. It
145relies on the X11 resize-and-rotate (RandR) extension but doesn't aim to be a
146full frontend of it. LXRandR only gives you some easy and quick options which
147are intuitive. It's suitable for laptop users who frequently uses projectors
148or external monitor.")
7ea7eb22 149 (home-page "https://lxde.org")
729b44e3
ML
150 (license license:gpl2+)))
151
6f92ad5a
ML
152(define-public lxtask
153 (package
154 (name "lxtask")
fd71c6f4 155 (version "0.1.9")
6f92ad5a
ML
156 (source (origin
157 (method url-fetch)
0f971a04 158 (uri (string-append "mirror://sourceforge/lxde/LXTask"
6f92ad5a
ML
159 "%20%28task%20manager%29/LXTask%20"
160 (version-major+minor version) ".x/"
450cd92f 161 "lxtask-" version ".tar.xz"))
6f92ad5a
ML
162 (sha256
163 (base32
fd71c6f4 164 "0cv4hx5dg01hbyi5p10pl78n0a40xajpq4wx9c7886pkmpq8isj1"))))
6f92ad5a
ML
165 (build-system gnu-build-system)
166 (inputs `(("gtk+" ,gtk+-2)))
167 (native-inputs `(("intltool" ,intltool)
168 ("pkg-config" ,pkg-config)))
169 (synopsis "LXDE task manager")
170 (description "LXTask is a lightweight task manager derived from Xfce task
171manager with all dependencies on Xfce removed. LXTask is based on the GTK+
172toolkit. It allows users to monitor and control of running processes.")
7ea7eb22 173 (home-page "https://lxde.org")
6f92ad5a
ML
174 (license license:gpl2+)))
175
753dc7d3
ML
176(define-public lxterminal
177 (package
178 (name "lxterminal")
4cb4af79 179 (version "0.3.2")
753dc7d3
ML
180 (source (origin
181 (method url-fetch)
0f971a04 182 (uri (string-append "mirror://sourceforge/lxde/LXTerminal"
753dc7d3 183 "%20%28terminal%20emulator%29/LXTerminal%20"
dc29cc77 184 version "/" name "-" version ".tar.xz"))
753dc7d3
ML
185 (sha256
186 (base32
4cb4af79 187 "1124pghrhnx6q4391ri8nvi6bsmvbj1dx81an08mird8jf2b2rii"))))
753dc7d3
ML
188 (build-system gnu-build-system)
189 (inputs `(("gtk+" ,gtk+-2)
190 ("vte" ,vte/gtk+-2)))
191 (native-inputs `(("intltool" ,intltool)
192 ("pkg-config" ,pkg-config)))
193 (synopsis "LXDE terminal emulator")
194 (description "LXTerminal is a VTE-based terminal emulator. It supports
195multiple tabs and has only minimal dependencies thus being completely
196desktop-independent. In order to reduce memory usage and increase the
197performance, all instances of the terminal are sharing a single process.")
7ea7eb22 198 (home-page "https://lxde.org")
889e57f4
ML
199 (license license:gpl2+)))
200
6e6b5344
ML
201(define-public menu-cache
202 (package
203 (name "menu-cache")
a436a491 204 (version "1.1.0")
6e6b5344
ML
205 (source (origin
206 (method url-fetch)
0f971a04 207 (uri (string-append "mirror://sourceforge/lxde/" name "/"
6e6b5344
ML
208 (version-major+minor version) "/"
209 name "-" version ".tar.xz"))
210 (sha256
211 (base32
a436a491 212 "1iry4zlpppww8qai2cw4zid4081hh7fz8nzsp5lqyffbkm2yn0pd"))))
6e6b5344
ML
213 (build-system gnu-build-system)
214 (inputs `(("glib" ,glib)
215 ("libfm" ,libfm-extra)))
216 (native-inputs `(("pkg-config" ,pkg-config)))
217 (synopsis "LXDE implementation of the freedesktop menu's cache")
218 (description "Menu-cache is a library creating and utilizing caches to
219speed up the access to freedesktop.org defined application menus.")
7ea7eb22 220 (home-page "https://lxde.org")
6e6b5344
ML
221 (license license:lgpl2.1+)))
222
b3527d5d
ML
223(define-public pcmanfm
224 (package
225 (name "pcmanfm")
70a8ccb7 226 (version "1.3.1")
b3527d5d
ML
227 (source (origin
228 (method url-fetch)
b07d5932 229 (uri (string-append "mirror://sourceforge/pcmanfm/"
b3527d5d 230 "PCManFM%20%2B%20Libfm%20%28tarball%20release"
b07d5932 231 "%29/PCManFM/pcmanfm-" version ".tar.xz"))
b3527d5d
ML
232 (sha256
233 (base32
70a8ccb7 234 "0mb8hg76x1z0szdyl0w7jpz0bdblc6a29is1vvnh79z37qxh8138"))))
b3527d5d 235 (build-system gnu-build-system)
b3527d5d 236 (inputs `(("gtk+" ,gtk+-2)
ca2158bb 237 ("gvfs" ,gvfs) ; for trash and mount support
b3527d5d
ML
238 ("libfm" ,libfm)
239 ("libx11" ,libx11)))
240 (native-inputs `(("intltool" ,intltool)
241 ("libtool" ,libtool)
242 ("pkg-config" ,pkg-config)))
0dcad042 243 (propagated-inputs
ca2158bb 244 `(("lxmenu-data" ,lxmenu-data))) ; for "Open With..." application list
b3527d5d
ML
245 (synopsis "LXDE file manager")
246 (description "PCMan is a lightweight GTK+ based file manager, compliant
247with freedesktop.org standard.")
7ea7eb22 248 (home-page "https://lxde.org")
b3527d5d
ML
249 (license license:gpl2+)))
250
d2434b69 251(define-public spacefm
252 ;; SpaceFM is based on PCManFM.
253 (package
254 (name "spacefm")
255 (version "1.0.6")
7ee215de
RG
256 (source
257 (origin
258 (method git-fetch)
259 (uri
260 (git-reference
261 (url "https://github.com/IgnorantGuru/spacefm.git")
262 (commit version)))
263 (file-name (git-file-name name version))
264 (sha256
265 (base32 "193mdcv73cfc2bnm4bzmnf1wmkzgj1ya64y0lgyxn3ww36ghcsx9"))
266 (modules '((guix build utils)))
267 (snippet
268 '(begin
269 (substitute* "src/main.c"
270 (("#include <sys/types\\.h>" all)
271 ;; Add missing include for 'major' and 'minor' with glibc
272 ;; >= 2.28.
273 (string-append all "\n"
274 "#include <sys/sysmacros.h>\n")))
275 #t))))
bf37b49c
RG
276 (build-system glib-or-gtk-build-system)
277 (native-inputs
278 `(("desktop-file-utils" ,desktop-file-utils)
279 ("glib:bin" ,glib "bin")
280 ("gtk+:bin" ,gtk+ "bin")
281 ("intltool" ,intltool)
282 ("pkg-config" ,pkg-config)))
283 (inputs
284 `(("bash" ,bash)
7ee215de 285 ("btrfs-progs" ,btrfs-progs)
bf37b49c 286 ("cairo" ,cairo)
7ee215de 287 ("coreutils" ,coreutils)
bf37b49c 288 ("curlftpfs" ,curlftpfs)
7ee215de 289 ("e2fsprogs" ,e2fsprogs)
bf37b49c
RG
290 ("eudev" ,eudev)
291 ("fakeroot" ,fakeroot)
292 ("ffmpegthumbnailer" ,ffmpegthumbnailer)
7ee215de 293 ("fsarchiver" ,fsarchiver)
bf37b49c
RG
294 ("fuseiso" ,fuseiso)
295 ("glib" ,glib)
7ee215de 296 ("gphotofs" ,gphotofs)
bf37b49c
RG
297 ("gtk+" ,gtk+)
298 ("ifuse" ,ifuse)
299 ("jmtpfs" ,jmtpfs)
53e8b852 300 ("ktsuss" ,ktsuss)
bf37b49c
RG
301 ("libx11" ,libx11)
302 ("lsof" ,lsof)
7ee215de 303 ("ntfs-3g" ,ntfs-3g)
bf37b49c 304 ("pango" ,pango)
7ee215de 305 ("procps" ,procps)
bf37b49c
RG
306 ("shared-mime-info" ,shared-mime-info)
307 ("startup-notification" ,startup-notification)
308 ("udevil" ,udevil)
309 ("util-linux" ,util-linux)
310 ("wget" ,wget)))
d2434b69 311 (arguments
53e8b852
RG
312 `(#:phases
313 (modify-phases %standard-phases
7ee215de
RG
314 (add-after 'unpack 'patch-bin-dirs
315 (lambda* (#:key inputs #:allow-other-keys)
316 (let* ((bash (assoc-ref inputs "bash"))
317 (coreutils (assoc-ref inputs "coreutils"))
318 (util-linux (assoc-ref inputs "util-linux"))
319 (procps (assoc-ref inputs "procps"))
320 (e2fsprogs (assoc-ref inputs "e2fsprogs"))
321 (btrfs-progs (assoc-ref inputs "btrfs-progs"))
322 (ntfs-3g (assoc-ref inputs "ntfs-3g"))
323 (lsof (assoc-ref inputs "lsof"))
324 (fsarchiver (assoc-ref inputs "fsarchiver"))
325 (ktsuss (assoc-ref inputs "ktsuss")))
326 (with-directory-excursion "src"
327 (substitute* '("ptk/ptk-file-task.c" "ptk/ptk-handler.h"
328 "ptk/ptk-location-view.c" "spacefm-auth"
329 "spacefm-auth.bash" "vfs/vfs-file-task.c"
330 "settings.c" "../data/ui/prefdlg.ui"
331 "../data/ui/prefdlg2.ui")
332 (("/bin/sh" file) (string-append bash file))
333 (("/bin/bash" file) (string-append bash file))
334 (("/bin/kill" file) (string-append coreutils file))
335 (("/bin/ls" file) (string-append coreutils file))
336 (("/usr(/bin/sha256sum)" _ file) (string-append coreutils file))
337 (("/usr(/bin/sha512sum)" _ file) (string-append coreutils file))
338 (("/sbin/fsck" file) (string-append util-linux file))
339 (("/sbin/mkfs" file) (string-append util-linux file))
340 (("/sbin/mkswap" file) (string-append util-linux file))
341 (("/bin/ps" file) (string-append procps file))
342 (("/sbin/tune2fs" file) (string-append e2fsprogs file))
343 (("/sbin/btrfs") (string-append btrfs-progs "/bin/btrfs"))
344 (("/sbin/ntfslabel" file) (string-append ntfs-3g file))
345 (("/usr(/bin/lsof)" _ file) (string-append lsof file))
346 (("(/usr)?/(sbin|bin)/fsarchiver") (string-append fsarchiver
347 "/sbin/fsarchiver"))
348 (("/usr(/bin/ktsuss)" _ file) (string-append ktsuss file))))
349 #t)))
350 (add-after 'patch-bin-dirs 'patch-share-dirs
351 (lambda* (#:key outputs #:allow-other-keys)
352 (let* ((out (assoc-ref outputs "out"))
353 (share (string-append out "/share")))
354 (with-directory-excursion "src"
355 (substitute* '("main-window.c" "settings.c"
356 "ptk/ptk-app-chooser.c")
357 (("/usr(/local)?/share") share)))
358 #t)))
359 (add-after 'patch-share-dirs 'patch-mime-dirs
360 (lambda* (#:key inputs #:allow-other-keys)
361 (let* ((mime (string-append (assoc-ref inputs "shared-mime-info")
362 "/share/mime")))
363 (with-directory-excursion "src"
364 (substitute* '("mime-type/mime-type.c" "ptk/ptk-file-menu.c")
365 (("/usr(/local)?/share/mime") mime)))
366 #t)))
367 (add-after 'patch-mime-dirs 'patch-setuid-progs
368 (lambda _
369 (let* ((su "/run/setuid-programs/su")
370 (mount "/run/setuid-programs/mount")
371 (umount "/run/setuid-programs/umount")
372 (udevil "/run/setuid-programs/udevil"))
373 (with-directory-excursion "src"
374 (substitute* '("settings.c" "settings.h" "vfs/vfs-file-task.c"
375 "vfs/vfs-volume-hal.c" "../data/ui/prefdlg.ui"
376 "../data/ui/prefdlg2.ui")
377 (("(/usr)?/bin/su") su)
378 (("/(bin|sbin)/mount") mount)
379 (("/(bin|sbin)/umount") umount)
380 (("/usr/bin/udevil") udevil)))
381 #t)))
382 (add-after 'patch-setuid-progs 'patch-spacefm-conf
53e8b852 383 (lambda* (#:key inputs #:allow-other-keys)
53e8b852
RG
384 (substitute* "etc/spacefm.conf"
385 (("#terminal_su=/bin/su")
7ee215de 386 "terminal_su=/run/setuid-programs/su")
53e8b852
RG
387 (("#graphical_su=/usr/bin/gksu")
388 (string-append "graphical_su="
389 (string-append (assoc-ref inputs "ktsuss")
390 "/bin/ktsuss"))))
53e8b852
RG
391 #t)))
392 #:configure-flags (list
7ee215de
RG
393 (string-append "--with-preferable-sudo="
394 (assoc-ref %build-inputs "ktsuss")
395 "/bin/ktsuss")
53e8b852
RG
396 (string-append "--with-bash-path="
397 (assoc-ref %build-inputs "bash")
398 "/bin/bash")
399 (string-append "--sysconfdir="
400 (assoc-ref %outputs "out")
401 "/etc"))))
28ee7111 402 (home-page "https://ignorantguru.github.io/spacefm/")
d2434b69 403 (synopsis "Multi-panel tabbed file manager")
404 (description "SpaceFM is a graphical, multi-panel, tabbed file manager
405based on PCManFM with built-in virtual file system, udev-based device manager,
406customizable menu system, and Bash integration.")
407
408 ;; The combination is GPLv3+ but src/exo is under LGPLv3+.
409 (license license:gpl3+)))
410
7f7d52cc 411(define-public lxmenu-data
412 (package
413 (name "lxmenu-data")
414 (version "0.1.5")
415 (source
416 (origin
417 (method url-fetch)
418 (uri (string-append "https://downloads.sourceforge.net/lxde/"
419 name "-" version ".tar.xz"))
420 (sha256
421 (base32
422 "1f5sh2dvb3pdnjlcsyzq9543ck2jsqizkx3204cr22zm5s6j3qwz"))))
423 (build-system gnu-build-system)
424 (native-inputs
425 `(("pkg-config" ,pkg-config)
426 ("intltool" ,intltool)))
427 (synopsis "Freedesktop.org desktop menus for LXDE")
428 (description
429 "Lxmenu-data provides files required to build freedesktop.org
430menu spec-compliant desktop menus for LXDE.")
7ea7eb22 431 (home-page "https://lxde.org")
7f7d52cc 432 (license license:lgpl2.1+)))
433
4dcbed57 434(define-public lxde-icon-theme
435 (package
436 (name "lxde-icon-theme")
437 (version "0.5.1")
438 (source
439 (origin
440 (method url-fetch)
441 (uri (string-append "https://downloads.sourceforge.net/lxde/"
442 name "-" version ".tar.xz"))
443 (sha256
444 (base32
445 "0v4i6x86fr2hbx4fb2si7y2qzmj7h6hcjwaifnin18r8kwwvgl73"))))
446 (build-system gnu-build-system)
447 (native-inputs
448 `(("pkg-config" ,pkg-config)))
449 (synopsis "LXDE default icon theme based on nuoveXT2")
450 (description
451 "Lxde-icon-theme provides an default icon theme for LXDE.")
7ea7eb22 452 (home-page "https://lxde.org")
4dcbed57 453 (license license:lgpl3)))
454
169274d5 455(define-public lxde-common
456 (package
457 (name "lxde-common")
458 (version "0.99.2")
459 (source
460 (origin
461 (method url-fetch)
462 (uri (string-append "https://downloads.sourceforge.net/lxde/"
463 name "-" version ".tar.xz"))
464 (sha256
465 (base32
466 "0mj84fa3f4ak1jjslrwc2q3ci9zxrxpciggviza9bjb0168brn8w"))))
467 (build-system gnu-build-system)
d5e7d014
LC
468 (arguments
469 '(#:phases (modify-phases %standard-phases
470 (add-before 'configure 'set-lxsession
471 (lambda* (#:key inputs #:allow-other-keys)
472 ;; Set the right file name for 'lxsession'.
473 (let ((lxsession (assoc-ref inputs "lxsession")))
474 (substitute* "startlxde.in"
475 (("^exec .*/bin/lxsession")
476 (string-append "exec " lxsession
477 "/bin/lxsession")))
478 #t))))))
169274d5 479 (native-inputs
480 `(("pkg-config" ,pkg-config)
481 ("intltool" ,intltool)
482 ("lxmenu-data" ,lxmenu-data)
483 ("lxde-icon-theme" ,lxde-icon-theme)))
d5e7d014
LC
484 (inputs
485 `(("lxsession" ,lxsession)
486 ;; ("lxlock" ,lxlock) ;for 'lxde-screenlock.desktop'
487 ))
169274d5 488 (synopsis "Common files of the LXDE Desktop")
489 (description
490 "Lxde-common provides common files of the LXDE Desktop.")
7ea7eb22 491 (home-page "https://lxde.org")
169274d5 492 (license license:gpl2+)))
493
f3b3af37 494(define-public lxinput
495 (package
496 (name "lxinput")
497 (version "0.3.5")
498 (source
499 (origin
500 (method url-fetch)
501 (uri (string-append "https://downloads.sourceforge.net/lxde/"
502 name "-" version ".tar.xz"))
503 (sha256
504 (base32
505 "123f3yn4rp1w5b3n5aj3ad9snkxab29qkrs7bcvf5bx4cn57g3sf"))))
506 (build-system gnu-build-system)
507 (inputs
508 `(("gtk+-2" ,gtk+-2)))
509 (native-inputs
510 `(("pkg-config" ,pkg-config)
511 ("intltool" ,intltool)))
512 (synopsis "Tool for mouse and keyboard configuration in LXDE")
513 (description
514 "Lxinput provides a small program to configure keyboard and mouse
515in LXDE.")
7ea7eb22 516 (home-page "https://lxde.org")
f3b3af37 517 (license license:gpl2+)))
518
d3897349 519(define-public lxsession
520 (package
521 (name "lxsession")
53bd021f 522 (version "0.5.5")
d3897349 523 (source
524 (origin
525 (method url-fetch)
526 (uri (string-append "https://downloads.sourceforge.net/lxde/"
00c63b8d 527 "lxsession-" version ".tar.xz"))
d3897349 528 (sha256
53bd021f 529 (base32 "0imv9nysip1j9lrb2z96kl05isjgp312323wnnd5b59h0ff0sgp4"))
a4cdcffb
LC
530 (modules '((guix build utils)))
531 (snippet
532 ;; Remove C files generated by Vala so we can build from source.
533 '(let* ((c->vala
534 (lambda (file)
535 (string-append (string-drop-right file 2)
536 ".vala")))
537 (generated-c-file?
538 (lambda (file stat)
539 (and (string-suffix? ".c" file)
540 (file-exists? (c->vala file))))))
541 (for-each delete-file
6cbee49d
MW
542 (find-files "." generated-c-file?))
543 #t))))
d3897349 544 (build-system gnu-build-system)
545 (arguments
546 `(#:phases
547 (modify-phases %standard-phases
548 (add-after 'unpack 'rm-stamp
549 (lambda _
a49b5322
RW
550 (for-each delete-file (find-files "." "\\.stamp$"))
551 ;; Force regeneration of configure script.
552 (delete-file "configure")
553 #t)))))
d3897349 554 (inputs
555 `(("gtk+-2" ,gtk+-2)
556 ("polkit" ,polkit)))
557 (native-inputs
558 `(("pkg-config" ,pkg-config)
559 ("intltool" ,intltool)
560 ("docbook-xsl" ,docbook-xsl)
561 ("vala" ,vala)
53bd021f
TGR
562
563 ;; For bootstrapping.
d3897349 564 ("autoconf" ,autoconf)
565 ("automake" ,automake)))
566 (synopsis "Lightweight X11 session manager")
567 (description
568 "Lxsession provides an lightweight X11 session manager.")
7ea7eb22 569 (home-page "https://lxde.org")
d3897349 570 (license license:gpl2+)))
571
50042505 572(define-public lxpanel
573 (package
574 (name "lxpanel")
46b02378 575 (version "0.10.0")
50042505 576 (source
577 (origin
578 (method url-fetch)
579 (uri (string-append "https://downloads.sourceforge.net/lxde/"
4f3e8733 580 "lxpanel-" version ".tar.xz"))
50042505 581 (sha256
46b02378 582 (base32 "0zis3b815p375s6mymhf5sn1a0c1xv0ixxzb0mh3fqhrby6cqy26"))))
50042505 583 (build-system gnu-build-system)
584 (arguments
585 `(#:phases
586 (modify-phases %standard-phases
587 (add-after 'install 'wrap
588 (lambda* (#:key inputs outputs #:allow-other-keys)
589 (let ((out (assoc-ref outputs "out"))
590 (menu (assoc-ref inputs "lxmenu-data")))
591 (wrap-program (string-append out "/bin/lxpanel")
592 `("XDG_DATA_DIRS" ":" prefix
593 (,(string-append menu "/share"))))
594 #t))))))
595 (inputs
596 ;; TODO: libindicator-0.3.0
46b02378
TGR
597 `(("curl" ,curl)
598 ("gtk+-2" ,gtk+-2)
50042505 599 ("alsa-lib" ,alsa-lib)
600 ("libwnck-2" ,libwnck-2)
601 ("keybinder" ,keybinder)
602 ("libxmu" ,libxmu)
603 ("libxpm" ,libxpm)
604 ("libxml2" ,libxml2)
605 ("cairo" ,cairo)
606 ("libx11" ,libx11)
607 ("wireless-tools" ,wireless-tools)))
608 (native-inputs
609 `(("pkg-config" ,pkg-config)
610 ("intltool" ,intltool)
611 ("docbook-xml" ,docbook-xml)
612 ("gettext-minimal" ,gettext-minimal)))
613 (propagated-inputs
614 `(("lxmenu-data" ,lxmenu-data)
615 ("libfm" ,libfm)
616 ("menu-cache" ,menu-cache)))
617 (synopsis "X11 Desktop panel for LXDE")
618 (description
619 "Lxpanel provides an X11 desktop panel for LXDE.")
7ea7eb22 620 (home-page "https://lxde.org")
50042505 621 (license license:gpl2+)))
622
812c1819 623(define-public lxde
624 (package
625 (name "lxde")
626 (version (package-version lxde-common))
627 (source #f)
628 (build-system trivial-build-system)
e3cfef22 629 (arguments '(#:builder (begin (mkdir %output) #t)))
812c1819 630 (propagated-inputs
631 ;; TODO:
ed3a9ec5 632 ;; lxshortcut, lxsession-edit
812c1819 633 ;; lxappearance-obconf
634 `(("menu-cache" ,menu-cache)
ed3a9ec5 635 ("gpicview" ,gpicview)
8b1e572d 636 ("leafpad" ,leafpad)
812c1819 637 ("lxappearance" ,lxappearance)
638 ("lxde-icon-theme" ,lxde-icon-theme)
639 ("lxde-common" ,lxde-common)
640 ("lxmenu-data" ,lxmenu-data)
641 ("lxpanel" ,lxpanel)
642 ("lxrandr" ,lxrandr)
643 ("lxsession" ,lxsession)
644 ("libfm" ,libfm)
645 ("libfm-extra" ,libfm-extra)
646 ("lxtask" ,lxtask)
647 ("lxterminal" ,lxterminal)
648 ("pcmanfm" ,pcmanfm)
649 ("openbox" ,openbox)
650 ("obconf" ,obconf)))
651 (synopsis "Lightweight X11 Desktop Environment")
652 (description
653 "LXDE, which stands for Lightweight X11 Desktop Environment, is a
654desktop environment which is lightweight and fast. It is designed to be
655user friendly and slim, while keeping the resource usage low. LXDE uses
656less RAM and less CPU while being a feature rich desktop environment. Unlike
657other tightly integrated desktops LXDE strives to be modular, so each
658component can be used independently with few dependencies.")
659 (home-page "https://lxde.org")
660 (license license:gpl2+))) ; And others.
661
889e57f4 662;;; lxde.scm ends here