675 lines
26 KiB
Scheme
675 lines
26 KiB
Scheme
;;; GNU Guix --- Functional package management for GNU
|
||
;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
|
||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||
;;; Copyright © 2017 Nikita <nikita@n0.is>
|
||
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
|
||
;;; Copyright © 2017 Brendan Tildesley <mail@brendan.scot>
|
||
;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
|
||
;;; Copyright © 2018 ison <ison@airmail.cc>
|
||
;;; Copyright © 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
||
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
|
||
;;; Copyright © 2019 Meiyo Peng <meiyo@riseup.net>
|
||
;;;
|
||
;;; This file is part of GNU Guix.
|
||
;;;
|
||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||
;;; under the terms of the GNU General Public License as published by
|
||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||
;;; your option) any later version.
|
||
;;;
|
||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
;;; GNU General Public License for more details.
|
||
;;;
|
||
;;; You should have received a copy of the GNU General Public License
|
||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||
|
||
(define-module (gnu packages lxde)
|
||
#:use-module (gnu packages)
|
||
#:use-module (gnu packages admin)
|
||
#:use-module (gnu packages autotools)
|
||
#:use-module (gnu packages base)
|
||
#:use-module (gnu packages bash)
|
||
#:use-module (gnu packages curl)
|
||
#:use-module (gnu packages disk)
|
||
#:use-module (gnu packages docbook)
|
||
#:use-module (gnu packages file-systems)
|
||
#:use-module (gnu packages freedesktop)
|
||
#:use-module (gnu packages gettext)
|
||
#:use-module (gnu packages glib)
|
||
#:use-module (gnu packages gnome)
|
||
#:use-module (gnu packages gtk)
|
||
#:use-module (gnu packages image-viewers)
|
||
#:use-module (gnu packages libusb)
|
||
#:use-module (gnu packages linux)
|
||
#:use-module (gnu packages lsof)
|
||
#:use-module (gnu packages openbox)
|
||
#:use-module (gnu packages pkg-config)
|
||
#:use-module (gnu packages polkit)
|
||
#:use-module (gnu packages text-editors)
|
||
#:use-module (gnu packages video)
|
||
#:use-module (gnu packages wget)
|
||
#:use-module (gnu packages wm)
|
||
#:use-module (gnu packages xdisorg)
|
||
#:use-module (gnu packages xml)
|
||
#:use-module (gnu packages xorg)
|
||
#:use-module (guix build-system glib-or-gtk)
|
||
#:use-module (guix build-system gnu)
|
||
#:use-module (guix build-system trivial)
|
||
#:use-module (guix download)
|
||
#:use-module (guix git-download)
|
||
#:use-module ((guix licenses) #:prefix license:)
|
||
#:use-module (guix packages)
|
||
#:use-module (guix utils))
|
||
|
||
(define-public libfm
|
||
(package
|
||
(name "libfm")
|
||
(version "1.3.2")
|
||
(source (origin
|
||
(method url-fetch)
|
||
(uri (string-append "mirror://sourceforge/pcmanfm/"
|
||
"PCManFM%20%2B%20Libfm%20%28tarball%20release"
|
||
"%29/LibFM/" name "-" version ".tar.xz"))
|
||
(sha256
|
||
(base32
|
||
"1rfira3lx8v6scz1aq69925j4vslpp36bmgrrzcfby2c60q2c155"))))
|
||
(build-system gnu-build-system)
|
||
(inputs `(("glib" ,glib)
|
||
("gtk+" ,gtk+-2)))
|
||
(native-inputs `(("intltool" ,intltool)
|
||
("glib" ,glib "bin") ; for gtester
|
||
("libtool" ,libtool)
|
||
("menu-cache" ,menu-cache)
|
||
("pkg-config" ,pkg-config)
|
||
("vala" ,vala)))
|
||
(synopsis "File management support (core library)")
|
||
(description "LibFM provides file management functions built on top of
|
||
Glib/GIO giving a higher-level API.")
|
||
(home-page "https://lxde.github.io")
|
||
(license license:gpl2+)))
|
||
|
||
(define-public libfm-extra
|
||
(package (inherit libfm)
|
||
(name "libfm-extra")
|
||
(arguments '(#:configure-flags '("--with-extra-only")))
|
||
(inputs `(("glib" ,glib)))
|
||
(native-inputs `(("intltool" ,intltool)
|
||
("libtool" ,libtool)
|
||
("pkg-config" ,pkg-config)))
|
||
(synopsis "File management support (extra library)")
|
||
(description "This package contains a stand-alone library which extends the
|
||
libFM file management library.")))
|
||
|
||
(define-public lxappearance
|
||
(package
|
||
(name "lxappearance")
|
||
(version "0.6.3")
|
||
(source
|
||
(origin
|
||
(method url-fetch)
|
||
(uri (string-append "mirror://sourceforge/lxde/"
|
||
"LXAppearance/lxappearance-" version ".tar.xz"))
|
||
(sha256
|
||
(base32 "0f4bjaamfxxdr9civvy55pa6vv9dx1hjs522gjbbgx7yp1cdh8kj"))))
|
||
(build-system gnu-build-system)
|
||
(inputs `(("gtk+" ,gtk+-2)))
|
||
(native-inputs `(("intltool" ,intltool)
|
||
("pkg-config" ,pkg-config)))
|
||
(synopsis "LXDE GTK+ theme switcher")
|
||
(description "LXAppearance is a desktop-independent GTK+ theme switcher
|
||
able to change themes, icons, and fonts used by GTK+ applications.")
|
||
(home-page "https://lxde.github.io")
|
||
(license license:gpl2+)))
|
||
|
||
(define-public lxrandr
|
||
(package
|
||
(name "lxrandr")
|
||
(version "0.3.2")
|
||
(source (origin
|
||
(method url-fetch)
|
||
(uri (string-append "mirror://sourceforge/lxde/LXRandR"
|
||
"%20%28monitor%20config%20tool%29/LXRandR%20"
|
||
(version-major+minor version) ".x/"
|
||
"lxrandr-" version ".tar.xz"))
|
||
(sha256
|
||
(base32
|
||
"04n3vgh3ix12p8jfs4w0dyfq3anbjy33h7g53wbbqqc0f74xyplb"))))
|
||
(build-system gnu-build-system)
|
||
(arguments
|
||
`(#:phases
|
||
(modify-phases %standard-phases
|
||
(add-after 'unpack 'xrandr-absolutely
|
||
;; lxrandr is useless without xrandr and gives an unhelpful error
|
||
;; message if it's not in $PATH, so make it a hard dependency.
|
||
(lambda* (#:key input #:allow-other-keys)
|
||
(substitute* "src/lxrandr.c"
|
||
(("(\"|')xrandr\"" _ match)
|
||
(string-append match (which "xrandr") "\"")))
|
||
#t)))))
|
||
(inputs `(("gtk+" ,gtk+-2)
|
||
("xrandr" ,xrandr)))
|
||
(native-inputs `(("intltool" ,intltool)
|
||
("pkg-config" ,pkg-config)))
|
||
(synopsis "LXDE monitor configuration tool")
|
||
(description "LXRandR is a very basic monitor configuration tool. It
|
||
relies on the X11 resize-and-rotate (RandR) extension but doesn't aim to be a
|
||
full frontend of it. LXRandR only gives you some easy and quick options which
|
||
are intuitive. It's suitable for laptop users who frequently uses projectors
|
||
or external monitor.")
|
||
(home-page "https://lxde.github.io")
|
||
(license license:gpl2+)))
|
||
|
||
(define-public lxtask
|
||
(package
|
||
(name "lxtask")
|
||
(version "0.1.10")
|
||
(source (origin
|
||
(method url-fetch)
|
||
(uri (string-append "mirror://sourceforge/lxde/LXTask"
|
||
"%20%28task%20manager%29/LXTask%20"
|
||
(version-major+minor version) ".x/"
|
||
"lxtask-" version ".tar.xz"))
|
||
(sha256
|
||
(base32
|
||
"0b2fxg8jjjpk219gh7qa18g45365598nd2bq7rrq0bdvqjdxy5i2"))))
|
||
(build-system gnu-build-system)
|
||
(inputs `(("gtk+" ,gtk+-2)))
|
||
(native-inputs `(("intltool" ,intltool)
|
||
("pkg-config" ,pkg-config)))
|
||
(synopsis "LXDE task manager")
|
||
(description "LXTask is a lightweight task manager derived from Xfce task
|
||
manager with all dependencies on Xfce removed. LXTask is based on the GTK+
|
||
toolkit. It allows users to monitor and control of running processes.")
|
||
(home-page "https://lxde.github.io")
|
||
(license license:gpl2+)))
|
||
|
||
(define-public lxterminal
|
||
(package
|
||
(name "lxterminal")
|
||
(version "0.3.2")
|
||
(source (origin
|
||
(method url-fetch)
|
||
(uri (string-append "mirror://sourceforge/lxde/LXTerminal"
|
||
"%20%28terminal%20emulator%29/LXTerminal%20"
|
||
version "/" name "-" version ".tar.xz"))
|
||
(sha256
|
||
(base32
|
||
"1124pghrhnx6q4391ri8nvi6bsmvbj1dx81an08mird8jf2b2rii"))))
|
||
(build-system gnu-build-system)
|
||
(inputs `(("gtk+" ,gtk+-2)
|
||
("vte" ,vte/gtk+-2)))
|
||
(native-inputs `(("intltool" ,intltool)
|
||
("pkg-config" ,pkg-config)))
|
||
(synopsis "LXDE terminal emulator")
|
||
(description "LXTerminal is a VTE-based terminal emulator. It supports
|
||
multiple tabs and has only minimal dependencies thus being completely
|
||
desktop-independent. In order to reduce memory usage and increase the
|
||
performance, all instances of the terminal are sharing a single process.")
|
||
(home-page "https://lxde.github.io")
|
||
(license license:gpl2+)))
|
||
|
||
(define-public menu-cache
|
||
(package
|
||
(name "menu-cache")
|
||
(version "1.1.0")
|
||
(source (origin
|
||
(method url-fetch)
|
||
(uri (string-append "mirror://sourceforge/lxde/" name "/"
|
||
(version-major+minor version) "/"
|
||
name "-" version ".tar.xz"))
|
||
(sha256
|
||
(base32
|
||
"1iry4zlpppww8qai2cw4zid4081hh7fz8nzsp5lqyffbkm2yn0pd"))))
|
||
(build-system gnu-build-system)
|
||
(inputs `(("glib" ,glib)
|
||
("libfm" ,libfm-extra)))
|
||
(native-inputs `(("pkg-config" ,pkg-config)))
|
||
(synopsis "LXDE implementation of the freedesktop menu's cache")
|
||
(description "Menu-cache is a library creating and utilizing caches to
|
||
speed up the access to freedesktop.org defined application menus.")
|
||
(home-page "https://lxde.github.io")
|
||
(license license:lgpl2.1+)))
|
||
|
||
(define-public pcmanfm
|
||
(package
|
||
(name "pcmanfm")
|
||
(version "1.3.2")
|
||
(source (origin
|
||
(method url-fetch)
|
||
(uri (string-append "mirror://sourceforge/pcmanfm/"
|
||
"PCManFM%20%2B%20Libfm%20%28tarball%20release"
|
||
"%29/PCManFM/pcmanfm-" version ".tar.xz"))
|
||
(sha256
|
||
(base32
|
||
"1xqc2k2jh165mm81xg0ghxx0ml1s3rhh4ndvbzkcri4kfhj7pjql"))))
|
||
(build-system gnu-build-system)
|
||
(inputs `(("gtk+" ,gtk+-2)
|
||
("gvfs" ,gvfs) ; for trash and mount support
|
||
("libfm" ,libfm)
|
||
("libx11" ,libx11)))
|
||
(native-inputs `(("intltool" ,intltool)
|
||
("libtool" ,libtool)
|
||
("pkg-config" ,pkg-config)))
|
||
(propagated-inputs
|
||
`(("lxmenu-data" ,lxmenu-data))) ; for "Open With..." application list
|
||
(synopsis "LXDE file manager")
|
||
(description "PCMan is a lightweight GTK+ based file manager, compliant
|
||
with freedesktop.org standard.")
|
||
(home-page "https://lxde.github.io")
|
||
(license license:gpl2+)))
|
||
|
||
(define-public spacefm
|
||
;; SpaceFM is based on PCManFM.
|
||
(package
|
||
(name "spacefm")
|
||
(version "1.0.6")
|
||
(source
|
||
(origin
|
||
(method git-fetch)
|
||
(uri
|
||
(git-reference
|
||
(url "https://github.com/IgnorantGuru/spacefm")
|
||
(commit version)))
|
||
(file-name (git-file-name name version))
|
||
(sha256
|
||
(base32 "193mdcv73cfc2bnm4bzmnf1wmkzgj1ya64y0lgyxn3ww36ghcsx9"))
|
||
(modules '((guix build utils)))
|
||
(snippet
|
||
'(begin
|
||
(substitute* "src/main.c"
|
||
(("#include <sys/types\\.h>" all)
|
||
;; Add missing include for 'major' and 'minor' with glibc
|
||
;; >= 2.28.
|
||
(string-append all "\n"
|
||
"#include <sys/sysmacros.h>\n")))
|
||
#t))))
|
||
(build-system glib-or-gtk-build-system)
|
||
(native-inputs
|
||
`(("desktop-file-utils" ,desktop-file-utils)
|
||
("glib:bin" ,glib "bin")
|
||
("gtk+:bin" ,gtk+ "bin")
|
||
("intltool" ,intltool)
|
||
("pkg-config" ,pkg-config)))
|
||
(inputs
|
||
`(("bash" ,bash)
|
||
("btrfs-progs" ,btrfs-progs)
|
||
("cairo" ,cairo)
|
||
("coreutils" ,coreutils)
|
||
("curlftpfs" ,curlftpfs)
|
||
("e2fsprogs" ,e2fsprogs)
|
||
("eudev" ,eudev)
|
||
("fakeroot" ,fakeroot)
|
||
("ffmpegthumbnailer" ,ffmpegthumbnailer)
|
||
("fsarchiver" ,fsarchiver)
|
||
("fuseiso" ,fuseiso)
|
||
("glib" ,glib)
|
||
("gphotofs" ,gphotofs)
|
||
("gtk+" ,gtk+)
|
||
("ifuse" ,ifuse)
|
||
("jmtpfs" ,jmtpfs)
|
||
("ktsuss" ,ktsuss)
|
||
("libx11" ,libx11)
|
||
("lsof" ,lsof)
|
||
("ntfs-3g" ,ntfs-3g)
|
||
("pango" ,pango)
|
||
("procps" ,procps)
|
||
("shared-mime-info" ,shared-mime-info)
|
||
("startup-notification" ,startup-notification)
|
||
("udevil" ,udevil)
|
||
("util-linux" ,util-linux)
|
||
("wget" ,wget)))
|
||
(arguments
|
||
`(#:phases
|
||
(modify-phases %standard-phases
|
||
(add-after 'unpack 'patch-bin-dirs
|
||
(lambda* (#:key inputs #:allow-other-keys)
|
||
(let* ((bash (assoc-ref inputs "bash"))
|
||
(coreutils (assoc-ref inputs "coreutils"))
|
||
(util-linux (assoc-ref inputs "util-linux"))
|
||
(procps (assoc-ref inputs "procps"))
|
||
(e2fsprogs (assoc-ref inputs "e2fsprogs"))
|
||
(btrfs-progs (assoc-ref inputs "btrfs-progs"))
|
||
(ntfs-3g (assoc-ref inputs "ntfs-3g"))
|
||
(lsof (assoc-ref inputs "lsof"))
|
||
(fsarchiver (assoc-ref inputs "fsarchiver"))
|
||
(ktsuss (assoc-ref inputs "ktsuss")))
|
||
(with-directory-excursion "src"
|
||
(substitute* '("ptk/ptk-file-task.c" "ptk/ptk-handler.h"
|
||
"ptk/ptk-location-view.c" "spacefm-auth"
|
||
"spacefm-auth.bash" "vfs/vfs-file-task.c"
|
||
"settings.c" "../data/ui/prefdlg.ui"
|
||
"../data/ui/prefdlg2.ui")
|
||
(("/bin/sh" file) (string-append bash file))
|
||
(("/bin/bash" file) (string-append bash file))
|
||
(("/bin/kill" file) (string-append coreutils file))
|
||
(("/bin/ls" file) (string-append coreutils file))
|
||
(("/usr(/bin/sha256sum)" _ file) (string-append coreutils file))
|
||
(("/usr(/bin/sha512sum)" _ file) (string-append coreutils file))
|
||
(("/sbin/fsck" file) (string-append util-linux file))
|
||
(("/sbin/mkfs" file) (string-append util-linux file))
|
||
(("/sbin/mkswap" file) (string-append util-linux file))
|
||
(("/bin/ps" file) (string-append procps file))
|
||
(("/sbin/tune2fs" file) (string-append e2fsprogs file))
|
||
(("/sbin/btrfs") (string-append btrfs-progs "/bin/btrfs"))
|
||
(("/sbin/ntfslabel" file) (string-append ntfs-3g file))
|
||
(("/usr(/bin/lsof)" _ file) (string-append lsof file))
|
||
(("(/usr)?/(sbin|bin)/fsarchiver") (string-append fsarchiver
|
||
"/sbin/fsarchiver"))
|
||
(("/usr(/bin/ktsuss)" _ file) (string-append ktsuss file))))
|
||
#t)))
|
||
(add-after 'patch-bin-dirs 'patch-share-dirs
|
||
(lambda* (#:key outputs #:allow-other-keys)
|
||
(let* ((out (assoc-ref outputs "out"))
|
||
(share (string-append out "/share")))
|
||
(with-directory-excursion "src"
|
||
(substitute* '("main-window.c" "settings.c"
|
||
"ptk/ptk-app-chooser.c")
|
||
(("/usr(/local)?/share") share)))
|
||
#t)))
|
||
(add-after 'patch-share-dirs 'patch-mime-dirs
|
||
(lambda* (#:key inputs #:allow-other-keys)
|
||
(let* ((mime (string-append (assoc-ref inputs "shared-mime-info")
|
||
"/share/mime")))
|
||
(with-directory-excursion "src"
|
||
(substitute* '("mime-type/mime-type.c" "ptk/ptk-file-menu.c")
|
||
(("/usr(/local)?/share/mime") mime)))
|
||
#t)))
|
||
(add-after 'patch-mime-dirs 'patch-setuid-progs
|
||
(lambda _
|
||
(let* ((su "/run/setuid-programs/su")
|
||
(mount "/run/setuid-programs/mount")
|
||
(umount "/run/setuid-programs/umount")
|
||
(udevil "/run/setuid-programs/udevil"))
|
||
(with-directory-excursion "src"
|
||
(substitute* '("settings.c" "settings.h" "vfs/vfs-file-task.c"
|
||
"vfs/vfs-volume-hal.c" "../data/ui/prefdlg.ui"
|
||
"../data/ui/prefdlg2.ui")
|
||
(("(/usr)?/bin/su") su)
|
||
(("/(bin|sbin)/mount") mount)
|
||
(("/(bin|sbin)/umount") umount)
|
||
(("/usr/bin/udevil") udevil)))
|
||
#t)))
|
||
(add-after 'patch-setuid-progs 'patch-spacefm-conf
|
||
(lambda* (#:key inputs #:allow-other-keys)
|
||
(substitute* "etc/spacefm.conf"
|
||
(("#terminal_su=/bin/su")
|
||
"terminal_su=/run/setuid-programs/su")
|
||
(("#graphical_su=/usr/bin/gksu")
|
||
(string-append "graphical_su="
|
||
(string-append (assoc-ref inputs "ktsuss")
|
||
"/bin/ktsuss"))))
|
||
#t)))
|
||
#:configure-flags (list
|
||
(string-append "--with-preferable-sudo="
|
||
(assoc-ref %build-inputs "ktsuss")
|
||
"/bin/ktsuss")
|
||
(string-append "--with-bash-path="
|
||
(assoc-ref %build-inputs "bash")
|
||
"/bin/bash")
|
||
(string-append "--sysconfdir="
|
||
(assoc-ref %outputs "out")
|
||
"/etc"))))
|
||
(home-page "https://ignorantguru.github.io/spacefm/")
|
||
(synopsis "Multi-panel tabbed file manager")
|
||
(description "SpaceFM is a graphical, multi-panel, tabbed file manager
|
||
based on PCManFM with built-in virtual file system, udev-based device manager,
|
||
customizable menu system, and Bash integration.")
|
||
|
||
;; The combination is GPLv3+ but src/exo is under LGPLv3+.
|
||
(license license:gpl3+)))
|
||
|
||
(define-public lxmenu-data
|
||
(package
|
||
(name "lxmenu-data")
|
||
(version "0.1.5")
|
||
(source
|
||
(origin
|
||
(method url-fetch)
|
||
(uri (string-append "https://downloads.sourceforge.net/lxde/"
|
||
name "-" version ".tar.xz"))
|
||
(sha256
|
||
(base32
|
||
"1f5sh2dvb3pdnjlcsyzq9543ck2jsqizkx3204cr22zm5s6j3qwz"))))
|
||
(build-system gnu-build-system)
|
||
(native-inputs
|
||
`(("pkg-config" ,pkg-config)
|
||
("intltool" ,intltool)))
|
||
(synopsis "Freedesktop.org desktop menus for LXDE")
|
||
(description
|
||
"Lxmenu-data provides files required to build freedesktop.org
|
||
menu spec-compliant desktop menus for LXDE.")
|
||
(home-page "https://lxde.github.io")
|
||
(license license:lgpl2.1+)))
|
||
|
||
(define-public lxde-icon-theme
|
||
(package
|
||
(name "lxde-icon-theme")
|
||
(version "0.5.1")
|
||
(source
|
||
(origin
|
||
(method url-fetch)
|
||
(uri (string-append "https://downloads.sourceforge.net/lxde/"
|
||
name "-" version ".tar.xz"))
|
||
(sha256
|
||
(base32
|
||
"0v4i6x86fr2hbx4fb2si7y2qzmj7h6hcjwaifnin18r8kwwvgl73"))))
|
||
(build-system gnu-build-system)
|
||
(native-inputs
|
||
`(("pkg-config" ,pkg-config)))
|
||
(synopsis "LXDE default icon theme based on nuoveXT2")
|
||
(description
|
||
"Lxde-icon-theme provides an default icon theme for LXDE.")
|
||
(home-page "https://lxde.github.io")
|
||
(license license:lgpl3)))
|
||
|
||
(define-public lxde-common
|
||
(package
|
||
(name "lxde-common")
|
||
(version "0.99.2")
|
||
(source
|
||
(origin
|
||
(method url-fetch)
|
||
(uri (string-append "https://downloads.sourceforge.net/lxde/"
|
||
name "-" version ".tar.xz"))
|
||
(sha256
|
||
(base32
|
||
"0mj84fa3f4ak1jjslrwc2q3ci9zxrxpciggviza9bjb0168brn8w"))))
|
||
(build-system gnu-build-system)
|
||
(arguments
|
||
'(#:phases (modify-phases %standard-phases
|
||
(add-before 'configure 'set-lxsession
|
||
(lambda* (#:key inputs #:allow-other-keys)
|
||
;; Set the right file name for 'lxsession'.
|
||
(let ((lxsession (assoc-ref inputs "lxsession")))
|
||
(substitute* "startlxde.in"
|
||
(("^exec .*/bin/lxsession")
|
||
(string-append "exec " lxsession
|
||
"/bin/lxsession")))
|
||
#t))))))
|
||
(native-inputs
|
||
`(("pkg-config" ,pkg-config)
|
||
("intltool" ,intltool)
|
||
("lxmenu-data" ,lxmenu-data)
|
||
("lxde-icon-theme" ,lxde-icon-theme)))
|
||
(inputs
|
||
`(("lxsession" ,lxsession)
|
||
;; ("lxlock" ,lxlock) ;for 'lxde-screenlock.desktop'
|
||
))
|
||
(synopsis "Common files of the LXDE Desktop")
|
||
(description
|
||
"Lxde-common provides common files of the LXDE Desktop.")
|
||
(home-page "https://lxde.github.io")
|
||
(license license:gpl2+)))
|
||
|
||
(define-public lxinput
|
||
(package
|
||
(name "lxinput")
|
||
(version "0.3.5")
|
||
(source
|
||
(origin
|
||
(method url-fetch)
|
||
(uri (string-append "https://downloads.sourceforge.net/lxde/"
|
||
name "-" version ".tar.xz"))
|
||
(sha256
|
||
(base32
|
||
"123f3yn4rp1w5b3n5aj3ad9snkxab29qkrs7bcvf5bx4cn57g3sf"))))
|
||
(build-system gnu-build-system)
|
||
(inputs
|
||
`(("gtk+-2" ,gtk+-2)))
|
||
(native-inputs
|
||
`(("pkg-config" ,pkg-config)
|
||
("intltool" ,intltool)))
|
||
(synopsis "Tool for mouse and keyboard configuration in LXDE")
|
||
(description
|
||
"Lxinput provides a small program to configure keyboard and mouse
|
||
in LXDE.")
|
||
(home-page "https://lxde.github.io")
|
||
(license license:gpl2+)))
|
||
|
||
(define-public lxsession
|
||
(package
|
||
(name "lxsession")
|
||
(version "0.5.5")
|
||
(source
|
||
(origin
|
||
(method url-fetch)
|
||
(uri (string-append "https://downloads.sourceforge.net/lxde/"
|
||
"lxsession-" version ".tar.xz"))
|
||
(sha256
|
||
(base32 "0imv9nysip1j9lrb2z96kl05isjgp312323wnnd5b59h0ff0sgp4"))
|
||
(modules '((guix build utils)))
|
||
(snippet
|
||
;; Remove C files generated by Vala so we can build from source.
|
||
'(let* ((c->vala
|
||
(lambda (file)
|
||
(string-append (string-drop-right file 2)
|
||
".vala")))
|
||
(generated-c-file?
|
||
(lambda (file stat)
|
||
(and (string-suffix? ".c" file)
|
||
(file-exists? (c->vala file))))))
|
||
(for-each delete-file
|
||
(find-files "." generated-c-file?))
|
||
#t))))
|
||
(build-system gnu-build-system)
|
||
(arguments
|
||
`(#:phases
|
||
(modify-phases %standard-phases
|
||
(add-after 'unpack 'rm-stamp
|
||
(lambda _
|
||
(for-each delete-file (find-files "." "\\.stamp$"))
|
||
;; Force regeneration of configure script.
|
||
(delete-file "configure")
|
||
#t)))))
|
||
(inputs
|
||
`(("gtk+-2" ,gtk+-2)
|
||
("polkit" ,polkit)))
|
||
(native-inputs
|
||
`(("pkg-config" ,pkg-config)
|
||
("intltool" ,intltool)
|
||
("docbook-xsl" ,docbook-xsl)
|
||
("vala" ,vala)
|
||
|
||
;; For bootstrapping.
|
||
("autoconf" ,autoconf)
|
||
("automake" ,automake)))
|
||
(synopsis "Lightweight X11 session manager")
|
||
(description
|
||
"Lxsession provides an lightweight X11 session manager.")
|
||
(home-page "https://lxde.github.io")
|
||
(license license:gpl2+)))
|
||
|
||
(define-public lxpanel
|
||
(package
|
||
(name "lxpanel")
|
||
(version "0.10.0")
|
||
(source
|
||
(origin
|
||
(method url-fetch)
|
||
(uri (string-append "https://downloads.sourceforge.net/lxde/"
|
||
"lxpanel-" version ".tar.xz"))
|
||
(sha256
|
||
(base32 "0zis3b815p375s6mymhf5sn1a0c1xv0ixxzb0mh3fqhrby6cqy26"))))
|
||
(build-system gnu-build-system)
|
||
(arguments
|
||
`(#:phases
|
||
(modify-phases %standard-phases
|
||
(add-after 'install 'wrap
|
||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||
(let ((out (assoc-ref outputs "out"))
|
||
(menu (assoc-ref inputs "lxmenu-data")))
|
||
(wrap-program (string-append out "/bin/lxpanel")
|
||
`("XDG_DATA_DIRS" ":" prefix
|
||
(,(string-append menu "/share"))))
|
||
#t))))))
|
||
(inputs
|
||
;; TODO: libindicator-0.3.0
|
||
`(("curl" ,curl)
|
||
("gtk+-2" ,gtk+-2)
|
||
("alsa-lib" ,alsa-lib)
|
||
("libwnck-2" ,libwnck-2)
|
||
("keybinder" ,keybinder)
|
||
("libxmu" ,libxmu)
|
||
("libxpm" ,libxpm)
|
||
("libxml2" ,libxml2)
|
||
("cairo" ,cairo)
|
||
("libx11" ,libx11)
|
||
("wireless-tools" ,wireless-tools)))
|
||
(native-inputs
|
||
`(("pkg-config" ,pkg-config)
|
||
("intltool" ,intltool)
|
||
("docbook-xml" ,docbook-xml)
|
||
("gettext-minimal" ,gettext-minimal)))
|
||
(propagated-inputs
|
||
`(("lxmenu-data" ,lxmenu-data)
|
||
("libfm" ,libfm)
|
||
("menu-cache" ,menu-cache)))
|
||
(synopsis "X11 Desktop panel for LXDE")
|
||
(description
|
||
"Lxpanel provides an X11 desktop panel for LXDE.")
|
||
(home-page "https://lxde.github.io")
|
||
(license license:gpl2+)))
|
||
|
||
(define-public lxde
|
||
(package
|
||
(name "lxde")
|
||
(version (package-version lxde-common))
|
||
(source #f)
|
||
(build-system trivial-build-system)
|
||
(arguments '(#:builder (begin (mkdir %output) #t)))
|
||
(propagated-inputs
|
||
;; TODO:
|
||
;; lxshortcut, lxsession-edit
|
||
;; lxappearance-obconf
|
||
`(("menu-cache" ,menu-cache)
|
||
("gpicview" ,gpicview)
|
||
("leafpad" ,leafpad)
|
||
("lxappearance" ,lxappearance)
|
||
("lxde-icon-theme" ,lxde-icon-theme)
|
||
("lxde-common" ,lxde-common)
|
||
("lxmenu-data" ,lxmenu-data)
|
||
("lxpanel" ,lxpanel)
|
||
("lxrandr" ,lxrandr)
|
||
("lxsession" ,lxsession)
|
||
("libfm" ,libfm)
|
||
("libfm-extra" ,libfm-extra)
|
||
("lxtask" ,lxtask)
|
||
("lxterminal" ,lxterminal)
|
||
("pcmanfm" ,pcmanfm)
|
||
("openbox" ,openbox)
|
||
("obconf" ,obconf)))
|
||
(synopsis "Lightweight X11 Desktop Environment")
|
||
(description
|
||
"LXDE, which stands for Lightweight X11 Desktop Environment, is a
|
||
desktop environment which is lightweight and fast. It is designed to be
|
||
user friendly and slim, while keeping the resource usage low. LXDE uses
|
||
less RAM and less CPU while being a feature rich desktop environment. Unlike
|
||
other tightly integrated desktops LXDE strives to be modular, so each
|
||
component can be used independently with few dependencies.")
|
||
(home-page "https://lxde.github.io")
|
||
(license license:gpl2+))) ; And others.
|
||
|
||
;;; lxde.scm ends here
|