PageRenderTime 26ms CodeModel.GetById 30ms RepoModel.GetById 0ms app.codeStats 0ms

/gnu/packages/lxde.scm

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