Skip to the content.

37. LXDE Desktop


LXDE is an extremely fast-performing and energy-saving desktop environment.

LXDE comes with a beautiful interface, multi-language support, standard keyboard shortcuts and additional features like tabbed file browsing. LXDE uses less CPU and less RAM than other environments. It is especially designed for cloud computers with low hardware specifications, such as netbooks, mobile devices (e.g. MIDs) or older computers.

Build LXDE core packages in the order presented in the book for the easiest resolution of dependencies.

37.1 lxmenu-data-0.1.5


Introduction to LXMenu Data

The LXMenu Data package provides files required to build freedesktop.org menu spec-compliant desktop menus for LXDE.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/lxmenu-data

Installation of LXMenu Data

Install LXMenu Data by running the following commands:

./configure --prefix=/usr --sysconfdir=/etc &&
make

This package does not come with a test suite.

Now, as the root user:

make install

Contents

Installed Programs: None

Installed Libraries: None

Installed Directories: /etc/xdg/menus and /usr/share/desktop-directories.

37.2 libfm-extra-1.3.2


Introduction to libfm-extra

The libfm-extra package contains a library and other files required by menu-cache-gen libexec of menu-cache-1.1.0.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

libfm-extra Dependencies

Required

GLib-2.74.5

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libfm-extra

Installation of libfm-extra

Install libfm-extra by running the following commands:

./configure --prefix=/usr     \
            --sysconfdir=/etc \
            --with-extra-only \
            --with-gtk=no     \
            --disable-static  &&
make

This package does not come with a test suite.

Now, as the root user:

make install

Command Explanations

--with-extra-only: This switch disables all components except for the libfm-extra library.

--with-gtk=no: This switch disables support for GTK+ because it is not necessary for this package.

--disable-static: This switch prevents installation of static versions of the libraries.

Contents

Installed Programs: None

Installed Library: libfm-extra.so

Installed Directories: /usr/include/libfm (symlink) and /usr/include/libfm-1.0

Short Descriptions

libfm-extra.so contains the libfm-extra API functions.

37.3 menu-cache-1.1.0


Introduction to Menu Cache

The Menu Cache package contains a library for creating and utilizing caches to speed up the manipulation for freedesktop.org defined application menus.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

Additional Downloads

Required

libfm-extra-1.3.2

Optional

GTK-Doc-1.33.2 and xdg-utils-1.1.3

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/menu-cache

Installation of Menu Cache

First fix a memory leak and “multiple definitions” issues:

patch -Np1 -i ../menu-cache-1.1.0-consolidated_fixes-1.patch

Install Menu Cache by running the following commands:

./configure --prefix=/usr    \
            --disable-static &&
make

This package does not come with a test suite.

Now, as the root user:

make install

Command Explanations

--disable-static: This switch prevents installation of static versions of the libraries.

--enable-gtk-doc: Use this option if GTK-Doc is installed and you wish to build and install the API documentation.

Contents

Installed Programs: None

Installed Library: libmenu-cache.so

Installed Directories: /usr/{include,libexec,share/gtk-doc/html}/menu-cache

Short Descriptions

libmenu-cache.so contains the menu-cache API functions.

37.4 libfm-1.3.2


Introduction to libfm

The libfm package contains a library used to develop file managers providing some file management utilities.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

libfm Dependencies

Required

GTK+-2.24.33 or GTK+-3.24.36 (GTK+-2 recommended since LXDE GTK+-3 support is still experimental), and menu-cache-1.1.0

libexif-0.6.24, Vala-0.56.4, and lxmenu-data-0.1.5

Optional

GTK-Doc-1.33.2, dbus-glib-0.112 and Gvfs-1.50.3 or udisks (for volume management - experimental)

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libfm

Installation of libfm

Install libfm by running the following commands:

./configure --prefix=/usr     \
            --sysconfdir=/etc \
            --disable-static  &&
make

To test the results, issue: make check.

Now, as the root user:

make install

Command Explanations

--with-gtk=3: This option selects the version of gtk+ to use. The default is gtk+-2.

--disable-static: This switch prevents installation of static versions of the libraries.

--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild and install the API documentation.

Contents

Installed Program: libfm-pref-apps and lxshortcut

Installed Libraries: libfm.so, libfm-extra.so and libfm-gtk.so

Installed Directories: /etc/xdg/libfm, /usr/lib/libfm, /usr/share/gtk-doc/html/libfm and /usr/share/libfm

Short Descriptions

libfm-pref-apps sets preferred applications for programs based on libfm

lxshortcut is a small program used to edit application shortcuts

libfm.so contains the libfm API functions.

37.5 PCManFM-1.3.2


Introduction to PCManFM

The PCManFM package contains an extremely fast, lightweight, yet feature-rich file manager with tabbed browsing.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

PCManFM Dependencies

Required

libfm-1.3.2

adwaita-icon-theme-43 or oxygen-icons5-5.103.0 or lxde-icon-theme-0.5.1, and FriBidi-1.0.12

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/pcmanfm

Installation of PCManFM

Install PCManFM by running the following commands:

./configure --prefix=/usr     \
            --sysconfdir=/etc &&
make

This package does not come with a test suite.

Now, as the root user:

make install

Command Explanations

--with-gtk=3: Selects the version of GTK+ to use. You must use this switch if you have built libfm-1.3.2 with GTK+3 support.

Contents

Installed Program: pcmanfm

Installed Libraries: None

Installed Directories: /etc/xdg/pcmanfm, /usr/lib/pcmanfm and /usr/share/pcmanfm

Short Descriptions

pcmanfm is a lightweight GTK+ based file manager for X Window System.

37.6 libwnck-2.30.7


Introduction to libwnck

The libwnck package contains a Window Navigator Construction Kit.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

libwnck Dependencies

Required

GTK+-2.24.33

startup-notification-0.12

Optional

gobject-introspection-1.74.0 and GTK-Doc-1.33.2

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libwnck2

Installation of libwnck

Install libwnck by running the following commands:

./configure --prefix=/usr \
            --disable-static \
            --program-suffix=-1 &&
make GETTEXT_PACKAGE=libwnck-1

This package does not come with a test suite.

Now, as the root user:

make GETTEXT_PACKAGE=libwnck-1 install

Command Explanations

--disable-static: This switch prevents installation of static versions of the libraries.

--program-suffix=-1: This option adds -1 to the end of the names of the installed programs to avoid overwriting the programs installed by libwnck-43.0.

GETTEXT_PACKAGE=libwnck-1: This parameter adds -1 to the end of the names of the gettext files installed by the package to avoid overwriting the files installed by libwnck-43.0.

--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild and install the API documentation.

Contents

Installed Programs: wnckprop-1 and wnck-urgency-monitor-1

Installed Library: libwnck-1.so

Installed Directories: /usr/include/libwnck-1.0 and /usr/share/gtk-doc/html/libwnck-1.0

Short Descriptions

wnckprop-1 Prints, modifies, or interacts with the properties of a screen/workspace/window

libwnck-1.so contains functions for writing pagers and task lists.

37.7 LXPanel-0.10.1


Introduction to LXPanel

The LXPanel package contains a lightweight X11 desktop panel.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

LXPanel Dependencies

Required

gdk-pixbuf-xlib-2.40.2, keybinder-0.3.1, libwnck-2.30.7, lxmenu-data-0.1.5 and menu-cache-1.1.0

alsa-lib-1.2.8, gnome-screenshot-41.0 (to take screenshots using PrtScr), libxml2-2.10.3 (weather plugin), and Wireless Tools-29

Optional

libindicator (indicator plugin)

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/lxpanel

Installation of LXPanel

Install LXPanel by running the following commands:

./configure --prefix=/usr &&
make

This package does not come with a test suite.

Now, as the root user:

make install

Contents

Installed Programs: lxpanel and lxpanelctl

Installed Libraries: liblxpanel.so and several under /usr/lib/lxpanel/plugins

Installed Directories: /etc/xdg/lxpanel, /usr/include/lxpanel, /usr/lib/lxpanel, and /usr/share/lxpanel

Short Descriptions

lxpanel is a lightweight GTK+ based panel for the LXDE Desktop

lxpanelctl is a program that controls lxpanel.

37.8 LXAppearance-0.6.3


Introduction to LXAppearance

The LXAppearance package contains a desktop-independent theme switcher for GTK+.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

LXAppearance Dependencies

Required

GTK+-2.24.33

dbus-glib-0.112

Optional

libxslt-1.1.37 with docbook-xml-4.5 and docbook-xsl-nons-1.79.2 (to build man pages)

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/lxappearance

Installation of LXAppearance

Install LXAppearance by running the following commands:

./configure --prefix=/usr     \
            --sysconfdir=/etc \
            --enable-dbus     &&
make

This package does not come with a test suite.

Now, as the root user:

make install

Command Explanations

--enable-dbus: This switch enables DBus support in LXAppearance which is useful for communicating with LXSession. Remove it if you are not building LXDE or have not installed dbus-glib-0.112.

--enable-man: Use this switch if you have installed optional dependencies and wish to rebuild the manual pages.

Contents

Installed Program: lxappearance

Installed Libraries: None

Installed Directories: /usr/include/lxappearance and /usr/share/lxappearance

Short Descriptions

lxappearance is a program used to change GTK+ themes, icon themes, and fonts used by applications.

37.9 LXSession-0.5.5


Introduction to LXSession

The LXSession package contains the default session manager for LXDE.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

LXSession Dependencies

Required

dbus-glib-0.112, libunique-1.1.6, Polkit-122, and Vala-0.56.4

Optional

lsb-tools-0.10 (may be used at runtime to display the distribution release in the logout dialog), GTK+-3.24.36, and libxslt-1.1.37 with docbook-xml-4.5 and docbook-xsl-nons-1.79.2 (to build man pages)

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/lxsession

Installation of LXSession

Install LXSession by running the following commands:

./configure --prefix=/usr --disable-man &&
make

This package does not come with a test suite.

Now, as the root user:

make install

Command Explanations

--disable-man: This switch disables building of the manual pages. Remove it if you have installed optional dependencies and wish to build the manual pages.

--enable-gtk3: Builds against GTK+-3 instead of GTK+-2, which is required anyway by libunique.

Contents

Installed Programs: lxclipboard, lxlock, lxpolkit, lxsession, lxsession-db, lxsession-default, lxsession-default-apps, lxsession-default-terminal, lxsession-edit, lxsession-logout, lxsession-xdg-autostart, lxsession-xsettings, and lxsettings-daemon

Installed Libraries: None

Installed Directory: /usr/share/lxsession

Short Descriptions

lxclipboard is a clipboard utility for LXSession and LXDE

lxlock locks the local X display until a password is entered

lxpolkit is a polkit agent

lxsession is a lightweight X session manager

lxsession-db is used to modify the database for managing sessions in lxsession

lxsession-default launch default applications set by LXsession

lxsession-default-apps is an utility to configure lxsession and its default applications

lxsession-default-terminal launch the default terminal set by LXSession

lxsession-edit is the standard session edit manager used by LXDE

lxsession-logout is a program to logout from LXSession

lxsession-xdg-autostart handles the autostart spec of freedesktop.org

lxsession-xsettings is a tool to configure gtk+ themes, keyboard, and mouse for you on session startup

lxsettings-daemon is the settings daemon for LXsession.

37.10 lxde-common-0.99.2


Introduction to LXDE Common

The LXDE Common package provides a set of default configuration for LXDE.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

LXDE Common Dependencies

Required

lxde-icon-theme-0.5.1, LXPanel-0.10.1, LXSession-0.5.5, openbox-3.6.1 (runtime), and PCManFM-1.3.2

desktop-file-utils-0.26, hicolor-icon-theme-0.17, and shared-mime-info-2.2

Optional Runtime Dependencies

A notification daemon such as notification-daemon-3.20.0 or xfce4-notifyd-0.8.1, and a display manager such as lxdm-0.5.3 or lightdm-1.32.0

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/lxde-common

Installation of LXDE Common

Install LXDE Common by running the following commands:

./configure --prefix=/usr --sysconfdir=/etc &&
make

This package does not come with a test suite.

Now, as the root user:

make install

If you have installed recommended dependencies, run the following commands as the root user:

update-mime-database /usr/share/mime &&
gtk-update-icon-cache -qf /usr/share/icons/hicolor &&
update-desktop-database -q

Starting LXDE

You can start LXDE from runlevel 3, using xinit-1.4.2, or from runlevel 5, using a Display Manager, such as lxdm-0.5.3.

To start LXDE using xinit-1.4.2, run the following commands:

cat > ~/.xinitrc << "EOF"
# No need to run dbus-launch, since it is run by startlxde
startlxde
EOF

startx

The X session starts on the first unused virtual terminal, normally vt7. You can switch to another vt_n_ simultaneously pressing the keys Ctrl-Alt-F_n_ (n=1, 2, …). To switch back to the X session, normally started at vt7, use Ctrl-Alt-F7. The vt where the command startx was executed will display many messages, including X starting messages, applications automatically started with the session, and eventually, some warning and error messages. You may prefer to redirect those messages to a log file, which not only will keep the initial vt uncluttered, but can also be used for debug purposes. This can be done starting X with:

startx &> ~/.x-session-errors

When shutting down or rebooting, the shutdown messages appear on the vt where X was running. If you wish to see those messages, simultaneously press keys Alt-F7 (assuming that X was running on vt7).

Contents

Installed Programs: lxde-logout, openbox-lxde and startlxde

Installed Libraries: None

Installed Directories: /etc/xdg/{lxpanel,lxsession,openbox,pcmanfm}/LXDE and /usr/share/lxde

Short Descriptions

lxde-logout is used to quit the desktop session for LXDE

openbox-lxde is a wrapper script which runs Openbox with LXDE specific config file

startlxde is used to start the desktop session for LXDE.