gnu: cvs-fast-export: Update to 1.56.
[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>
242db527 7;;; Copyright © 2018–2021 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")
242db527 69 (version "1.3.2")
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
242db527 77 "1rfira3lx8v6scz1aq69925j4vslpp36bmgrrzcfby2c60q2c155"))))
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.")
f6ea0815 90 (home-page "https://lxde.github.io")
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)")
bee5bbb5 102 (description "This package contains a stand-alone library which extends the
19dd9983 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.")
f6ea0815 123 (home-page "https://lxde.github.io")
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 139 (build-system gnu-build-system)
e6685186
TGR
140 (arguments
141 `(#:phases
142 (modify-phases %standard-phases
143 (add-after 'unpack 'xrandr-absolutely
144 ;; lxrandr is useless without xrandr and gives an unhelpful error
145 ;; message if it's not in $PATH, so make it a hard dependency.
146 (lambda* (#:key input #:allow-other-keys)
147 (substitute* "src/lxrandr.c"
148 (("(\"|')xrandr\"" _ match)
149 (string-append match (which "xrandr") "\"")))
150 #t)))))
151 (inputs `(("gtk+" ,gtk+-2)
152 ("xrandr" ,xrandr)))
729b44e3
ML
153 (native-inputs `(("intltool" ,intltool)
154 ("pkg-config" ,pkg-config)))
155 (synopsis "LXDE monitor configuration tool")
156 (description "LXRandR is a very basic monitor configuration tool. It
157relies on the X11 resize-and-rotate (RandR) extension but doesn't aim to be a
158full frontend of it. LXRandR only gives you some easy and quick options which
159are intuitive. It's suitable for laptop users who frequently uses projectors
160or external monitor.")
f6ea0815 161 (home-page "https://lxde.github.io")
729b44e3
ML
162 (license license:gpl2+)))
163
6f92ad5a
ML
164(define-public lxtask
165 (package
166 (name "lxtask")
37985681 167 (version "0.1.10")
6f92ad5a
ML
168 (source (origin
169 (method url-fetch)
0f971a04 170 (uri (string-append "mirror://sourceforge/lxde/LXTask"
6f92ad5a
ML
171 "%20%28task%20manager%29/LXTask%20"
172 (version-major+minor version) ".x/"
450cd92f 173 "lxtask-" version ".tar.xz"))
6f92ad5a
ML
174 (sha256
175 (base32
37985681 176 "0b2fxg8jjjpk219gh7qa18g45365598nd2bq7rrq0bdvqjdxy5i2"))))
6f92ad5a
ML
177 (build-system gnu-build-system)
178 (inputs `(("gtk+" ,gtk+-2)))
179 (native-inputs `(("intltool" ,intltool)
180 ("pkg-config" ,pkg-config)))
181 (synopsis "LXDE task manager")
182 (description "LXTask is a lightweight task manager derived from Xfce task
183manager with all dependencies on Xfce removed. LXTask is based on the GTK+
184toolkit. It allows users to monitor and control of running processes.")
f6ea0815 185 (home-page "https://lxde.github.io")
6f92ad5a
ML
186 (license license:gpl2+)))
187
753dc7d3
ML
188(define-public lxterminal
189 (package
190 (name "lxterminal")
4cb4af79 191 (version "0.3.2")
753dc7d3
ML
192 (source (origin
193 (method url-fetch)
0f971a04 194 (uri (string-append "mirror://sourceforge/lxde/LXTerminal"
753dc7d3 195 "%20%28terminal%20emulator%29/LXTerminal%20"
dc29cc77 196 version "/" name "-" version ".tar.xz"))
753dc7d3
ML
197 (sha256
198 (base32
4cb4af79 199 "1124pghrhnx6q4391ri8nvi6bsmvbj1dx81an08mird8jf2b2rii"))))
753dc7d3
ML
200 (build-system gnu-build-system)
201 (inputs `(("gtk+" ,gtk+-2)
202 ("vte" ,vte/gtk+-2)))
203 (native-inputs `(("intltool" ,intltool)
204 ("pkg-config" ,pkg-config)))
205 (synopsis "LXDE terminal emulator")
206 (description "LXTerminal is a VTE-based terminal emulator. It supports
207multiple tabs and has only minimal dependencies thus being completely
208desktop-independent. In order to reduce memory usage and increase the
209performance, all instances of the terminal are sharing a single process.")
f6ea0815 210 (home-page "https://lxde.github.io")
889e57f4
ML
211 (license license:gpl2+)))
212
6e6b5344
ML
213(define-public menu-cache
214 (package
215 (name "menu-cache")
a436a491 216 (version "1.1.0")
6e6b5344
ML
217 (source (origin
218 (method url-fetch)
0f971a04 219 (uri (string-append "mirror://sourceforge/lxde/" name "/"
6e6b5344
ML
220 (version-major+minor version) "/"
221 name "-" version ".tar.xz"))
222 (sha256
223 (base32
a436a491 224 "1iry4zlpppww8qai2cw4zid4081hh7fz8nzsp5lqyffbkm2yn0pd"))))
6e6b5344
ML
225 (build-system gnu-build-system)
226 (inputs `(("glib" ,glib)
227 ("libfm" ,libfm-extra)))
228 (native-inputs `(("pkg-config" ,pkg-config)))
229 (synopsis "LXDE implementation of the freedesktop menu's cache")
230 (description "Menu-cache is a library creating and utilizing caches to
231speed up the access to freedesktop.org defined application menus.")
f6ea0815 232 (home-page "https://lxde.github.io")
6e6b5344
ML
233 (license license:lgpl2.1+)))
234
b3527d5d
ML
235(define-public pcmanfm
236 (package
237 (name "pcmanfm")
ebbe8565 238 (version "1.3.2")
b3527d5d
ML
239 (source (origin
240 (method url-fetch)
b07d5932 241 (uri (string-append "mirror://sourceforge/pcmanfm/"
b3527d5d 242 "PCManFM%20%2B%20Libfm%20%28tarball%20release"
b07d5932 243 "%29/PCManFM/pcmanfm-" version ".tar.xz"))
b3527d5d
ML
244 (sha256
245 (base32
ebbe8565 246 "1xqc2k2jh165mm81xg0ghxx0ml1s3rhh4ndvbzkcri4kfhj7pjql"))))
b3527d5d 247 (build-system gnu-build-system)
b3527d5d 248 (inputs `(("gtk+" ,gtk+-2)
ca2158bb 249 ("gvfs" ,gvfs) ; for trash and mount support
b3527d5d
ML
250 ("libfm" ,libfm)
251 ("libx11" ,libx11)))
252 (native-inputs `(("intltool" ,intltool)
253 ("libtool" ,libtool)
254 ("pkg-config" ,pkg-config)))
0dcad042 255 (propagated-inputs
ca2158bb 256 `(("lxmenu-data" ,lxmenu-data))) ; for "Open With..." application list
b3527d5d
ML
257 (synopsis "LXDE file manager")
258 (description "PCMan is a lightweight GTK+ based file manager, compliant
259with freedesktop.org standard.")
f6ea0815 260 (home-page "https://lxde.github.io")
b3527d5d
ML
261 (license license:gpl2+)))
262
d2434b69 263(define-public spacefm
264 ;; SpaceFM is based on PCManFM.
265 (package
266 (name "spacefm")
267 (version "1.0.6")
7ee215de
RG
268 (source
269 (origin
270 (method git-fetch)
271 (uri
272 (git-reference
b0e7b699 273 (url "https://github.com/IgnorantGuru/spacefm")
7ee215de
RG
274 (commit version)))
275 (file-name (git-file-name name version))
276 (sha256
277 (base32 "193mdcv73cfc2bnm4bzmnf1wmkzgj1ya64y0lgyxn3ww36ghcsx9"))
278 (modules '((guix build utils)))
279 (snippet
280 '(begin
281 (substitute* "src/main.c"
282 (("#include <sys/types\\.h>" all)
283 ;; Add missing include for 'major' and 'minor' with glibc
284 ;; >= 2.28.
285 (string-append all "\n"
286 "#include <sys/sysmacros.h>\n")))
287 #t))))
bf37b49c
RG
288 (build-system glib-or-gtk-build-system)
289 (native-inputs
290 `(("desktop-file-utils" ,desktop-file-utils)
291 ("glib:bin" ,glib "bin")
292 ("gtk+:bin" ,gtk+ "bin")
293 ("intltool" ,intltool)
294 ("pkg-config" ,pkg-config)))
295 (inputs
296 `(("bash" ,bash)
7ee215de 297 ("btrfs-progs" ,btrfs-progs)
bf37b49c 298 ("cairo" ,cairo)
7ee215de 299 ("coreutils" ,coreutils)
bf37b49c 300 ("curlftpfs" ,curlftpfs)
7ee215de 301 ("e2fsprogs" ,e2fsprogs)
bf37b49c
RG
302 ("eudev" ,eudev)
303 ("fakeroot" ,fakeroot)
304 ("ffmpegthumbnailer" ,ffmpegthumbnailer)
7ee215de 305 ("fsarchiver" ,fsarchiver)
bf37b49c
RG
306 ("fuseiso" ,fuseiso)
307 ("glib" ,glib)
7ee215de 308 ("gphotofs" ,gphotofs)
bf37b49c
RG
309 ("gtk+" ,gtk+)
310 ("ifuse" ,ifuse)
311 ("jmtpfs" ,jmtpfs)
53e8b852 312 ("ktsuss" ,ktsuss)
bf37b49c
RG
313 ("libx11" ,libx11)
314 ("lsof" ,lsof)
7ee215de 315 ("ntfs-3g" ,ntfs-3g)
bf37b49c 316 ("pango" ,pango)
7ee215de 317 ("procps" ,procps)
bf37b49c
RG
318 ("shared-mime-info" ,shared-mime-info)
319 ("startup-notification" ,startup-notification)
320 ("udevil" ,udevil)
321 ("util-linux" ,util-linux)
322 ("wget" ,wget)))
d2434b69 323 (arguments
53e8b852
RG
324 `(#:phases
325 (modify-phases %standard-phases
7ee215de
RG
326 (add-after 'unpack 'patch-bin-dirs
327 (lambda* (#:key inputs #:allow-other-keys)
328 (let* ((bash (assoc-ref inputs "bash"))
329 (coreutils (assoc-ref inputs "coreutils"))
330 (util-linux (assoc-ref inputs "util-linux"))
331 (procps (assoc-ref inputs "procps"))
332 (e2fsprogs (assoc-ref inputs "e2fsprogs"))
333 (btrfs-progs (assoc-ref inputs "btrfs-progs"))
334 (ntfs-3g (assoc-ref inputs "ntfs-3g"))
335 (lsof (assoc-ref inputs "lsof"))
336 (fsarchiver (assoc-ref inputs "fsarchiver"))
337 (ktsuss (assoc-ref inputs "ktsuss")))
338 (with-directory-excursion "src"
339 (substitute* '("ptk/ptk-file-task.c" "ptk/ptk-handler.h"
340 "ptk/ptk-location-view.c" "spacefm-auth"
341 "spacefm-auth.bash" "vfs/vfs-file-task.c"
342 "settings.c" "../data/ui/prefdlg.ui"
343 "../data/ui/prefdlg2.ui")
344 (("/bin/sh" file) (string-append bash file))
345 (("/bin/bash" file) (string-append bash file))
346 (("/bin/kill" file) (string-append coreutils file))
347 (("/bin/ls" file) (string-append coreutils file))
348 (("/usr(/bin/sha256sum)" _ file) (string-append coreutils file))
349 (("/usr(/bin/sha512sum)" _ file) (string-append coreutils file))
350 (("/sbin/fsck" file) (string-append util-linux file))
351 (("/sbin/mkfs" file) (string-append util-linux file))
352 (("/sbin/mkswap" file) (string-append util-linux file))
353 (("/bin/ps" file) (string-append procps file))
354 (("/sbin/tune2fs" file) (string-append e2fsprogs file))
355 (("/sbin/btrfs") (string-append btrfs-progs "/bin/btrfs"))
356 (("/sbin/ntfslabel" file) (string-append ntfs-3g file))
357 (("/usr(/bin/lsof)" _ file) (string-append lsof file))
358 (("(/usr)?/(sbin|bin)/fsarchiver") (string-append fsarchiver
359 "/sbin/fsarchiver"))
360 (("/usr(/bin/ktsuss)" _ file) (string-append ktsuss file))))
361 #t)))
362 (add-after 'patch-bin-dirs 'patch-share-dirs
363 (lambda* (#:key outputs #:allow-other-keys)
364 (let* ((out (assoc-ref outputs "out"))
365 (share (string-append out "/share")))
366 (with-directory-excursion "src"
367 (substitute* '("main-window.c" "settings.c"
368 "ptk/ptk-app-chooser.c")
369 (("/usr(/local)?/share") share)))
370 #t)))
371 (add-after 'patch-share-dirs 'patch-mime-dirs
372 (lambda* (#:key inputs #:allow-other-keys)
373 (let* ((mime (string-append (assoc-ref inputs "shared-mime-info")
374 "/share/mime")))
375 (with-directory-excursion "src"
376 (substitute* '("mime-type/mime-type.c" "ptk/ptk-file-menu.c")
377 (("/usr(/local)?/share/mime") mime)))
378 #t)))
379 (add-after 'patch-mime-dirs 'patch-setuid-progs
380 (lambda _
381 (let* ((su "/run/setuid-programs/su")
382 (mount "/run/setuid-programs/mount")
383 (umount "/run/setuid-programs/umount")
384 (udevil "/run/setuid-programs/udevil"))
385 (with-directory-excursion "src"
386 (substitute* '("settings.c" "settings.h" "vfs/vfs-file-task.c"
387 "vfs/vfs-volume-hal.c" "../data/ui/prefdlg.ui"
388 "../data/ui/prefdlg2.ui")
389 (("(/usr)?/bin/su") su)
390 (("/(bin|sbin)/mount") mount)
391 (("/(bin|sbin)/umount") umount)
392 (("/usr/bin/udevil") udevil)))
393 #t)))
394 (add-after 'patch-setuid-progs 'patch-spacefm-conf
53e8b852 395 (lambda* (#:key inputs #:allow-other-keys)
53e8b852
RG
396 (substitute* "etc/spacefm.conf"
397 (("#terminal_su=/bin/su")
7ee215de 398 "terminal_su=/run/setuid-programs/su")
53e8b852
RG
399 (("#graphical_su=/usr/bin/gksu")
400 (string-append "graphical_su="
401 (string-append (assoc-ref inputs "ktsuss")
402 "/bin/ktsuss"))))
53e8b852
RG
403 #t)))
404 #:configure-flags (list
7ee215de
RG
405 (string-append "--with-preferable-sudo="
406 (assoc-ref %build-inputs "ktsuss")
407 "/bin/ktsuss")
53e8b852
RG
408 (string-append "--with-bash-path="
409 (assoc-ref %build-inputs "bash")
410 "/bin/bash")
411 (string-append "--sysconfdir="
412 (assoc-ref %outputs "out")
413 "/etc"))))
28ee7111 414 (home-page "https://ignorantguru.github.io/spacefm/")
d2434b69 415 (synopsis "Multi-panel tabbed file manager")
416 (description "SpaceFM is a graphical, multi-panel, tabbed file manager
417based on PCManFM with built-in virtual file system, udev-based device manager,
418customizable menu system, and Bash integration.")
419
420 ;; The combination is GPLv3+ but src/exo is under LGPLv3+.
421 (license license:gpl3+)))
422
7f7d52cc 423(define-public lxmenu-data
424 (package
425 (name "lxmenu-data")
426 (version "0.1.5")
427 (source
428 (origin
429 (method url-fetch)
430 (uri (string-append "https://downloads.sourceforge.net/lxde/"
431 name "-" version ".tar.xz"))
432 (sha256
433 (base32
434 "1f5sh2dvb3pdnjlcsyzq9543ck2jsqizkx3204cr22zm5s6j3qwz"))))
435 (build-system gnu-build-system)
436 (native-inputs
437 `(("pkg-config" ,pkg-config)
438 ("intltool" ,intltool)))
439 (synopsis "Freedesktop.org desktop menus for LXDE")
440 (description
441 "Lxmenu-data provides files required to build freedesktop.org
442menu spec-compliant desktop menus for LXDE.")
f6ea0815 443 (home-page "https://lxde.github.io")
7f7d52cc 444 (license license:lgpl2.1+)))
445
4dcbed57 446(define-public lxde-icon-theme
447 (package
448 (name "lxde-icon-theme")
449 (version "0.5.1")
450 (source
451 (origin
452 (method url-fetch)
453 (uri (string-append "https://downloads.sourceforge.net/lxde/"
454 name "-" version ".tar.xz"))
455 (sha256
456 (base32
457 "0v4i6x86fr2hbx4fb2si7y2qzmj7h6hcjwaifnin18r8kwwvgl73"))))
458 (build-system gnu-build-system)
459 (native-inputs
460 `(("pkg-config" ,pkg-config)))
461 (synopsis "LXDE default icon theme based on nuoveXT2")
462 (description
463 "Lxde-icon-theme provides an default icon theme for LXDE.")
f6ea0815 464 (home-page "https://lxde.github.io")
4dcbed57 465 (license license:lgpl3)))
466
169274d5 467(define-public lxde-common
468 (package
469 (name "lxde-common")
470 (version "0.99.2")
471 (source
472 (origin
473 (method url-fetch)
474 (uri (string-append "https://downloads.sourceforge.net/lxde/"
475 name "-" version ".tar.xz"))
476 (sha256
477 (base32
478 "0mj84fa3f4ak1jjslrwc2q3ci9zxrxpciggviza9bjb0168brn8w"))))
479 (build-system gnu-build-system)
d5e7d014
LC
480 (arguments
481 '(#:phases (modify-phases %standard-phases
482 (add-before 'configure 'set-lxsession
483 (lambda* (#:key inputs #:allow-other-keys)
484 ;; Set the right file name for 'lxsession'.
485 (let ((lxsession (assoc-ref inputs "lxsession")))
486 (substitute* "startlxde.in"
487 (("^exec .*/bin/lxsession")
488 (string-append "exec " lxsession
489 "/bin/lxsession")))
490 #t))))))
169274d5 491 (native-inputs
492 `(("pkg-config" ,pkg-config)
493 ("intltool" ,intltool)
494 ("lxmenu-data" ,lxmenu-data)
495 ("lxde-icon-theme" ,lxde-icon-theme)))
d5e7d014
LC
496 (inputs
497 `(("lxsession" ,lxsession)
498 ;; ("lxlock" ,lxlock) ;for 'lxde-screenlock.desktop'
499 ))
169274d5 500 (synopsis "Common files of the LXDE Desktop")
501 (description
502 "Lxde-common provides common files of the LXDE Desktop.")
f6ea0815 503 (home-page "https://lxde.github.io")
169274d5 504 (license license:gpl2+)))
505
f3b3af37 506(define-public lxinput
507 (package
508 (name "lxinput")
509 (version "0.3.5")
510 (source
511 (origin
512 (method url-fetch)
513 (uri (string-append "https://downloads.sourceforge.net/lxde/"
514 name "-" version ".tar.xz"))
515 (sha256
516 (base32
517 "123f3yn4rp1w5b3n5aj3ad9snkxab29qkrs7bcvf5bx4cn57g3sf"))))
518 (build-system gnu-build-system)
519 (inputs
520 `(("gtk+-2" ,gtk+-2)))
521 (native-inputs
522 `(("pkg-config" ,pkg-config)
523 ("intltool" ,intltool)))
524 (synopsis "Tool for mouse and keyboard configuration in LXDE")
525 (description
526 "Lxinput provides a small program to configure keyboard and mouse
527in LXDE.")
f6ea0815 528 (home-page "https://lxde.github.io")
f3b3af37 529 (license license:gpl2+)))
530
d3897349 531(define-public lxsession
532 (package
533 (name "lxsession")
53bd021f 534 (version "0.5.5")
d3897349 535 (source
536 (origin
537 (method url-fetch)
538 (uri (string-append "https://downloads.sourceforge.net/lxde/"
00c63b8d 539 "lxsession-" version ".tar.xz"))
d3897349 540 (sha256
53bd021f 541 (base32 "0imv9nysip1j9lrb2z96kl05isjgp312323wnnd5b59h0ff0sgp4"))
a4cdcffb
LC
542 (modules '((guix build utils)))
543 (snippet
544 ;; Remove C files generated by Vala so we can build from source.
545 '(let* ((c->vala
546 (lambda (file)
547 (string-append (string-drop-right file 2)
548 ".vala")))
549 (generated-c-file?
550 (lambda (file stat)
551 (and (string-suffix? ".c" file)
552 (file-exists? (c->vala file))))))
553 (for-each delete-file
6cbee49d
MW
554 (find-files "." generated-c-file?))
555 #t))))
d3897349 556 (build-system gnu-build-system)
557 (arguments
558 `(#:phases
559 (modify-phases %standard-phases
560 (add-after 'unpack 'rm-stamp
561 (lambda _
a49b5322
RW
562 (for-each delete-file (find-files "." "\\.stamp$"))
563 ;; Force regeneration of configure script.
564 (delete-file "configure")
565 #t)))))
d3897349 566 (inputs
567 `(("gtk+-2" ,gtk+-2)
568 ("polkit" ,polkit)))
569 (native-inputs
570 `(("pkg-config" ,pkg-config)
571 ("intltool" ,intltool)
572 ("docbook-xsl" ,docbook-xsl)
573 ("vala" ,vala)
53bd021f
TGR
574
575 ;; For bootstrapping.
d3897349 576 ("autoconf" ,autoconf)
577 ("automake" ,automake)))
578 (synopsis "Lightweight X11 session manager")
579 (description
580 "Lxsession provides an lightweight X11 session manager.")
f6ea0815 581 (home-page "https://lxde.github.io")
d3897349 582 (license license:gpl2+)))
583
50042505 584(define-public lxpanel
585 (package
586 (name "lxpanel")
46b02378 587 (version "0.10.0")
50042505 588 (source
589 (origin
590 (method url-fetch)
591 (uri (string-append "https://downloads.sourceforge.net/lxde/"
4f3e8733 592 "lxpanel-" version ".tar.xz"))
50042505 593 (sha256
46b02378 594 (base32 "0zis3b815p375s6mymhf5sn1a0c1xv0ixxzb0mh3fqhrby6cqy26"))))
50042505 595 (build-system gnu-build-system)
596 (arguments
597 `(#:phases
598 (modify-phases %standard-phases
599 (add-after 'install 'wrap
600 (lambda* (#:key inputs outputs #:allow-other-keys)
601 (let ((out (assoc-ref outputs "out"))
602 (menu (assoc-ref inputs "lxmenu-data")))
603 (wrap-program (string-append out "/bin/lxpanel")
604 `("XDG_DATA_DIRS" ":" prefix
605 (,(string-append menu "/share"))))
606 #t))))))
607 (inputs
608 ;; TODO: libindicator-0.3.0
46b02378
TGR
609 `(("curl" ,curl)
610 ("gtk+-2" ,gtk+-2)
50042505 611 ("alsa-lib" ,alsa-lib)
612 ("libwnck-2" ,libwnck-2)
613 ("keybinder" ,keybinder)
614 ("libxmu" ,libxmu)
615 ("libxpm" ,libxpm)
616 ("libxml2" ,libxml2)
617 ("cairo" ,cairo)
618 ("libx11" ,libx11)
619 ("wireless-tools" ,wireless-tools)))
620 (native-inputs
621 `(("pkg-config" ,pkg-config)
622 ("intltool" ,intltool)
623 ("docbook-xml" ,docbook-xml)
624 ("gettext-minimal" ,gettext-minimal)))
625 (propagated-inputs
626 `(("lxmenu-data" ,lxmenu-data)
627 ("libfm" ,libfm)
628 ("menu-cache" ,menu-cache)))
629 (synopsis "X11 Desktop panel for LXDE")
630 (description
631 "Lxpanel provides an X11 desktop panel for LXDE.")
f6ea0815 632 (home-page "https://lxde.github.io")
50042505 633 (license license:gpl2+)))
634
812c1819 635(define-public lxde
636 (package
637 (name "lxde")
638 (version (package-version lxde-common))
639 (source #f)
640 (build-system trivial-build-system)
e3cfef22 641 (arguments '(#:builder (begin (mkdir %output) #t)))
812c1819 642 (propagated-inputs
643 ;; TODO:
ed3a9ec5 644 ;; lxshortcut, lxsession-edit
812c1819 645 ;; lxappearance-obconf
646 `(("menu-cache" ,menu-cache)
ed3a9ec5 647 ("gpicview" ,gpicview)
8b1e572d 648 ("leafpad" ,leafpad)
812c1819 649 ("lxappearance" ,lxappearance)
650 ("lxde-icon-theme" ,lxde-icon-theme)
651 ("lxde-common" ,lxde-common)
652 ("lxmenu-data" ,lxmenu-data)
653 ("lxpanel" ,lxpanel)
654 ("lxrandr" ,lxrandr)
655 ("lxsession" ,lxsession)
656 ("libfm" ,libfm)
657 ("libfm-extra" ,libfm-extra)
658 ("lxtask" ,lxtask)
659 ("lxterminal" ,lxterminal)
660 ("pcmanfm" ,pcmanfm)
661 ("openbox" ,openbox)
662 ("obconf" ,obconf)))
663 (synopsis "Lightweight X11 Desktop Environment")
664 (description
665 "LXDE, which stands for Lightweight X11 Desktop Environment, is a
666desktop environment which is lightweight and fast. It is designed to be
667user friendly and slim, while keeping the resource usage low. LXDE uses
668less RAM and less CPU while being a feature rich desktop environment. Unlike
669other tightly integrated desktops LXDE strives to be modular, so each
670component can be used independently with few dependencies.")
f6ea0815 671 (home-page "https://lxde.github.io")
812c1819 672 (license license:gpl2+))) ; And others.
673
889e57f4 674;;; lxde.scm ends here