Both sides previous revisionPrevious revisionNext revision | Previous revision |
dcore:migrating_from_flwm_to_lxde [2018/07/14 12:51] – WIP sm8ps | dcore:migrating_from_flwm_to_lxde [2018/07/15 17:30] (current) – +[quick shutdown button] sm8ps |
---|
====== Migrate from FLWM to LXDE ====== | ====== Migrate from FLWM to LXDE ====== |
| |
FIXME This page is being over-hauled as of 20180710 with a slightly changed focus. | [[http://en.wikipedia.org/wiki/LXDE|LXDE]] is a light-weight [[http://en.wikipedia.org/wiki/Desktop_environment|Desktop Environment]] based on the Window Manager [[http://en.wikipedia.org/wiki/Openbox|OpenBox]]. It includes, among other things, a comfortable panel and a set of [[https://en.wikipedia.org/wiki/LXDE#Software_components_of_LXDE|helper applications]], the most prominent being its file manager [[http://en.wikipedia.org/wiki/PCManFM|PCManFM]], terminal LXPanel and editor [[http://en.wikipedia.org/wiki/Leafpad|Leafpad]]. |
| |
[[http://en.wikipedia.org/wiki/LXDE|LXDE]] is a [[http://en.wikipedia.org/wiki/Desktop_environment|Desktop Environment]] based on the [[http://en.wikipedia.org/wiki/Openbox|OpenBox]] Window Manager. It includes, among other things, a comfortable panel and a set of helper applications, the most prominent being it's file manager [[http://en.wikipedia.org/wiki/PCManFM|PCManFM]] and editor [[http://en.wikipedia.org/wiki/Leafpad|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. |
| |
The full of LXDE desktop environment does not work out of the box on dCore. 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 OnDemand applications will work nicely with dCore. | |
| |
===== Version ===== | ===== Version ===== |
| |
These instructions are known to work on ... | These instructions are known to work on ... |
* dCore-bionic64 --- //[[sm8ps-tcl1@yahoo.com|sm8ps]] 2018/07/10// | * dCore-bionic64 --- //[[sm8ps-tcl1@yahoo.com|sm8ps]] 2018/07/10// |
| |
Older version are available for ... | An older version with a focus towards a full integration of LXDE is available for [[http://wiki.tinycorelinux.net/dcore:migrating_from_flwm_to_lxde?rev=1531215558|dCore-trusty]]. --- //[[sm8ps-tcl1@yahoo.com|sm8ps]] 2015/07/21// |
* [[http://wiki.tinycorelinux.net/dcore:migrating_from_flwm_to_lxde?rev=1531215558|dCore-trusty]] --- //[[sm8ps-tcl1@yahoo.com|sm8ps]] 2015/07/21// | |
| |
=====Installing===== | =====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. Optionally, the selection of tools may be split in two separate extensions. | 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. |
| |
For Ubuntu, create a list file 'lxde-base-LIST', containing | Create a list file 'lxde-base-LIST', containing ... |
<code> | <code> |
openbox | openbox |
</code> | </code> |
| |
and 'lxde-tools-LIST', containing (cf. [[https://packages.ubuntu.com/bionic/lxde]] for short descriptions) | ... and 'lxde-tools-LIST', containing (cf. [[https://packages.ubuntu.com/bionic/lxde]] for short descriptions) ... |
<code> | <code> |
lxterminal | lxterminal |
gpicview | gpicview |
leafpad | leafpad |
lxrandr | arandr |
clipit | clipit |
</code> | </code> |
| |
Then ''sce-import'' these two extension lists, having the first one depend upon the X-server extension and the latter on the first. Make sure that the entry "lxde-base-LIST" is present in 'tce/sceboot.lst'. | 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 | In order to have LXPanel show, create a file '~/.X.d/lxde-base.sh', containing |
</code> | </code> |
| |
=====Menus===== | Setting the ''desktop'' boot-code to "openbox" in your boot-loader will boot into a regular Openbox desktop with a LXPanel. |
FIXME: WIP --- //[[sm8ps-tcl1@yahoo.com|sm8ps]] 2018/07/14 09:51// | |
| |
Setting the ''desktop'' boot-code to "openbox" in your boot-loader will boot into a regular Openbox desktop with a LXPanel. It will remain empty but upon right-click, the familiar *Core-menu will show up through which one can reboot. | ===== Menus ===== |
| |
| 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 ondemand menus, maximized windows must leave a tiny bit of the desktop visible. Right-clicking on the desktop, select "Openbox Configuration Manager" from the "System" menu and set the left margin to 1 pixel. Reboot and be greeted by Openbox with a shiny LXPanel. | 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 menu entries correspond to the file names which may be chosen at will. Loaded applications can be found in the Applications sub-menu as well as in the categorized sub-menus of the "start" menu in LXPanel. |
| |
=====Compatibility tweaks===== | ===Comment=== |
| |
There are several steps necessary in order to make Openbox visible and provide the demanded mechanisms. | 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 [[dcore:contributing|wish]] for a fully automated process. |
| |
====Openbox-menu==== | ==== Accessing the menus via keyboard ==== |
| |
The main menu contains settings for the desktop whose extended section allows for having the menu of the window manager show upon (right-)clicking the desktop. This is the key for making ondemand-applications available through Openbox. | It is useful to have access to either menu via a keyboard short-cut. This is especially helpful in case that LXPanel should become invisible due to different monitor sizes. |
| |
In its standard setting, that menu does not contain much. Its content is defined in the file '~/.config/openbox/lxde-rc.xml'. Search for <nowiki>"<file>"</nowiki> to find the line where the menu-file is included. | |
| |
| Add the following to the ''<keyboard>''-section of '~/.config/openbox/rc.xml': |
<code> | <code> |
<file>/usr/share/lxde/openbox/menu.xml</file> | <keybind key="C-Escape"> |
| <action name="ShowMenu"> |
| <menu>root-menu</menu> |
| </action> |
| </keybind> |
| <keybind key="C-F1"> |
| <action name="Execute"> |
| <command>lxpanelctl menu</command> |
| </action> |
| </keybind> |
</code> | </code> |
Replace that line by the following, including the *Core-menus that have been set up by Openbox. | This will bind Ctrl-Escape to the Openbox main menu and Ctrl-F1 the "start" menu of LXPanel. |
| |
<code> | |
<file>/usr/local/tce.openbox.xml</file> | |
<file>ondemand.xml</file> | |
<file>system-tools.xml</file> | |
<file>menu.xml</file> | |
</code> | |
Take note that the //order// of these entries //matters// as far as 'menu.xml' must be the last one! | |
| |
==== Re-booting ==== | |
The *Core exit menu is available via the LXPanel menu under System Tools. Alternatively it can be reached by right-clicking the desktop which opens the Openbox menu. | |
| |
====Compatibility with FLWM==== | ===== Compatibility with FLWM ===== |
| |
In case one has followed the [[dcore:basic_desktop_installation|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. | In case one has followed the [[dcore:basic_desktop_installation|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. |
/etc/alternatives/x-terminal-emulator & | /etc/alternatives/x-terminal-emulator & |
</code> | </code> |
| |
| |
| |
====Usage==== | |
| |
After selecting **Reconfigure Openbox** from the Openbox-menu for a first time, it will show a sub-menu for ondemand-applications afterwards. Selecting any one of them will run the respective script under 'ondemand/' in the tce-folder; its default content being a call to ''ondemand -e'' for the selected extension. | |
| |
For that matter it may be useful to reserve one pixel at some border in order to always have the desktop available even when a window is maximized. This can be set through the Openbox configuration manager from the settings menu. | |
| |
The menu does //not// show all installed applications; instead, the list of loaded application will show in the main LXDE-menu which will dynamically update. | |
| |
In principle, it should be possible to have the Openbox-menu also show the full list of applications (cf. an [[http://pclosmag.com/html/Issues/201310/page10.html|article]] from the [[http://pclosmag.com/index.html|PCLinuxOS magazine]]) but this is beyond our scope here. | |
| |
| |
===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 like for Openbox itself. | |
| |
| |
===Special cases=== | ===Special cases=== |
</code> | </code> |
| |
===Menu entries=== | ===== LXPanel settings ===== |
| |
The names of the ondemand-menu entries are taken from the file names under 'ondemand/' which may be chosen at will. | By right-clicking on the panel, on gains access to the panel settings. From there, one may choose to add, remove or configure panel items. |
| |
| ==== Log-out ==== |
| |
====Exit button==== | The Logout entry in the "start" menu can be set to *Core's exit in the advanced settings to "/usr/local/bin/exittc". |
| |
The button for log-out provided by LXDE should be replaced by the exit button by *Core. The LXDE log-out dialogue will remain available through the main LXDE-menu. | |
| |
*Right-click on the taskbar and choose to add or remove panel items. | |
*Add an application launch bar and edit its content to be the exit-command from the system tools menu. | |
| |
One probably wants to delete the application launch bar containing the screen-lock and LXDE-exit buttons. | |
| |
====Localization==== | ====Localization==== |
export G_FILENAME_ENCODING=@locale | export G_FILENAME_ENCODING=@locale |
</code> | </code> |
=====Further settings===== | |
| |
Some sporadic notes about useful settings for the LXDE-desktop. | ==== Resource monitor, LXTask ==== |
| |
==== LXDE-settings ==== | 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 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. |
The [[http://lxlinux.com|LXDE-Openbox Guide]] is a pretty useful reference for many scenarios. | |
| |
==== Openbox settings ==== | ==== LXPanel menu entries and buttons for suspending to RAM or disk ==== |
Since LXDE is based on Openbox, it may be helpful to consider the [[https://urukrama.wordpress.com/openbox-guide|Openbox guide]] by urukrama. | |
| |
| If [[dcore:suspending|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. |
| |
====Function keys==== | First, create the directory '~/.local/share/pixmaps/' and download a [[http://wiki.tinycorelinux.net/_media/dcore:exittc_green.png|green]] and [[http://wiki.tinycorelinux.net/_media/dcore:exittc_red.png|red]] variant of the original blue icon file for the exit button into it. |
| |
LXDE intercepts ''F11'' before any application and interprets it as command to maximize and un-decorate the window. It is more common to have this function key interpreted by the application itself. | |
| |
The key binding can be changed in '~/.config/openbox/lxde-rc.xml'. Unfortunately the respective section comes as quite an unordered muddle which makes XML particularly hard to read. Nevertheless, the following will lay the binding to Ctrl+Shift+F11 instead. (Searching for "ToggleFullscreen" will get you to the right place.) | |
| |
<code> | |
<keybind key="C-S-F11"><action name="ToggleFullscreen"/></keybind> | |
</code> | |
| |
==== Resource monitor, LXTask ==== | |
The LXDE-panel 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. | |
==== 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. [[http://christian.amsuess.com/tools/arandr/|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. | |
| |
==== Menu entries and panel buttons for suspending to RAM or disk ==== | |
If [[dcore:suspending|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 [[dcore:migrating_from_flwm_to_lxde#exit_button|exit button]]. | |
| |
First, create the directory '~/.local/share/pixmaps/' and download a [[http://wiki.tinycorelinux.net/_media/dcore:exittc_green.png|green]] and [[http://wiki.tinycorelinux.net/_media/dcore:exittc_green.png|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''. | 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''. |
Categories=System;</code> | Categories=System;</code> |
| |
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. | LXPanel 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. |
| |
| Afterwards, it is a trivial task of adding an application starter to the LXPanel items with these menu entries. |
| |
| ==== LXPanel button for quick shutdown with automatic backup ==== |
| |
| In the same light, one may want to creat a blue exit button in the panel that performs a backup of 'mydata.tgz' and shuts the machine down. |
| |
| First, create an //executable// file '~/.local/bin/backup-exittc.sh' with the following content: |
| <code> |
| #!/bin/sh |
| filetool.sh -b |
| exitcheck.sh shutdown |
| </code> |
| |
| Then create a menu entry via '~/.local/share/applications/backup-exittc.desktop', again adapting the path to the home folder if applicable. |
| <code> |
| [Desktop Entry] |
| Name=Exit w/ Backup |
| Exec=/home/tc/.local/bin/backup-exittc.sh |
| Icon=/usr/local/share/pixmaps/exittc.png |
| Type=Application |
| Categories=System; |
| </code> |
| |
| Finally, add the menu entry to the application launcher in LXPanel. |
| ===== Openbox settings ===== |
| |
| It may be helpful to consider one of the many Openbox guides available over the internet. As usual, the [[https://wiki.archlinux.org/index.php/openbox|Arch Wiki]] features a very complete over-view. |
| |
==== Disabling the scroll wheel switching desktops ==== | ==== Disabling the scroll wheel switching desktops ==== |
Although strictly speaking an issue of Openbox, this quick guide is included here nevertheless. Scrolling on the desktop with either mouse wheel or (inadvertedly) the touchpad is interpreted as a command to switch desktops. This can be changed by commenting out (enclose by ''<!--'' and ''-->'') or deleting the following lines from the section <context name="Desktop"> of '~/.config/openbox/lxde-rc.xml'. | |
| Scrolling on the desktop with either mouse wheel or (inadvertedly) the touchpad is interpreted as a command to switch desktops. This can be changed by commenting out (enclose by ''<!--'' and ''-->'') or deleting the following lines from the section <context name="Desktop"> of '~/.config/openbox/lxde-rc.xml'. |
<code> | <code> |
<mousebind button="Up" action="Click"> | <mousebind button="Up" action="Click"> |