This is an old revision of the document!


Migrate from FLWM to LXDE

LXDE is a light-weight Desktop Environment based on the Window Manager OpenBox. It includes, among other things, a comfortable panel and a set of helper applications, the most prominent being its file manager PCManFM, terminal LXPanel and editor Leafpad.

The full of LXDE desktop environment does not work out of the box on dCore. For among other things, it contains session management tools which are unnecessary on dCore. The approach chosen here is to create a functionally equivalent set-up by adding the necessary tools from LXDE to a regular Openbox environment. A bonus will be that the mechanisms for dealing with *Core's OnDemand applications will work nicely.

Version

These instructions are known to work on …

  • dCore-bionic64 — sm8ps 2018/07/10

An older version with a focus towards a full integration of LXDE is available for dCore-trusty. — sm8ps 2015/07/21

Installing

We shall split the installation into two extensions. The base packages shall be loaded upon boot whereas additional tools shall be made available on demand. The distinction depends on personal taste and so one may want to include frequently used or even all packages into the base extensions.

Create a list file 'lxde-base-LIST', containing …

openbox
lxpanel
obconf

… and 'lxde-tools-LIST', containing (cf. https://packages.ubuntu.com/bionic/lxde for short descriptions) …

lxterminal
pcmanfm
gpicview
leafpad
arandr
clipit

Then sce-import these two extension lists, having the first one depend upon the X-server extension and the latter on the first. Include the entry “lxde-base-LIST” in 'tce/sceboot.lst' so as to have it loaded at boot-time.

In order to have LXPanel show, create a file '~/.X.d/lxde-base.sh', containing

#!/bin/sh
lxpanel &

Setting the desktop boot-code to “openbox” in your boot-loader will boot into a regular Openbox desktop with a LXPanel. The *Core main menu, containing the Ondemand sub-menu, is available through right-clicking on the desktop. There is another “start” menu available through LXPanel, also containing the System Tools sub-menu but not any other *Core-menu.

For the interaction with the *Core main menu, maximized windows must leave a tiny bit of the desktop visible. Launch “Openbox Configuration Manager” from the “System” menu and set the left margin to 1 pixel.

Usage

An entry in the OnDemand sub-menu will call the respective script under 'ondemand/' in the tce-folder; its default content being a call to ondemand -e for the selected extension. The file names may be chosen at will. Once loaded, the applications can be found in the Applications sub-menu as well as in the categorized sub-menus of the “start” menu in LXPanel.

Comment

The procedure for loading ondemand-applications may seem a bit round-about; however it is more convenient, indeed, than having to load them from the terminal. Of course, one would wish for a fully automated process.

Compatibility with FLWM

In case one has followed the instructions for setting up a basic desktop installation, a Wbar window will pop up and possibly Trayer will be running in the background. For the moment, use killall wbar trayer to get rid of them.

dCore runs any shell script under '~/.X.d/', among others the starter scripts for Wbar and Trayer. These scripts are unnecessary as Openbox provides the functionality by itself.

Either remove these scripts together with their respective extensions or wrap the respective commands with the following if-clause so that they do not get executed unless FLWM is used.

#!/bb/sh 
if [ $(cat /etc/sysconfig/desktop) = openbox ] 
then 
        <original script>
fi

If one wants to start a terminal by default then the following change in '~/.xinitrc' will work in both situations.

#xterm &
/etc/alternatives/x-terminal-emulator &

Special cases

Some applications do not work well with the default ondemand-script and complain that “neither freedesktop file nor wireless executable exists”. One notable such case is the wireless extension.

Edit the respective file under 'ondemand/' in the tce-folder and make it follow some working procedure. For the case mentioned, the following does work.

#!/bin/sh
sce-load wireless
cliorx sudo wifi.sh

LXPanel settings

By right-clicking on the panel, on gains access to the panel settings. From there, one may choose to add or remove panel items.

Log-out

The Logout entry in the “start” menu can be set to *Core's exit in the advanced settings to “/usr/local/bin/exittc”.

Localization

LXDE provides a comfortable tool for switching the keyboard layout by one of its panel items called Keyboard Layout Handler. (It is necessary to de-activate its setting “Keep system layouts” before one can configure additional keyboard layouts.)

Thus there is no need to manually call setxkbmap through a file under '~/.X.d/'. Such a file may be wrapped like above to restrict its action to the FLWM-desktop.

However, the file manager PCmanFM (or rather GTK as mentioned in the forum) needs to be explicitly told about filename encoding. Include the following into '~/.profile'.

export G_FILENAME_ENCODING=@locale

Resource monitor, LXTask

LXPanel provides a resource-monitor add-in which is quite useful by itself. Furthermore, its standard action upon clicking is to launch LXTask which give a quite complete over-view of running processes. It is installed through the lxtask package. Alternatively, one may simply want to link the clicking action to the System Stats entry from *Core's main menu. This is achieved by adding “/usr/local/bin/stats” in the settings.

Screen settings and external monitor

The built-in 'lxrandr' does not seem to work on all machines. Occasionally, it only proclaims its inability to find information about the monitor. Arandr is an even better substitute which can be imported and loaded without any issues. It installs an entry in the settings menu.

In case that Lxpanel should become invisible due to different monitor sizes, the main menu can still be accessed by pressing Ctrl+Esc.

If suspending to RAM or disk works then one may want to make it easily available through a panel button. For that matter, one must first create suitable menu entries after which it is a trivial task of adding them to the application starter containing already the exit button.

First, create the directory '~/.local/share/pixmaps/' and download a green and red variant of the original blue icon file for the exit button into it.

Then create two files ~/.local/share/applications/pm-{suspend,hibernate}.desktop with the following content, respectively. Adapt the path if a different user name applies. If applicable, one may want to use pm-suspend-hybrid instead of simple pm-suspend.

[Desktop Entry]
Name=Suspend
Exec=sudo pm-suspend
Icon=/home/tc/.local/share/pixmaps/exittc_red.png
Type=Application
Categories=System;
[Desktop Entry]
Name=Hibernate
Exec=sudo pm-hibernate
Icon=/home/tc/.local/share/pixmaps/exittc_green.png
Type=Application
Categories=System;

LXDE should automatically recognize the changes and show the new menu entries. If not so, then lxpanelctl restart will force the panel to re-read its configuration files.

Openbox settings

Print/export
QR Code
QR Code dcore:migrating_from_flwm_to_lxde (generated for current page)