Subject: lxde patches
From: ng0 <[email-masked]>
To: [email-masked]
Date: Sat, 25 Mar 2017 00:24:48 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

This adds LXDE.

One application, possibly[*] lxsession or lxpanel, has a mistake[1], the
rest is supposedly functional, builds without obvious mistakes.
Some can be used independent from the bigger picture LXDE desktop, like
it was designed by LXDE project.

I appreciate ideas how or even people taking initiative to fix the mistake
in the way for an functional LXDE desktop.

*: possibly, from memory at least 5+ weeks since I've debugged this
1: in execution/running, not the build
From bfd68a76a391610dfdf62caaf975818bc6d665f7 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Mon, 23 Jan 2017 15:42:45 +0000
Subject: [PATCH 1/8] gnu: Add lxmenu-data.

* gnu/packages/lxde.scm (lxmenu-data): New variable.
---
 gnu/packages/lxde.scm | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/gnu/packages/lxde.scm b/gnu/packages/lxde.scm
index e8db6271f..ea150ffc3 100644
--- a/gnu/packages/lxde.scm
+++ b/gnu/packages/lxde.scm
@@ -219,4 +219,27 @@ with freedesktop.org standard.")
     (home-page "http://lxde.org")
     (license license:gpl2+)))
 
+(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 "http://lxde.org")
+    (license license:lgpl2.1+)))
+
 ;;; lxde.scm ends here
-- 
2.12.1

From fd5983bde2d9650715023f4bd35c07f46424be31 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Mon, 23 Jan 2017 15:53:08 +0000
Subject: [PATCH 2/8] gnu: Add lxde-icon-theme.

* gnu/packages/lxde.scm (lxde-icon-theme): New variable.
---
 gnu/packages/lxde.scm | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/gnu/packages/lxde.scm b/gnu/packages/lxde.scm
index ea150ffc3..9a4fe7596 100644
--- a/gnu/packages/lxde.scm
+++ b/gnu/packages/lxde.scm
@@ -242,4 +242,25 @@ menu spec-compliant desktop menus for LXDE.")
     (home-page "http://lxde.org")
     (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 "http://lxde.org")
+    (license license:lgpl3)))
+
 ;;; lxde.scm ends here
-- 
2.12.1

From 6f415357c251f3ce16164e20d4d878420c39d42a Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Mon, 23 Jan 2017 15:59:47 +0000
Subject: [PATCH 3/8] gnu: Add lxde-common.

* gnu/packages/lxde.scm (lxde-common): New variable.
---
 gnu/packages/lxde.scm | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/lxde.scm b/gnu/packages/lxde.scm
index 9a4fe7596..6862784f4 100644
--- a/gnu/packages/lxde.scm
+++ b/gnu/packages/lxde.scm
@@ -263,4 +263,28 @@ menu spec-compliant desktop menus for LXDE.")
     (home-page "http://lxde.org")
     (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)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("intltool" ,intltool)
+       ("lxmenu-data" ,lxmenu-data)
+       ("lxde-icon-theme" ,lxde-icon-theme)))
+    (synopsis "Common files of the LXDE Desktop")
+    (description
+     "Lxde-common provides common files of the LXDE Desktop.")
+    (home-page "http://lxde.org")
+    (license license:gpl2+)))
+
 ;;; lxde.scm ends here
-- 
2.12.1

From df35b511e790c90a8a64605a6f53283692cd2f75 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Mon, 23 Jan 2017 16:10:15 +0000
Subject: [PATCH 4/8] gnu: Add lxinput.

* gnu/packages/lxde.scm (lxinput): New variable.
---
 gnu/packages/lxde.scm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/lxde.scm b/gnu/packages/lxde.scm
index 6862784f4..1a3cfab0b 100644
--- a/gnu/packages/lxde.scm
+++ b/gnu/packages/lxde.scm
@@ -287,4 +287,29 @@ menu spec-compliant desktop menus for LXDE.")
     (home-page "http://lxde.org")
     (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 "http://lxde.org")
+    (license license:gpl2+)))
+
 ;;; lxde.scm ends here
-- 
2.12.1

From 10053ad57a7f2f89890155fa35959cbc82445f93 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Mon, 23 Jan 2017 16:39:12 +0000
Subject: [PATCH 5/8] gnu: Add lxsession.

* gnu/packages/lxde.scm (lxsession): New variable.
* gnu/packages/patches/lxsession-use-gapplication.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
---
 gnu/local.mk                                       |   1 +
 gnu/packages/lxde.scm                              |  42 ++++++
 .../patches/lxsession-use-gapplication.patch       | 152 +++++++++++++++++++++
 3 files changed, 195 insertions(+)
 create mode 100644 gnu/packages/patches/lxsession-use-gapplication.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 0bb2276a2..bca173ad8 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -748,6 +748,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/luajit-symlinks.patch			\
   %D%/packages/patches/luit-posix.patch				\
   %D%/packages/patches/lvm2-static-link.patch			\
+  %D%/packages/patches/lxsession-use-gapplication.patch         \
   %D%/packages/patches/make-impure-dirs.patch			\
   %D%/packages/patches/mars-install.patch			\
   %D%/packages/patches/mars-sfml-2.3.patch			\
diff --git a/gnu/packages/lxde.scm b/gnu/packages/lxde.scm
index 1a3cfab0b..87f96493c 100644
--- a/gnu/packages/lxde.scm
+++ b/gnu/packages/lxde.scm
@@ -19,11 +19,14 @@
 ;;; 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 autotools)
+  #:use-module (gnu packages docbook)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages polkit)
   #:use-module (gnu packages xorg)
   #:use-module (guix build-system gnu)
   #:use-module (guix download)
@@ -312,4 +315,43 @@ in LXDE.")
     (home-page "http://lxde.org")
     (license license:gpl2+)))
 
+(define-public lxsession
+  (package
+    (name "lxsession")
+    (version "0.5.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://downloads.sourceforge.net/lxde/"
+                           name "-" version ".tar.xz"))
+       (patches (search-patches "lxsession-use-gapplication.patch"))
+       (sha256
+        (base32
+         "1a0zmyywwzdh59nc0l94cir18vhp633z4q2xfhn5zx11ajj45gwh"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'rm-stamp
+           (lambda _
+             (for-each delete-file (find-files "." "\\.stamp$"))))
+         (add-after 'rm-stamp 'autoreconf
+           (lambda _
+             (zero? (system* "autoreconf" "-vfi")))))))
+    (inputs
+     `(("gtk+-2" ,gtk+-2)
+       ("polkit" ,polkit)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("intltool" ,intltool)
+       ("docbook-xsl" ,docbook-xsl)
+       ("vala" ,vala)
+       ("autoconf" ,autoconf)
+       ("automake" ,automake)))
+    (synopsis "Lightweight X11 session manager")
+    (description
+     "Lxsession provides an lightweight X11 session manager.")
+    (home-page "http://lxde.org")
+    (license license:gpl2+)))
+
 ;;; lxde.scm ends here
diff --git a/gnu/packages/patches/lxsession-use-gapplication.patch b/gnu/packages/patches/lxsession-use-gapplication.patch
new file mode 100644
index 000000000..3f2269a42
--- /dev/null
+++ b/gnu/packages/patches/lxsession-use-gapplication.patch
@@ -0,0 +1,152 @@
+Upstream patch to remove libunique dependency, and use glib >= 2.28.0
+to handle unique apps both for GTK+ 2 and 3.
+https://sourceforge.net/p/lxde/patches/539/
+
+
+From a7d3b40a79a7a16c1f5d50d2bd466570258dae29 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ball=C3=B3=20Gy=C3=B6rgy?= <[email-masked]>
+Date: Sun, 22 Jan 2017 01:09:59 +0100
+Subject: [PATCH] Use GApplication for unique app handling
+
+Remove libunique dependency, and use glib >= 2.28.0 to handle unique apps both for GTK+ 2 and 3.
+---
+ Makefile.am           |  6 ------
+ configure.ac          |  7 +------
+ lxclipboard/main.vala | 16 +---------------
+ lxpolkit/main.vala    | 16 +---------------
+ 4 files changed, 3 insertions(+), 42 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index c2e1fe8..e3a3b97 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -90,9 +90,6 @@ if USE_GTK3
+ lxclipboard_lxclipboard_VALAFLAGS += --define USE_GTK3
+ else
+ lxclipboard_lxclipboard_VALAFLAGS += --define USE_GTK2
+-lxclipboard_lxclipboard_VALAFLAGS += --pkg unique-1.0
+-lxclipboard_lxclipboard_CPPFLAGS += $(UNIQUE_CFLAGS)
+-lxclipboard_lxclipboard_LDADD += $(UNIQUE_LIBS)
+ endif
+ 
+ lxpolkit_lxpolkit_vala_SOURCES = \
+@@ -137,9 +134,6 @@ if USE_GTK3
+ lxpolkit_lxpolkit_VALAFLAGS += --define USE_GTK3
+ else
+ lxpolkit_lxpolkit_VALAFLAGS += --define USE_GTK2
+-lxpolkit_lxpolkit_VALAFLAGS += --pkg unique-1.0
+-lxpolkit_lxpolkit_CPPFLAGS += $(UNIQUE_CFLAGS)
+-lxpolkit_lxpolkit_LDADD += $(UNIQUE_LIBS)
+ endif
+ 
+ lxsession_db_lxsession_db_SOURCES = \
+diff --git a/configure.ac b/configure.ac
+index 06ddbb3..9126f4d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -45,7 +45,7 @@ PKG_CHECK_MODULES(X11, [x11])
+ AC_SUBST(X11_CFLAGS)
+ AC_SUBST(X11_LIBS)
+ 
+-PKG_CHECK_MODULES(GLIB, [glib-2.0 >= 2.6.0])
++PKG_CHECK_MODULES(GLIB, [glib-2.0 >= 2.28.0])
+ AC_SUBST(GLIB_CFLAGS)
+ AC_SUBST(GLIB_LIBS)
+ 
+@@ -79,11 +79,6 @@ else
+     CFLAGS="$CFLAGS -D USE_GTK2"
+     gtk_modules="gtk+-2.0 >= 2.6.0"
+     VALA_GTK_LIBS="gtk+-2.0"
+-
+-    PKG_CHECK_MODULES(UNIQUE, [unique-1.0])
+-    AC_SUBST(UNIQUE_CFLAGS)
+-    AC_SUBST(UNIQUE_LIBS)
+-
+   fi
+   PKG_CHECK_MODULES(GTK, [$gtk_modules])
+   AC_SUBST(GTK_CFLAGS)
+diff --git a/lxclipboard/main.vala b/lxclipboard/main.vala
+index bee4044..3d4a8d7 100644
+--- a/lxclipboard/main.vala
++++ b/lxclipboard/main.vala
+@@ -17,9 +17,6 @@
+  *      MA 02110-1301, USA.
+  */
+ using Gtk;
+-#if USE_GTK2
+-using Unique;
+-#endif
+ 
+ namespace Lxsession
+ {
+@@ -28,17 +25,7 @@ namespace Lxsession
+         public static int main(string[] args)
+         {
+             Gtk.init (ref args);
+-#if USE_GTK2
+-            Unique.App app = new Unique.App("org.lxde.lxclipboard", null);
+-
+-            if(app.is_running)
+-            {
+-                message("lxclipboard is already running. Existing");
+-                return 0;
+-            }
+-#endif
+-# if USE_GTK3
+-            Gtk.Application app = new Gtk.Application (
++            GLib.Application app = new GLib.Application (
+                 "org.lxde.lxclipboard",
+                 GLib.ApplicationFlags.FLAGS_NONE);
+             app.register ();
+@@ -48,7 +35,6 @@ namespace Lxsession
+                 message("lxclipboard is already running. Existing");
+                 return 0;
+             }
+-#endif
+ 
+             clipboard_start ();
+ 
+diff --git a/lxpolkit/main.vala b/lxpolkit/main.vala
+index c0d6ae2..50c3cb7 100644
+--- a/lxpolkit/main.vala
++++ b/lxpolkit/main.vala
+@@ -17,9 +17,6 @@
+  *      MA 02110-1301, USA.
+  */
+ using Gtk;
+-#if USE_GTK2
+-using Unique;
+-#endif
+ 
+ const string GETTEXT_PACKAGE = "lxsession";
+ 
+@@ -33,17 +30,7 @@ namespace Lxsession
+             Intl.bind_textdomain_codeset(GETTEXT_PACKAGE, "utf-8");
+ 
+             Gtk.init (ref args);
+-#if USE_GTK2
+-            Unique.App app = new Unique.App("org.lxde.lxpolkit", null);
+-
+-            if(app.is_running)
+-            {
+-                message(_("lxpolkit is already running. Existing"));
+-                return 0;
+-            }
+-#endif
+-# if USE_GTK3
+-            Gtk.Application app = new Gtk.Application (
++            GLib.Application app = new GLib.Application (
+                 "org.lxde.lxpolkit",
+                 GLib.ApplicationFlags.FLAGS_NONE);
+             app.register ();
+@@ -53,7 +40,6 @@ namespace Lxsession
+                 message(_("lxpolkit is already running. Existing"));
+                 return 0;
+             }
+-#endif
+ 
+             policykit_agent_init();
+ 
+-- 
+2.11.0
+
-- 
2.12.1

From fa606c4390ab83e09a413a1606b856fa58824470 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Mon, 23 Jan 2017 17:02:49 +0000
Subject: [PATCH 6/8] gnu: Add keybinder.

* gnu/packages/wm.scm (keybinder): New variable.
---
 gnu/packages/wm.scm | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index b95f2e7a6..d758f264a 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -645,3 +645,32 @@ all of them.  Currently supported window managers include:
 @end enumerate\n")
     (home-page "http://menumaker.sourceforge.net/")
     (license license:bsd-2)))
+
+(define-public keybinder
+  (package
+    (name "keybinder")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/engla/keybinder/releases/"
+                           "download/v" version "/keybinder-"
+                           version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0h52hj3ay8mfhwvmfxbxlfyq74hifdk8wxgxp7fr4iy6189hg7w7"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("python-2" ,python-2)
+       ("gtk+-2" ,gtk+-2)))
+    (native-inputs
+     `(("python2-pygtk" ,python2-pygtk)
+       ("gtk-doc" ,gtk-doc)
+       ("pkg-config" ,pkg-config)))
+    (synopsis "Library for registering global keyboard shortcuts")
+    (description
+     "Keybinder is a library for registering global keyboard shortcuts.
+Keybinder works with GTK-based applications using the X Window System.")
+    (home-page "https://github.com/engla/keybinder")
+    (license license:gpl2+)))
-- 
2.12.1

From d47af969984c7595d1ffc00ebe855d46e64158b3 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Mon, 23 Jan 2017 17:29:29 +0000
Subject: [PATCH 7/8] gnu: Add lxpanel.

* gnu/packages/lxde.scm (lxpanel): New variable.
---
 gnu/packages/lxde.scm | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 55 insertions(+)

diff --git a/gnu/packages/lxde.scm b/gnu/packages/lxde.scm
index 87f96493c..08fafa237 100644
--- a/gnu/packages/lxde.scm
+++ b/gnu/packages/lxde.scm
@@ -22,11 +22,15 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages docbook)
+  #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages linux)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages polkit)
+  #:use-module (gnu packages wm)
+  #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
   #:use-module (guix build-system gnu)
   #:use-module (guix download)
@@ -354,4 +358,55 @@ in LXDE.")
     (home-page "http://lxde.org")
     (license license:gpl2+)))
 
+(define-public lxpanel
+  (package
+    (name "lxpanel")
+    (version "0.9.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://downloads.sourceforge.net/lxde/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "1ccgv7jgl3y865cpb6w7baaz7468fxncm83bqxlwyni5bwhglb1l"))))
+    (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
+     `(("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 "http://lxde.org")
+    (license license:gpl2+)))
+
 ;;; lxde.scm ends here
-- 
2.12.1

From 8c78f8439ef3baafc4ca1b09f937eb7c7c2f3fb3 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Mon, 23 Jan 2017 17:44:50 +0000
Subject: [PATCH 8/8] gnu: Add lxde.

* gnu/packages/lxde.scm (lxde): New variable.
---
 gnu/packages/lxde.scm | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/gnu/packages/lxde.scm b/gnu/packages/lxde.scm
index 08fafa237..084426371 100644
--- a/gnu/packages/lxde.scm
+++ b/gnu/packages/lxde.scm
@@ -27,12 +27,14 @@
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages openbox)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages polkit)
   #:use-module (gnu packages wm)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system trivial)
   #:use-module (guix download)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
@@ -409,4 +411,41 @@ in LXDE.")
     (home-page "http://lxde.org")
     (license license:gpl2+)))
 
+(define-public lxde
+  (package
+    (name "lxde")
+    (version (package-version lxde-common))
+    (source #f)
+    (build-system trivial-build-system)
+    (arguments '(#:builder (mkdir %output)))
+    (propagated-inputs
+     ;; TODO:
+     ;; lxshortcut, lxsession-edit, gpicview, leafpad,
+     ;; lxappearance-obconf
+     `(("menu-cache" ,menu-cache)
+       ("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.org")
+    (license license:gpl2+))) ; And others.
+
 ;;; lxde.scm ends here
-- 
2.12.1