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