1. Introduction 2. Web Browsers & File Browser
3. Desktop & Screensavers 4. Panels & Autostart
5. Wallpaper, Rotator & Wallpaper Geometry 6. Installing Handbrake
7. Installing Oracle-Java 8. Installing Lxmed & Lxmenuman
9. Menu Categories & MyStuff 10. Wine, Wine Programs and Skype
11. Desktop and Panel Links, Bash Script Launchers 12. Autologin, Password and Name Changes
13. Xdotool & Launching Terminal Apps 14. Dual Monitors
15. Recording Audio 16. Network Sharing, Printers & Wireless
17. Samba Home Network Sharing 18. Setting Up an FTP Home Computer Network
19. Keyboards, Keybindings & Touchpad 20. Spliters, Joiners, Converters and PDF Editing
21. Preferred Applications & Installation Tips 22. Java Based Apps
23. Recovering Grub 24. Recovering Open-as-Root in Pcmanfm
25. Xfce4-Openbox 26. Menu, Menu, Menu

1. Introduction

Beginner's Guide
After Installing Openbox
Alternatives & Galternative
Wallpaper Changer
Arachnophilia HTML
Araneae HTML Editor
FastStone Image Editor
Image Magick
MyStuff Menu
Openbox Menu
Openbox Dock
Openbox Dynamical Menu
Openbox Themes
PhotoFiltre Editor
Poor Mans Radio Player
Terminal Apps
Wbar Dock
LXDE stands for Lightweight X11 Desktop Environment, and its main component is the Openbox Window Manager. They are by design a lightweight, no frills, computer-friendly, user-friendly general desktop control system for a variety of operating system. They are not designed to be powerful and bloated, but to be usable and slim and to keep the resource usage low. Different from other desktop environments, LXDE doesn't tightly integrate every component. Instead, LXDE tried to make all components independent, so that each of them can be used independently with fewer dependencies. It is basic, and rather primitive by comparison to the slick and bigger desktops. But don't be fooled by the lightweight characterization. LXDE can do everything the bigger distributions do. It is mostly a matter of personal preference. Do you want to spend time removing bloat from a heavy distribution, or add just what you want to a lightweight one? You want plasmoids, fancy multi-dimensional drop-down menus, rotating cubes, etc, just add them. Do you want your computer to be a tool or a toy? Although I sometimes treat it as a toy, I really want it, first and foremost, to be a tool. I want it to conveniently and quickly launch and shutdown the maximum possible number of applications (software) possible, and to flawlessly run these applications. The role of the desktop and its associated companions, the file browser and windows manager, is to supply the tools that do the launching and shutting down. This is where LXDE delivers. It is simple to adjust, offers a broad range of operations and performs quickly. You click on something and BAM there it is, no waiting. LXDE is the most stable of the Linux desktops in my experience. Things that work today will work the same way tomorrow. Finally, don't be fooled by the "conventional propaganda" that the LXDE desktop is only for old computers with lack-luster hardware. Others cry out, "our modern computers are so powerful, it doesn't matter," whenever you mention system requirements these days. The fact remains though - it does matter. A desktop that runs fast on a slow system will fly on a quick system. Resources should be there for your applications to use, not for your desktop environment to eat up. I put LXDE or just Openbox on all my computers, some of which have 8 GB of memory and none of which has a CPU under 2 GHz, because it is the best desktop tool available for performance, and it is reliable, too. See the chart on the right for a recent 2013 memory useage comparison test for the main Linux desktops and window managers.

The core LXDE system consists of only 6 packages (sudo apt-get install lxde-core):

In addition to lxde-core, most stock lxde linux distributions come with some, if not all, of the following 14 applications:

These, along with lxde-core, can be installed by installing the lxde meta package: (sudo apt-get install lxde). Once installed the lxde meta-box can be removed without disturbing any of the applications: (sudo apt-get remove lxde). Each package is designed to perform a special function and is essentially independent of the other packages, which makes configuring, removing, re-installing and substituting very easy. The only component really sacred to having in effect an lxde-desktop is the Openbox window manager. So, any of the other components can be replaced by corresponding components from other desktops, or just removed without disrupting much. This is the great beauty of an LXDE-Openbox distribution. A user can add, subtract, combine, experiment with different packages without drastically messing up the system. I usually install a basic openbox distribution like Sparky Linux Openbox, and then build on that to get exactly what I like, without having to remove a lot of things that I don't like. See Favorites Sparky Linux. If you already have installed a Debian based distribution (like Ubuntu, Mint, Crunchbang, etc) and your desire is to have all the lxde core components, then you can download and install directly with gdebi or dpkg the appropriate Debian lxde-core package (wheezy, jessie, sid). After lxde-core is installed, then log-out and back-in, choosing lxde or lxsession, when asked. Configure your lxde desktop as outlined in this guide, and add and remove applications as desired. If dpkg is installed, then you can find out if a given application, say appxyz is installed by running the following in the terminal:

   dpkg -s appxyz.

If apt-get or synaptic wants to drag along a lot of extra packages when all you want is a simple substitution, then, as root, add the following to /etc/apt/apt.conf:

    APT::Install-Recommends "0";
   APT::Install-Suggests "0"; .

If you do not have an apt.conf, then create one with your text editor. This will prevent apt-get or synaptic from installing recommended and suggested packages.

The chain of command in an LXDE desktop is the display manager starts the session manager, and then the session manager starts the windows manager and panel: lxdm>lxsession>(openbox + lxpanel). All of this is done according to a well specified and widely implemented standard protocol. The main function of this website is to compile in one place all the tools and tricks that have crossed my path since I switched from Windows to Linux-Openbox several years ago. We will also try to describe in simple language how the pieces work.


2. Web Browsers & File Browser

The Linux internet browser situation has recently (2014-15) got complicated with the advent of several new, modern, fast browsers, and the inability of the old, classical browsers like firefox and iceweasel to adapt to new changes, especially with regard to playing flash videos. One categorization of browsers is by their rendering engine. There are many rendering or display engines, but 3 stand out for Linux systems: gecko, webkit or qtwebkit, and blink. Some of the modern browsers associated with each of these engines are the following:

Experts seem to think that the blink engine, if not weighted down with too many add-ons, is the fastest. Browser preference is often a matter of personal taste; my preference is based upon workability, stability and speed. I use primarily SRWare Iron or Maxthon.

For add-ons (extensions - not all are free) to blink driven browsers, visit the Google webstore. To correct the narrow scrollbar in some versions, consider the "zig-scroll-bar-pure-css" extension.

Qupzilla and Slimboat are fast QtWebKit browsers, which means that they are a good choice if you already have at least part of the qt-platform installed. They generally require about 60 MiB of Qt-libraries to install on the average Debian-based platform, which is not that heavy for a good browser.

Pcmanfm (1.2.0+) has been greatly improved in the last year and is definitely my file manager of choice. To configure Pcmanfm, go to Edit>Preferences and make your choices. Some useful pcmanfm features and constructs:

If Pcmanfm isn't performing perfectly, he can be relaunched by putting the following in the terminal:   pcmanfm --desktop --profile=LXDE.   See Section 5 below for information on using or not using pcmanfm to control wallpaper, and Section 24 for an additional enhancement.


3. Desktop

There are 3 installed GUI's (Graphical User Interfaces) for customizing the desktop, excluding panels and wallpaper: Recommended customizations:

Now, the right-click-an-empty-spot brings up a new, small application menu, the Openbox Menu (see photo on the right, which is after an edit. To really get a useful Openbox Menu, you will need to reconfigure ~/.config/openbox/menu.xml. Be sure to save a copy of the original version in case you have to return to it. Put all the applications and sub-menus that you want in your new menu.xml. Enter applications according to the pattern in the picture on the upper-left. Put the icons of .png type associated with your apps into /usr/share/icons and make those addresses the icon enties. For an expanded discussion of the Openbox Root Menu and associated sub-menus, see Openbox Menu. When finished, put the modified menu.xml into    ~/.config/openbox    and make sure you ("me") own it and it is executable:

   sudo chown me ~/.config/openbox/menu.xml      sudo chmod a+x ~/.config/openbox/menu.xml .

After you are sure your configured menu works, you can replace /etc/xdg/openbox/menu.xml with it to have it apply to all users.

Next, edit, if necessary, the rc.xml or lxde-rc.xml, whichever is present, in ~/.config/openbox/ so that the line following <menu> is


While the rc.xml or lxde-rc.xml are open, edit their keybinding parts as illustrated by the picture on the left. Keybindings can be created for at least 52 applications from just the "W-x" and "A-x" combinations, where x is any of the 26 letters in the alphabet, W symbolizes the super key and A symbolizes the alt key.

Use icons of the .png type as .svg icons don't always work. By the way, there is nothing sacred about the bloated, repetitive dull icon sets included in distro installs. Get a nice image editor like PhotoFiltre and create your own. I keep a special icon directory in my network storage just for LXDE installs. One of the first things that I do to a new install is copy this set of icons to /usr/share/icons, and then use them as needed. Most distributions appear to have icons stored in numerous directories. One particular bountiful one in some distributions is /usr/share/app-install/icons. See section 20 below for others. Also, I usually install and use the delta-icon-theme to add a little color to my home directory and directory folders in general.

Once I create a menu.xml (and rc.xml) I save it on an external drive so it is always available to quickly replace the ones in a new install. See Openbox Menu for an expanded discussion about the Openbox Menu and an expanded template of menu.xml showing all the useful things that can be included.

There are 3 files associated with each screensaver:

   .desktop file    |   in /usr/share/applications/screensavers/
   .xml file           |    in /usr/share/xscreensaver/config/
   exec file          |    in /usr/lib/xscreensaver/.

A good space saver is to remove (as root) these 3 files for each screensaver that you do not like, which will be probably almost all of those in a typical LXDE installation. The exec file is the heavy part. A screensaver set with more screensavers to my liking is xscreensaver-data-extra. After I install this set and any other set that may have something in it that I like, I go to a menu (Preferences>Screensavers) and view and record the ones I like, which is probably less than 10% of the total. I then drag (as root) the execs of my favorites to an empty directory, say ~/temp, after which I delete the total contents of the exec screensaver directory:

   sudo rm -r /usr/lib/xscreensaver/*.

Then I move my favorites back:

   sudo mv ~/temp/* /usr/lib/xscreensaver/.

Now, screensaver viewing is always an enjoyable experience. You can do the same with the desktop and xml directories identified above, but so little space is gained that it is not really worth the bother. Top

4. Panels & Autostart

Right click anywhere on an open space in an lxpanel (the default after the install is usually for just a bottom panel) to get a menu for that panel. Choosing Panel Preferences brings up 4 categories - Geometry, Appearance, Panel Applets, Advanced - for editing. Here you can change the panel geometry, appearance and applets. The Advanced category offers the choice of hiding the panel and/or allowing windows to cover an unhidden panel (uncheck the two boxes in Properties). Clicking Add-Remove also brings up a menu to add applets and one to add any application launcher in the panel. To add applications, click Add>Application Launch Bar>Add, which will bring up a second box and put an empty spot on the right side of the Panel. In this second box choose the application you wish to add to the panel, click it, then click add. For example, if you want to add Firefox, click the + sign by Internet and a list with Firefox appears. Click Firefox>add. Continue this procedure with each application that you want in this group. Applications are added in groups, because an empty space on the panel is generally obtained only between groups and not between applications in the same group, However, even the latter can be achieved by just adding an Application Launch Bar without specifying an Application. So you should decide ahead which applications you want on the taskbar and how you want them grouped. All the application groups, other stuff and spaces can be ordered by highlighting and using the up and down arrows. You will notice the icon for a new applications will always first appear on the right side of the panel. Highliting it in the main list and repeated clicking up will move the app's icon on the panel to the left. Clicking down will move it to the right. For more details and pictures of these procedures, see Configuring LXPanel.

Occassionally people have had the lxpanel misbehave (freeze, disappear, ...), especially when compiz is installed and multiple instances of libre office are open. In such instances, lxpanel can be generally relaunched by putting the following into the terminal:

   lxpanelctl restart,

or by recalling it with a keyboard combination, provided you set that up as described above. A third remedy can be constructed by adding a lxpanel launcher to the Openbox menu as described in Section 3 above. Use

   <execute>lxpanelctl restart</execute>.

Another reasonable solution to a misbehaving lxpanel is to replace it with another panel. There exist a variety of lightweight panels that work well in an Openbox desktop. Two of my favorites are tint2 ((1011 kb) and fbpanel (570 kb). The first image below is primarily a tint2 panel and the second one is an fbpanel. See the page links for more information on these panels.

xfce4-tint2 panel

Autostart files in an LXDE desktop and/or Openbox can be located in at least 5 places, depending upon the distro. These are


The first three are text files that are edited by adding text according to some format, and the last two are directories containing .desktop files for the processes that are to be started. If the lxde-core desktop is installed, then the lxde-autostart usually takes precedence in the command order. In an openbox-only distribution with no session-manager, generally ~/.config/ rules. The two autostart files in the user's home directory (~/) only apply to that user; the 3 in the etc directory apply to all users.


5. Wallpaper, Rotator & Wallpaper Geometry

In a traditional set-up wallpaper can be changed by terminal launching a wallpaper GUI:

   pcmanfm --desktop-pref,

or by directly editing the .conf files in ~/.config/pcmanfm/LXDE/. The default wallpaper folders depend upon the distribution and are generally /usr/share/backgrounds or /usr/share/lxde/wallpapers.

Any image of a decent size (resolution) can be used as wallpaper. Wallpaper pictures look best if their size mimics the screen resolution. For example, if your resolution is 1680x1050, then only use pictures 1680 pixels wide and 1050 pixels high. To use, without stretching at least one of the dimensions, photos whose dimension proportions are not 1680 to 1050, first change the photo size, maintaining dimension proportion, so that either the width is 1680 and the height is less than 1050, or the height is 1050 and the width is less than 1680. Then center your photo on a colorful 1680x1050 canvas, and the result is set to go as wallpaper. All this can be easily accomplished by using a simple photo editor like PhotoFiltre Editor, which has the exact tool (Tools>Automate Batch) needed to resize and canvas batches of images. PhotoFiltre saves your settings, and thereafter, resizing and canvassing takes about 1 second per image to do a batch.

It is nice to have an easy way to change the wallpaper, or to have it automatically change on a set time interval. Pcmanfm is not built to change individual wallpapers on multiple monitors, and is not always reliable as a tool in rotation scripts. There are several ways and better tools in the Linux world for handling wallpaper. My favorite is to use a lightweight program named nitrogen (See the image on the upper-right.). If you have two monitors, nitrogen has the ability to put different images on each monitor - images from any folder on your computer. Or if an image is appropriate, for example, a panorama or joined-pair, it can be set-up across both monitors. The images displayed in the nitrogen illustration are for the "Full Screen" in an extended desktop set-up. See Section 14 below for the tecnicalities of setting up dual monitors as an extended desktop.

If you have lxsession (part of the lxde desktop) installed, then you probably have to edit it's autostart file, ~/.config/lxsession/LXDE/autostart, so that the line starting with "pcmanfm" is replaced by the following two lines:

    @pcmanfm --desktop-off --profile LXDE
    @ nitrogen --restore.

This passes the wallpaper control from pcmanfm to nitrogen.

#! /bin/bash

ALIST=( `ls -w1 $WALLPAPERS` )
let "number = $RANDOM"
let LASTNUM="`cat $WALLPAPERS/.last` + $number"
let "number = $LASTNUM % $RANGE"
echo $number > $WALLPAPERS/.last
nitrogen --set-scaled --save $WALLPAPERS/${ALIST[$number]}
Nitrogen can be also used to create a simple changer and/or an automatic rotator. Copy and paste the script in the box on the right into your text editor, name it, and save it to any sub-directory, say ~/bin, of your home directory. Be sure it is executable (right-click>Properties>Permissions>Access content>"choose appropriately"). Anytime you want to change wallpaper, execute this file by left clicking it. It will randomly choose an image from the directory designated in the file (~/wallpapers) as your new wallpaper. If you have a Conky installed, then add the line

   ${execi 240 ~/bin/}

anywhere in the text part of ~/.conkyrc. Conky will then rotate your wallpaper every 240 seconds. You can change the 240 number to any number (of seconds) that you desire.


6. Installing Handbrake

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:stebbins/handbrake-releases
sudo apt-get update
sudo apt-get install handbrake-gtk handbrake-cli

Alternatively, try adding ppa:stebbins/handbrake-releases in Synaptics>Settings>Repositories.


7. Installing Oracle-Java

Java is one of the equalizers in the operating system world. Pure java programs can be run on any operating system with a good java platform installed. Oracle-Java (sometimes refered to as Sun-Java), probably the best available java, installs easily in Linux and is free to at least home users. Arachnophilia HTML Editor, jEdit text editor, for programmers or beginners, and Vuse, a bittorrent, to name a few, are all good, free java applications that run on any Linux system with java. See Section 22 below for more.

There are several ways to get Oracle Java on your Linux system. The easiest - when it works - is probably to use one of the private repositories that are available. Two of these are duinsoft and webup8. When you only care about running Java programs on your browser or computer you need only install JRE (java runtime environment). It's all you need. On the other hand, if you are planning to do some Java programming, you will also need JDK (java development kit), which includes JRE. Installing Java directly from the packages supplied by Oracle is not difficult and is the best solution to avoid mysterious hang-ups and accomplishing the goal of just installing JRE. So suppose your goal is to install the latest version of 64-bit Oracle JRE, and you have downloaded to ~/Downloads the latest .tar.gz Linux version from the link identified above, and it is jre-8u45-linux-x64.tar.gz. Of course, if you download a different number, then you have to use that number in all the following commands.

First, determine if you have another java system already installed:

    java -version.

Old java should be removed. To completely remove openjdk-icedtea:

    sudo apt-get purge openjdk-\*.

Next, sequentially run the following commands:

    sudo mkdir -p /usr/local/java
    cd ~/Downloads
    sudo cp -r jre-8u45-linux-x64.tar.gz /usr/local/java
    cd /usr/local/java
    sudo tar xvzf jre-8u45-linux-x64.tar.gz .

This creates (assuming it does not already exist) a directory, /local/java, to store the java files, moves the downloaded java file to it and extracts the main file (jre1.8.0_45) containing all the java files. You can now delete jre-8u45-linux-x64.tar.gz, if you wish. Next, as root, use your text editor (geany) to open /etc/profile:

    sudo geany /etc/profile ,

and add exactly the following at the bottom:

    export JRE_HOME
    export PATH .

Save and close the file. If you install JDK, instead of just JRE, additional entries need to be made to export the Java Development part of JDK, and the name, jre1.8.0_45, will need to be changed to jdk1.8.0_45, or to whatever is the corresponding java folder name.

Next, sequentially run:

    sudo update-alternatives --install "/usr/bin/java" "java" "/usr/local/java/jre1.8.0_45/bin/java" 1
    sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/local/java/jre1.8.0_45/bin/javaws" 1
    sudo update-alternatives --set java /usr/local/java/jre1.8.0_45/bin/java
    sudo update-alternatives --set javaws /usr/local/java/jre1.8.0_45/bin/javaws .

To put the Java Control Center on-the-path, create a symbolic link to /usr/bin:

    cd /usr/bin
    sudo ln -s /usr/local/java/jre1.8.0_45/bin/jcontrol .

The Control Center can be now launched by just putting jcontrol in a terminal.

To create a symbolic link from the Java JRE plugin to a Chrome-based web browser:

    sudo mkdir -p /opt/google/chrome/plugins
    cd /opt/google/chrome/plugins
    sudo ln -s /usr/local/java/jre1.8.0_45/lib/amd64/ .

Of course, the plugins directory does not need to be made if it already exists. Also, if the problem "File exists" comes up when trying to create the link, then the old file (link) has to be first removed:

[Desktop Entry]
Name=Oracle Java 8 Web Start
Comment=Oracle Java 8 Web Start
Exec=/usr/bin/javaws %u

Name=Oracle Java 8 Runtime
Comment=Oracle Java 8 Runtime
Exec=/usr/bin/java -jar %f


Name=Oracle Java 8 Plugin Control Panel
Comment=Oracle Java 8 Plugin Control Panel
Exec=jcontrol %u

    cd /opt/google/chrome/plugins
    sudo rm -rf .

For Mozilla-based browsers, substitute "mozilla" for "chrome" in the above commands.

To have appropriate java launchers available in dynamical menus and when right clicking java apps, three .desktop files should be created and put in /usr/share/applications. Such a file for Java-Web-Start, JB-javaws.desktop, is set-up on the left. To create JB-java.desktop and JB-controlpanel.desktop, use JB-javaws.desktop with the replacements as shown in the chart on the right.

Java applications come in files carrying the suffix .jar in their name. The exec to launch an app.jar is simply java -jar path-to-app.jar.


8. Installing Lxmed & Lxmenuman

Download lxmed-20110717.tar.gz from sourceforge to your Downloads directory. This is a tarball, a compactification of something else, in this case, the lxmed installer. A program for installing a tarball will be usually in the package as a text file with a name that includes install or read me. Some may come with all the files already built and installation simply requires moving these files to the appropriate directory in your computer. This is the case here. Lxmed installation recipe:

    cd Downloads/lxmed
    sudo apt-get install build-essential
    sudo mkdir -v /opt/lxmed
    sudo cp -v content/lxmed /usr/bin
    sudo chmod -v +x /usr/bin/lxmed
    sudo cp -v content/LXMenuEditor.jar /opt/lxmed
    sudo cp -v content/ /opt/lxmed
    sudo chmod -v +x /opt/lxmed/
    sudo cp -v content/lxmed.png /opt/lxmed
    sudo cp -v content/lxmed.desktop /usr/share/applications.
xdotool key "super+t" &
sleep 1
xdotool key type "cd ~/bin/LXMenuMan_1.0.2" &
sleep 1
xdotool key "Return" &
sleep 1
xdotool key type "sudo ./lxmenuman" &
sleep 1
xdotool key "Return" &
sleep 1
xdotool key type "password" &
sleep 1
xdotool key "Return" &
A GUI menu editor should now be present: Preferences/Main Menu Editor. Lxmed is a java program and requires a good Java software like Oracle Java to run successfully.

For those who do not want to install a java program, a lightweight menu editor is available from lxmenuman. Simply download the latest tarball version and extract it to ~/bin. Everything is included in the extraction. Launch lxmenuman by putting

   cd ~/bin/LXMenuMan_1.0.2 && sudo ./lxmenuman

into the terminal, or by creating the shell script shown on the left and using it as a command (execute) in an Openbox Menu entry or .desktop file (see Section 11 below). This script requires that the little tool, xdotool, be installed, that you replace password in the script with your password and that you repace super+t in the script with the keyboard combination that launches your terminal. See Section 13 for more information about xdotool.


9. Menu Categories & MyStuff

Items in the main Lxmenu are controlled by two different processes. The menu category part ("Accessories" thru "Preferences") is determined by the lxde-applications menu (/etc/xdg/menus/ The part below "Preferences" is determined by lxpanel (~/.config/lxpanel/default/panels/panel).

To illustrate how to edit the former, suppose a new category named Favorites is desired. Proceed as follows:

Additional applications should appear by simply editing their .desktop files regardless which directory contain them. If they do not show after a reboot, then put copies in all three directories.


To put launchers below Preferences, open up the correct ~/.config/lxpanel/default/panels/panel and place a section immediately below or above the "run" entry designed exactly according to the following guide:

    item {

The upper image on the right illustrates a menu where qupzilla, logout and shutdown have been added as follows:

Plugin {
   type = menu
   Config {
      system {
      separator {
      item {
      item {
      item {
         action=semplice-logout --logout
      item {
         action=semplice-logout --shutdown

Kornelix has created a very useful secondary menu tool called mystuff. Download and install myStuff-1.8-x86_64.deb (or the 32-bit) and follow the directions. Set it up with whatever apps appeal to you, put links where ever you like, for example, panel, openbox menu, main menu, desktop, etc. The image on the lower right is one of my "favorites" menus. To just display an icon - no text - put the cursor on the menu text line and press the tab key to make the menu think you have entered something.

10. Wine, Wine Programs and Skype

If you have installed a 32-bit operating system, then the repositories likely contain versions of Wine and Skype that can be directly installed using Synaptic or apt-get. Wine does now have a 64-bit architecture that works in a 64-bit Debian-based Linux, which means the 32-bit versions should not have to be installed and adapted to work in the 64-bit environment. Unfortunately it appears that most apps, for example, all those that I use, do not have execs that execute with 64-bit Wine. So most users will still probably want to install the 32-bit version. To see if the necessary 32-bit architecture is installed, put the following in the terminal:

    dpkg --print-foreign-architectures .

If i386 comes up, then your set to install wine and skype.

  [Desktop Entry]
Name=Wine Windows Program Loader
Exec=wine start /unix %f
If it does not, then install i386:

    sudo dpkg --add-architecture i386
    sudo apt-get update .

To install wine32:

   sudo apt-get install wine32
   wine32 path-to-app.exe .

The last step is simply an attempt to launch a wine app. The first such attempt should trigger an automatic mechanism that will download the necessary tools to configure wine32 and place a hidden file, ".wine", in your home folder. If there is an issue with freetype fonts, then precede this step with

   sudo apt-get install libpng12-0:i386 libfreetype6:i386.

If there are bigger issues, try

   sudo apt-get install wine-bin:i386.

You will probably want to install the mscorefonts-installer:

   sudo apt-get install ttf-mscorefonts-installer .

To get Wine Windows Program Loader to show in the menus, you may have to build a wine.desktop file as in the box on the upper right. Put copies of wine.desktop into /usr/share/applications and ~/.local/share/applications.

To install Skype, given that the dual architecture is already installed, as outlined above, simply follow the instructions given at debian skype wiki.

Sometimes getting skype audio to function requires changing the pulse latency from 60, or whatever it defaults to, to 30. In your menus and in /usr/share/applications/skype.desktop, change the exec so that exec=env PULSE_LATENCY_MSEC=30 skype %U. You can also launch skype by putting this exec into "run" or the root terminal. Then, if required, use pulse audio (pavucontrol) to configure skype sound. After this skype launched from a menu in the usual way should have sound.

As I have already mentioned, I use the directory ~/bin, for Wine programs and any shell programs that I may use. When a Windows program is installed using Wine, tell the installer to put the program in ~/bin (most Windows program installers give you a choice) rather than in the installer's default~/.wine/drive_c/'Program Files'. Before you use a Wine program, or any .exe, which is a file extension that only applies to Windows, you need to first right click on the .exe, and from the ensuing menu, select Properties>General and choose Wine Windows Program Loader to Open with, and then select Properties>Permissions and check the Make executable box.

One of the greatest weaknesses of Linux operating systems is lack of good application choices. One of the main consideration a wise newcomer to Linux will consider is the size of the Application Repositories that come with a distribution. No matter how great an operating system operates, it is a useless tool if greatly limited in applications. This is why getting applications, especially non-proprietory ones, built for Windows operating systems to work on Linux is really important. Linux users should search out Windows applications and publicize the ones that can be adapted, and Linux developers should be encouraged to move some of their great creative energy to applications and away from cloning a so-called new operating system every 6 months, or whatever time interval applies. To get information on Wine compatible programs or how your favorite Windows program might fare under Wine, go to Wine HQ and complete the filter form. If you have a particular app in mind, just put its name in the Name box and click Update Filter.

My favorite Windows programs (all are freeware) are:

   Araneae HTML Editor    Faststone Image Viewer & Editor    PhotoFiltre Image Editor    PDF-XChange Viewer    Speedcrunch Calculator.

To get more information about PhotoFiltre and directions for installing it, see Lxlinux-PhotoFiltre. To install Faststone Image Viewer, create a folder named faststone in ~/bin, and then download the portable .zip version and simply extract its contents into ~/bin/faststone. All the files to run Faststone are present and so no further installation is required. For non-professionals, the Faststone-PhotoFiltre combination is hard to beat. Open a photo in Faststone, use the Faststone tools, which are substantial, to improve it, and if you want more, then in two clicks you can open the photo in PhotoFiltre via the Faststone "Edit with External Program" tool. See the image below.

For the applications just mentioned, use ("command")

   Exec=wine32 /home/me/bin/PhotoFiltre/PhotoFiltrePortable.exe
   Exec=wine32 /home/me/bin/FSViewer52/FSViewer.exe

appropriately edited to give your addresses to the .exe's, if not set up the same as mine. Here, me symbolizes the name of your home directory.

Araneae is a simple, basic html, xhtml, xml, editor whose structure consists mostly of text files that are easy to edit. Thus, it is easy to adjust these files to construct an editor that fits your needs, that has the buttons, clips and templates that you use, not what somebody else thinks you and the rest of the world want. Use lxmed to put your Wine applications in the Main Menu, from which you can link them to all your panels and menus; or just create a .desktop file in /usr/share/applications for each app (see Section 11 below).

PortableApps offers a special platform for downloading, installing and launching many free portable wine apps. Last time that I looked they listed over 600 apps, some very good and a lot of junk. Only apps tested to work with Wine are on their list. The image on the right shows a list of about 1/30th of the available apps. Installing an app involves just highlighting its name and clicking next. Of course, you must first download and install the platform, which is also simple to do. The installer will ask where you want to put the platform. I use ~/bin in my home folder, which puts everything in a directory there named PortableApps which occupies about 8.8 MiB disk space.

pa appslist

Installed apps can be launched by first launching PortableAppsPlatform.exe, which launches the box pictured on the left. Then click apps followed by clicking the name of the desired app in the ensuing list. It will launch in the blink of an eye. Or you can just set-up a launcher in your menu(s), using as exec, wine pointing to the .exe of the app. If you do not like an app, then just delete its directory in ~/bin/PortableApps. So it is no big deal to try (install), and then reject (remove) an app. My favorite photo-editor, PhotoFiltre, as well as wine versions of many Linux apps, for example, Qupzilla, Libre Office, Firefox, etc, are on the PorableApps list. If you find a portable app, like Faststone Image Viewer, not in the PA-bin and it tests out to work with wine, you can put it's directory in ~/bin/PortalApps, and PortalApps will automatically put it on its launch list. I have not found any difference in speed between installing an app as a Linux app or as a Wine Portable. Portable apps do have the advantage of "portability". Put them on a small usb-drive and carry them in your pocket. If you do not want to install the actual PortableAppsPlatform, and it is just a convenience, not a necessity, then the Portable Apps Website is still the best place to find the latest updates for your portable apps. Just download the latest version and use it to replace the old version.

11. Desktop and Panel Links, Bash Script Launchers

The LXDE desktop and panels can be linked to just about everything on the computer or on the internet. The diagram on the left shows how this linkage can be set-up. For example, it shows 4 paths (→) to the DESKTOP and 1 path to PANELS. With the exception of the symlink path, which is not a very pleasing path, all paths must pass through a desktop file. So desktop files are very important to getting items on menus, desktops and panels. In general, .desktop files are one of the primary tools to configure LXDE or Openbox desktops. Not only are they the key to putting shortcuts on the desktop and in panels and menus, they hold the key to choosing icons, launching apps as an ordinary user or as root, launching apps in new windows or on the tab of a launched window, and what files are launched automatically at start-up. Somewhere in this guide are examples illustrating how to do each of these things.

There are three kinds of desktop files (.desktop) in Linux distributions, the two most used are illustrated on the right. The upper one is called an application desktop file; the lower one is a link desktop file. These two images can be used as templates for all .desktop files of these types. Anyone can construct a desktop file with any text editor (leafpad, geany, ...), and then move it (as root) to any directory. The significance of the contents is the following:

The difference between application and link desktop files is that one has an exec command and the other an url command.

Linux systems have a pre-set collection of directories that the computer will search to carry out a command whose exec path is not completely specified. When an application's exec is in one of these directories, it is said to be on the path. The directories in this search path can be identified by putting echo $PATH into the terminal. The advantage of being on the path is that the exec for such an item is simply its name; the path to the exec does not have to be specified.

Lxmed is good at finding application desktop files, putting those that do not fit into one of its programed categories into a general, catch-all Others category. Lxmed can be used to directly edit any application's desktop file by opening Properties>Edit code manually for that application. Lxmed can be used to construct an application's desktop file by selecting category>New item, filling out the form and then clicking OK. It will be saved in /usr/local/share/applications.

mint gnome-like menu
To link an internet site to your desktop, put a link desktop file into ~/Desktop with URL=path-to-site, and make it executable. The lxde-guide.desktop example on the upper-right will create a link to this Guide. To put an application launcher on the desktop, put an application desktop file, appropriately constructed for that application (generally, you can just copy as root the applications desktop file already present usually in /usr/share/applications or /usr/local/share/applications), into ~/Desktop, and make sure that you own it. The xkill.desktop example on the upper-right will create a launcher for the xkill tool. A simple alternate way to get a desktop link to an application already listed in the Main Menu is to right click the name, which will bring up Add to desktop.

[Desktop Entry]
Exec=pcmanfm menu://applications/
Desktop links to directories, computer, trash, main menu, any place opened by pcmanfm can be created by putting a .desktop file in ~/Desktop with

   exec=pcmanfm address-in-pcmanfm-address-bar-when-place-is-open.

For example, the pcmenu.desktop file on the left will create a desktop link (the icon labeled MENU in the picture) to the Pcmanfm Applications Menu pictured on the right.

Now for some slightly more interesting stuff. Some people like to launch multiple applications and/or multiple web sites with just a single click, or to have desktop links to attached storage devices. These are easy to achieve in LXDE. All that is needed are simple bash scripts like those pictured below. The one labeled will simutaneously launch the applications gwrite and abiword. In general, just use any text editor to put the launch code, which is the exec=... in the desktop file for the application, into the script for the application group that you are creating, like in the example. Make sure your script is executable, that you own it and save it wherever you like - I use ~/bin, which automatically gives me ownership. Now create an application desktop file as described above, using exec=/home/me/bin/, where me symbolizes your home directory name. From there you are on the way to a desktop and/or a panel link.

The procedure is almost the same for grouping a set of internet links. The image labeled is the bash script that launches my gmail while putting my other emails in the firefox taskbar. If you want more than the last email on the list to open, then replace firefox by firefox -new-window as launcher for the emails you want opened. If you use chromium-browser, then just replace firefox in the script with chromium-browser. If you want the next email to open only after the previous one has been closed, replace & by &&, and remove sleep 2. Use this script as a template for your situation, and from it create an application desktop file to put email in the Menu or on the desktop or taskbar in the usual manner.

The is a script that launches the external hard drive named freeagnt mounted in /media and simultaneously puts the external hard drive named hitachi in the pcmanfm taskbar. Save it in ~/bin, doing the usual execute and ownership stuff. Now create an applications desktop file with exec=/home/me/bin/ and icon=[path to a pretty icon]. Save it in ~/Desktop, and you have a pretty link on the desktop, if desktop clutter is your thing.

An alternate way to get a desktop link to a folder is to use a symlink, which is a Linux shortcut. The general terminal code for a symlink is:

   sudo ln -s path-to-folder path-to-symlink.

For example, the previously described desktop link to just freeagnt can be also created by the terminal command:

   sudo ln -s /media/freeagnt /home/me/Desktop.

However, in this case, the desktop icon is just the standard, dull folder icon with the name freeagnt underneath.


12. Autologin, Password and Name Changes

The easiest way to change names and users is to use Preferences/Users & Groups. If you do not have Users & Groups, then try adding it by installing adduser from Synaptic. Changing names this way is a bit tricky if it is the computer administrator that is being changed. Suppose I want to change administrator doug to administrator roger. First, I create roger as a new user with his own home directory and any password (GUI requires longer password than I usually like). I give roger administrative powers, and test that roger really can function - login at start, open synaptic, etc. If roger passes this test, then he can use Users & Groups to delete the user doug. He can also delete the home directory doug, but I do not recommend this because that will delete everything including program subdirectories like ~/bin and doug's hidden files that may include important configuration files. So I would keep the directory doug, and just delete or move individual files in doug to roger, or whereever, which roger can do as root. Finally, use terminal to change roger's password to what he really wanted (something shorter):
   sudo passwd roger
and follow the prompts. There is no restriction on password length here!

To use terminal to add a new, ordinary user named roger with home directory /home/roger, password xyz, starting shell /bin/shell (this is normal) and in the group named users (this can be omitted):
   sudo useradd -m roger -d /home/roger -p xyz -s /bin/bash -g users .
To remove the user roger and his home directory:
   sudo userdel -r roger .
To see user names and primary groups:
   sudo cat /etc/passwd .
To add the user roger to the sudo group:
   sudo adduser roger sudo .
More information can be found at ahinc.

Preferences/Passwords and Encryption Keys should show passwords. To change one, right click on it and select change password, complete the form and click Ok. Changing a user key does not necessarily change the password to keyring, the main controller. To change that, right click Passwords: login, and follow the same procedure. If you have "enter password to unlock your keyring" annoying you after every boot, you should be able to get rid of it by deleting login.keyring in ~/.gnome2/keyrings.

Your computer has a name, which can be seen at Preferences/System Monitor/System, at System Tools/System Profiler and Benchmark/Operating System, and every time you launch the terminal. To change it, enter the following into the terminal:
   sudo old-name new-name .
If this doesn't work, then replace the old name with the new one in the files responsible for naming the computer: /etc/hostname and /etc/hosts.

To activate autologin for a user roger when lxdm is the display manager, open (as root) /etc/lxdm/default.conf, /etc/lxdm/lxdm.conf, /etc/xdg/lxdm/lxdm.conf and edit
   # autologin= to autologin=roger.
To activate autologin when slim is the display manager, open (as root) /etc/slim.conf, change the lines
   # default_user simone    to    default_user roger
   # auto_login no    to    auto_login yes
To activate autologin when lightdm is the display manager, open (as root) /etc/lightdm/lightdm.conf, uncomment (delete "#") and change the appropriate lines in "session-wrapper" to:

If not already present and if you have other users, you may wish to add (as root) in each of these cases an autologin group:
   groupadd autologin.
Then add roger as a member:
   adduser roger autologin.


13. Xdotool & Launching Terminal Apps
#! /bin/bash
xdotool key "super+t" &
sleep 1
xdotool key type "sudo shutdown -h 0" &
sleep 1
xdotool key "Return" &
sleep 1
xdotool key type "password" &
sleep 1
xdotool key "Return" &
#! /bin/bash
xdotool key "super+t" &
sleep 1
xdotool key type "ispell" &
sleep 1
xdotool key "Return" &
#! /bin/bash
Applications or commands launched in the terminal without the aid of a browser or special program can be put on the Menus with the aid of a special lightweight tool called xdotool, which lets the user programatically (or manually) simulate keyboard input. For example, the spell helper ispell launches in the terminal by simply typing ispell in the terminal and clicking enter (Return) on the keyboard. The shell script, shown in the box on the right, put in ~/bin, made excutable and put in the Menus or linked to the desktop will perform the same function with a single click. Here, xdotool key "super+t" launches the terminal (my keybinding to launch terminal), xdotool key type "ispell" types "ispell" into the terminal and xdotool key "Return" effectively strikes the enter or return key. The application inxi can be launched with a similar script with xdotool key type "inxi -F", and it would appear this formula for creating shell launchers will work for any app launched in the terminal. For example, to create a pure shutdown button, create the launch script in the box on the left. For a slightly more complicated example, see in Section 8.

A second recipe for putting terminal apps on a menu is to use the shell script shown in the first box on the right. If is stored in ~/bin, then to put ispell, for example, in the openbox menu, use:

   <execute>lxterminal -e ~/bin/ "ispell"</execute>.

To put it in the lxde menu, creat a .desktop file using exec=lxterminal -e ~/bin/ "ispell".


14. Dual Monitors


To establish dual monitors with LXDE, install Arandr from Synaptics. Arandr can set-up placement, orientation and resolution for each monitor. Before saving, set up the geometry of any horizontal panels. For a bottom panel across both monitors, align the bottoms of the displays as in the image on the right; for a top panel, align the tops. A second horizontal panel can be only set-up on the display whose unaligned edge is outermost, since any extension onto the smaller display will be hidden. Otherwise, the horizontal placement and geometry in general can be achieved in the usual way. For an lxpanel, right click an open spot on the panel and choose Panel Settings (see Section 4). Clicking the save setting in Arandr will save the final template in ~/.screenlayout, for example, suppose it is named After each boot, needs to be clicked to establish this monitor setting. This manual operation can be avoided if you put an application desktop file (see Section 11 above) for it into the ~/.config/autostart directory (see Section 4 above).
If Arandr doesn't work, then install its near-clone Grandr. Grandr does not have the save tool, so a typical dual monitor shell command is illustrated on the left. If you build one of these and it does not work, then redo it changing the order of the monitors in the command. I speculate the laptop monitor data has to come first in the command for it to work.

To turn individual monitors on or off, use lxrandr. It is useful to have lxrandr in the panel or on the desktop of both monitors so that there is a visible control to turn on the monitor that is off. Alternatively, just add lxrandr to the openbox right click menu as described in section 3, and you have access to a switch regardless which monitor is off.


Having rotating wallpaper in dual monitors of different resolutions and in extended desktop mode is possible with a little preparatory work. The idea is to create wallpaper images that cover the extended desktop and consist of two images such that the image on the left centers on the left monitor and the image on the right centers on the right monitor. To correctly join the images horizontally, they have to be of the same height. To illustrate the procedure, assume two monitors with resolutions 1680x1050 and 1440x900. Also, assume the monitors are alligned at the bottom (bottom panel scenario). First, create two wallpaper directories, one for images 1680x1050 and one for images 1440x900. Follow the procedure described at the end of Section 5 above. Next, extend the images in the 1440x900 directory to be 1440x1050 by putting a canvas behind them so that the image is at the bottom of the canvas. Put the image at the top if your monitor set-up is aligned at the top. Finally, use a simple photo editor like Faststone-Image-Viewer, mentioned in Section 10 above, to horizontally join images from the 1680x1050 folder to images from the 1440x1050 folder to create a third folder containing 3120x1050 images. The pictures in this folder should have the border and background characteristics of the picture on the right. This becomes the Wallpaper directory for the extended dual monitor desktop. The black background canvas on the right-upper half of the illustrated image does not appear on the screen. It is the result of the above recipe for getting the two images to have the same height.


15. Recording Audio

Sound problems will generally be corrected with the installation of pavucontrol. If pavucontrol (Sound and Video>PulseAudio Volume Control) doesn't immediately work, then check Synaptic to make sure pulseaudio, pulseaudio-utils and libgtk-3-0 are installed. With an audio player playing something that you know makes sound, simply try the available choices offered by PulseAudio Volume Control until your sound hopefully becomes functional.


Perhaps not so well known is VLC player can record and save streaming audio and video, albeit, the set-up is rather hidden. First, you will need the URL of the stream. One way to get it is to go to the station's website and play the audio output on VLC. Right Click the station title on the VLC playlist and select Information. Copy the station URL from the ensuing information. If there appears to be nothing in the URL box, run the cursor in highlite mode (left clicker held down) over the box. This will create a colored background so that the URL will show if it happens to be in white font, something that occasionally happens with VLC.

The procedure to set-up recording is as follows (see photos):

The VLC convert tool also applies to changing the file type for any audio and video file recognized by vlc, which is just about everything when the proper codec is installed. Follow the 5 steps above replacing step 2 with "click convert". Leave the "Display the output" box unchecked and check "start". When the file shows in the output directory, the conversion is complete. The only fault with using VLC as a recorder is the time required to set-up the recorder. The desired audio may be playing by the time you get to clicking start. [Addendum: Recent versions (2.2.1 +) include a red record button on the vlc interface, which allows instant recording of whatever is playing.)]

Another excellent recorder for streaming radio is streamripper, which by itself is a terminal application. Streamripper can be installed from synaptic or by using sudo apt-get install streamripper. To rip online audio put

   streamripper url-of-stream

into the terminal and press enter.

Several front-end GUI's are available for Streamripper. The one I like is streamtastic, which is java based but still fairly light. I like streamtastic because any station whose broadcast URL is known can be easily added to the playlist (see the photo). Once added, it is automatically saved. Double-clicking a station will play that station using your associated audio player, which can be set-up in Preferences. Clicking the red record button at the bottom starts the recording which will be automatically saved in the directory that you designate in Preferences. Thus, streamtastic is not only a recorder GUI but also works as a radio menu. It can be added to any of the main menus by using exec=java -jar ~/bin/Streamtastic.jar, provided you put Streamtastic.jar in ~/bin. Streamtastic - simple, functional, reliable and quick!

sox submenu
sox menu

Sox (Sound eXchange) is an excellent terminal audio editor and recorder. It is to audio what Image Magick is to graphics. It has the advantage over vlc and Streamtastic in that it can record sound regardless of source. It is very easy to set-up a menu launcher for just recording purposes. The image on the left shows my entry in an Openbox Root Menu that produces the menu pictured on the right. It is set for 5 recording modes based upon recording time: 1 hour, 2 hours, 3 hours, unlimited hours, until 2 seconds of silence occurs. Of course, you can change these numbers to any other time intervals that you may desire. The commands are set to save the recordings in ~/Music as a .flac file. A name scheme for recorded files was somewhat challenging because if a fixed name is stipulated and you do multiple recordings each recording will overwrite the previous one, since they will be given the same name. So to reduce the chances of an overwrite, I assigned as name an integer randomly chosen from 1 - 10,000.

Sometimes, especially with older CD's, audio players cannot find where to go to play it. The file browser may show the CD contents in /Media/cdrom but the audio player won't play it, because the version it needs is in another directory. To find it with VLC player, first try the playlist skin of VLC (click the appropriate icon on the bottom of the regular VLC skin). Click Devices>Discs. If CD is on the list, right click it and choose "play". If it isn't there, then go back to the regular VLC skin and follow the path Media>Open Disc. Check "Audio CD" and choose a track other than 0. Then, click the drop-down arrow associated with "Disc devise" and choose one of the listed directories and then click "play." Repeat until you find the directory containing the CD audio. The most likely candidate is /dev/sr0, so try it first. This will only play the chosen track. If you want to play without interruption the complete CD, then go back to playlist>Devices>Discs. The CD should be now on the list.

Sound Juicer is an excellent Linux app for ripping CD audio. Not so well known is that it is also an excellent CD audio player that seems to be able to always find the audio.

Computer alert sounds can be turned off by changing the two iNet entries in ~/.config/lxsession/LXDE/desktop.conf from 1 to 0. In this address, LXDE may be replaced by the operating system name.


16. Network Sharing, Printers & Wireless

Debian based Distributions generally come with wicd or network-manager-gnome (Preferences>Network Connections in the menu) installed. They include a network-manager-applet, which should appear in the notification area of your panel. Right clicking the applet will display Connection Information and Edit Connections. There is usually enough information about your connections in Connection Informations to set-up a connection in Edit Connections. However, I have had times when other information that was needed for a successful wireless connection. The accompanying table lists some good lightweight tools for getting wireless information.

wavemon wavemonwlan #, ESSID, MAC, IP (local)
wicd-curseswicd-cursesESSID, BSSID, IP (local), wireless set-up
inxiinxi -Fwlan #, MAC, network cards, drivers
net-toolssudo ifconfig -aeth#, wlan#, lo#, addresses, inet 6 data
curl curl curlmyip.comexternal (public) IP
wgetwget IP (check home directory)

There are two main culprits to getting a wireless connection: (1) A computer setting may be blocking the wireless signal. (2) You may need to install additional firmware. To see if there is a "block", put the following into a terminal:

sudo rfkill list.

If the information from this command indicates a "soft" or "hard" block on your wireless (wlan), then that is at least part of your problem. To remove a soft block, use the following in terminal:

sudo rfkill unblock all.

A hard block involves the computer hardware and cannot be unblocked with rfkill. First, check to see if your laptop has a wireless switch and that it is open. These exists on some laptops and is often well hidden enough to be missed. It is usually somewhere along an edge or somewhere above the keyboard. If there does not appear to be a switch, or it isn't working, then, as a last resort, reboot into bios, and select "reset to defaults," or whatever is equivalent for your laptop. This may remove a hard block.

Firmware depends upon the network card. Use inxi (see table), or put

   lspci | grep -i ethernet and lspci | grep -i wifi

into the terminal to identify your network cards. Then use Synaptic to install firmwares that most closely matches your network card name. A good choice to try are the packages firmware-b43-installer and b43-fwcutter, and uninstalling bcmwl-kernal-source if necessary. You can also download from this website by putting the following into the terminal:


Extract b43 from and move it to /lib/firmware, and finish the procedure by entering the following into the terminal:

   sudo modprobe -v b43.


To share a printer attached to your Linux computer on a network, go to Preferences/Printing and right click the attached printer, which should be identified there with an arrow in a green circle. Then click Properties/Policies and be sure Enabled, Accepting jobs, Shared are checked (enabled). Now go to Preferences/Printing/Server/Settings and be sure Publish shared printers connected to this system is checked, and whatever else is appropriate for your needs.

Sometimes getting a printer recognized can be solved by making a few simple installs, for example,

   sudo apt-get install cups cups-browsed printer-driver-hpcups system-config-printer-udev.

If you have an HP printer, then extra help is available in the form of the very nice special qt-based gui, hplip-gui, which HP has exported to Linux. To install it, do

   sudo apt-get install hplip-gui,

but realize that this will probably include 35 MB additional libraries to a non-qt based platform.

17. Using Samba to Share Files

Files between computers on a home network can be easily shared by using samba. Computers with LXDE desktops probabily already have samba-common installed. This is sufficient to receive and give files to any computer that is connected to the network and has samba installed, but apparently does not exchange with computers that have only samba-common. The file browser is generally the tool constructed to find foreign files. In pcmanfm, click Go>Network Drives to find other directories and USB storage devices connected to the network hub.

(1) On computers who have files that you want to share to another computer, install samba using synaptic, or

         sudo apt-get install samba.

(2) Create a password for the user, for example, for a user named me:

         sudo smbpasswd -a me,

and follow the prompts.

(3) Make a directory named public in your home directory (~/public).

(4) As root, edit the file /etc/samba/smb.conf by adding exactly (copy and paste) the following to the very end of the file:

         path = ~/public
         available = yes
         valid users = me
         read only = no
         browsable = yes
         public = yes
         writable = yes

(5) Other Linux computers should now be able to locate ~/public by using the Network entry in their file browser's tool bar, or by putting into the file browser's address bar the following:


where server-name is the name of the server computer (name after @ in terminal greeting).

(6) If the above does not work for you, then install gvfs and gvfs-backends (in particular, gvfs-smb):

         sudo apt-get install gvfs gvfs-backends,

which hopefully will take care of any mounting problems.

(7) My experience with Windows operating systems barely extends beyond XP. So keep that in mind here. You should be able to find the linux directory set up by samba by right clicking the Windows computer icon and setting up a network path to ~/public.

To recognize a public folder on Windows, open the folder with Explorer, click the "Share with" tool bar entry (probably left side) to get a Setting menu. Select to share with everyone offered. On the Linux computer Pcmanfm should be able to now find this folder in the usual way.


18. Setting Up an FTP Home Computer Network

In my opinion the easiest way to share files between computers in a simple home network is by using an ftp transporter. To exchange files you need a server (file source) and a client (file receiver). Either or both can be installed on any computer. My favorite Linux ftp client is Filezilla, which is very fast and reliable. I like vsftpd as my server program.

(1) Install vsftpd on your server computers and filezilla (or equivalent ftp client) on your client computers.

(2) On your servers, configure /etc/vsftpd.conf by simply erasing, as root, the pound sign (#) before the processes that you want enabled. I enable:


(3) Reboot, or simply reload vsftpd:

   sudo /etc/init.d/vsftpd restart .

(4) For a client to receive files, the address of the server is needed for the client's ftp program (filezilla). To get the addresses associated with a server (computer) put the following in the terminal of the server computer:

   sudo ifconfig -a.

If your system is wireless, then the address you want is the wlan (or wlan0, wlan1, ...) inet addr. It will look something like If you are on a wired system, it is probably the lo inet addr that you want, and it will be a similar expression.

(5) On the client computers configure the ftp transporter (Filezilla) as follows:

   Host: Address found in (4).
   Username: Name you use to boot into the server.
   Password: Password you use to boot into the server.
   Port: "Ignore".

Click the quickconnect or connect button. The files in the server should appear in the ftp's server domain.

(6) If above is unsuccessful, the likely culprit is the firewall on the server. To disable it: sudo ufw disable. Retry (5). If now successful, then reconfigure the server's firewall to allow messages from the client's address, or just leave the firewall off.


19. Keyboards, Keybindings & Touchpad

To add the functionality of multiple keyboards, first add (as root) to /etc/xdg/lxsession/LXDE/autostart your language choices, for example, for US and French, add

   @setxkbmap -layout "us,fr".

The first entry (us in the example) will be the default. The two letter country codes are listed in /usr/share/X11/xkb/symbols. Washington State University has a nice website with images of many keyboards. Just do a website search for the desired keyboard. Next, right click a panel and add Keyboard Layout Switcher (see Section 4). The flag of the default keyboard country will appear on the panel. When clicked the keyboard will change and the icon should display a new flag. Finally, check /etc/default/keyboard to make sure it reads (in the example of us,fr choice):


Keybindings are set, and can be, thus, edited in the rc.xml or lxde-rc.xml files contained in the 3 openbox directories listed in Section 3 above.

#! /bin/bash
synclient MinSpeed=0.4 MaxSpeed=0.75
To view the configuration characteristics of the mouse pad, put the following into the terminal:

   synclient -l.

To edit an option, for example, MinSpeed, put the following into the terminal:

   synclient MinSpeed=0.3,

where the number, here 0.3, is your choice for the option value. Unfortunately, this edit will only last the current session; logging-out or rebooting will return the option to the original default setting. To make the change stick, I create a little shell script,, as shown on the right for the options MinSpeed and MaxSpeed. Put all the options that are being changed into the script, put the script in ~/bin, make it executable and add @~/bin/ to LXDE autostart (/etc/xdg/lxsession/LXDE/autostart).

To configure Ctrl+Alt+Backsp to be the customary log-out, first, put the following into the terminal:

   sudo debconf-show keyboard-configuration

to determine your keyboard model. Then configure that model by putting the following into terminal:

   sudo dpkg-reconfigure keyboard-configuration

The last item will ask if you want Ctrl+Alt+Backsp activated. Top

20. Spliters, Joiners, Converters and PDF Editing

There are many simple command line tools and special applications in Linux that perform special tasks in a remarkably efficient and accurate way. I will mention a few here and in time add on new ones as they come to my attention. Three general tool collections that can be easily installed, usually from Synaptic in most distributions, are coreutils, x11-utils, x11-apps.

pdfseparate xx.pdf p-%d.pdfseparates xx.pdf into separate pages: p-1.pdf, p-2.pdf, ...
pdfseparate -f 5 xx.pdf p-%d.pdfseparates from page 5 to end: p-5.pdf, p-6.pdf, ...
pdfseparate -f 2 -l 3 xx.pdf p-%d.pdfseparates from page 2 to page 3: p-2.pdf, p-3.pdf
pdfseparate -f 2 -l 2 xx.pdf p-%d.pdfseparates page 2: p-2.pdf
pdfimages xx.pdf yextracts all images, saved as y-000.ppm, y-001.ppm,...
pdfunite xx.pdf yy.pdf zz.pdfunites xx.pdf and yy.pdf into zz.pdf
pdftotext xx.pdf extracts text, saved as xx.txt
pdftoppm xx.pdf yPDF to ppm converter, saved as y-1.ppm
pdftohtml xx.pdfPDF to HTML converter
pdftops xx.pdfPDF to PostScript (PS) converter
pdfinfo xx.pdfdocument information for xx.pdf
pdffonts xx.pdffont analyzer for xx.pdf
html2text xx.html | tee ~/xx.texconverts xx.html, including some special html symbols, to xx.tex
vilistextum -rcn xx.html xx.texconverts xx.html, including empty space but not symbols, to xx.tex
convert xx.xwd yy.jpgconverts image types (imagemagick)
convert xx.tif -compress jpeg xx.pdfconverts xx.tif to xx.pdf
csplit -k xx.tex 22 37splits xx.tex at lines 22, 37 with line 22 in the second file, etc
lxsplit -j xx.rar.001joins files of like type - creates xx.rar from xx.rar.001, xx.rar.002, etc
gs -q -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -dFirstPage=3 -dLastPage=5 -sOutputFile=fileout.pdf filein.pdf   [extracts pages 3-5 of filein.pdf]
gs -q -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -sOutputFile=fileout.pdf filein1.pdf filein2.pdf   [merges filein1 and filein2]

Audio ControlPavucontrol Pulseaudio
Audio EditorAudacity
Audio RecorderSox
Audio RipperSound Juicer, Asunder
Audio-Video Stream RecorderStreamRipper
Audio-Video PlayerVLC Player
Bit TorrentTransmission, Tixati, Vuze (Java)
Burn DiskXfburn
Calculator ScientificSpeed Crunch Portable(wine)
Calculator SimpleJscicalc (java)
Character MapRJ Ascii(wine)
Clipboard ManagerParcellite
Color ToolsX-picard, grabc
Computer InformationBoxinfo, Inxi, Wavemon (internet)
Dictionary SpellingIspell
Dictionary SynomonsAiksaurusGTK
DistributionBunsenlabs, Sparky Linux Openbox
E-book ReaderFBReader
File BrowserPcmanfm
FTP TransportFileZilla
Html EditorArachnapholia (java)
Icon ThemeBlack-Diamond
Kill ToolXkill (x11-utils)
Menu Editor (LXDE)Lxmed (java)
Monitor ToolsArandr/Lxrandr
Network ToolConnman, Wicd
NotesCloudStickyNotes (java)
Office SuiteLibre Office
Office LightweightAbiword/Gnumeric
PDF EditorXournal, Poppler-utils
PDF Viewer-copierPDF-Xchange (wine)
Photo EditorImage Magick, PhotoFiltre (wine)
Photo GraphicsLatexdraw (java)
Photo Printerphotoprint
Photo ToolsScrot, Faststone (wine), Pixelitor (java)
Photo ViewerMirage
Radio Stream PlayerPMRP-VLC
Scan ToolSimple Scan
ScreenshooterScrot, Xwd
Search Tool GuiCatfish
Search Tool IndexerColout
Software ManagerSynaptic (with apt-xapian-index)
Task ManagerLxtask
Telephony InternetSkype
TerminalSakura, Lxterminal
Text EditorGeany
Text Editor ExtraJedit (java)
Text Editor LightweightMedit
Video EditorSox, Avidemux
Video RipperHandbrake
Wallpaper ToolNitrogen/Conky
Web BrowserFirefox, Iron, Maxthon
Windows ManagerOpenbox
Windows TilerWinfuncs


The accompanying chart illustrates what some command line tools can do. The main tool for pdf-documents is Poppler-utils (PDF Utilities). The command, as printed in this table, should be given from the directory containing the pertinent files. The files resulting from the command will appear in the same directory (provided a specific path is not specified in the command).

Available to read, export (save) and edit PDF documents are two little known, lightweight, Linux applications that together cover the span of what most of us do with PDF. These are Xournal [768 kb] and Poppler-utils (PDF Utilities) [456 kb]. Xournal directly injects text of all sizes and types, erases (white-outs) given text and images, highlites, injects, shapes, draws and other things. The image above-right illustrates some possible edits done by me. It was my first time, so please excuse the sloppiness. In general, Xournal can be used for notetaking, sketching and keeping a journal using a stylus in a variety of document forms. Unfortunately, it does not bookmark or have a search feature. A lightweight wine portable pdf app that does bookmarking and searching is pdfxchange. It also has other tools, which are illustrated in the nearby pdfxchange toolbars image. Finally, ghostscript, which is installed on most Linux distributions, can be used to merge or extract .pdf and/or .ps files, albeit the commands are long (see accompanying table).


21. Preferred Applications & Installation Tips

The second table on the left shows my preferred applications. These have not been lightly selected, but are the outcome of years of use and after trying many softwares, first with Windows and then with Linux (primarily Debian based). Politics has been left out of my choice criteria, which are in order of importance:

Knoppix offers a special 4 GB distribution which includes an LXDE desktop and just about every useful Linux application that exists. They also include a tool that can install the complete operating system to a thumb drive from which it works as well as a hard drive install; as a matter of fact, they recommend that you use it this way. One of the merits of such an install is as a tool to investigate an application without being required to actually install the application on your working system. This eliminates the install-dislike-remove procedure necessary otherwise. Another merit is that you can carry a complete working computer software package in your pocket.

Good Linux text editors are leafpad [733], geany [2688], juffed [1367+], gedit [2643+]. Leafpad is very simple, light and reliable with no special features; the other 3 color code text and have a variety of additional features; juffed is designed for the Qt 4 platform and will be around 7,000 kb to install in a non-Qt4; gedit requires a gnome platform and may be as high as 40,000 kb to install on a different platform and probably not worth it. Use geany -i to launch geany in a new window each time. To make word wrap the default in leafpad, be sure word wrap is checked in the options category in the leafpad tab and edit, if necessary, the number just below monospace 12 to be 1 in ~/.config/leafpad/leafpadrc. You can create a root-text-editor for any of these editors by creating a .desktop file with, for example, exec=gksu juffed or exec=gksudo leafpad. An interesting java based text editor is Jedit (see Section 7 for link). Although Jedit takes a second or two longer to launch, it has a lot of extra features including a built-in notepad, and is an excellent text editor for a Linux operating system. See the next section for an image of Jedit.

Mirage [560] has become my favorite image viewer because it is light, has thumbnails and a resizing tool. Gpicview [819] has no resizing or thumbs; gthumb [3627] has no resizing tool; and Geeqie [4900] is heavy and a bit clumsy to use.

A good alternative to xarchiver is squeeze (with exo-utils [1202]). For extra light version, do sudo apt-get install --no-install-recommends squeeze. File-roller [6106] is heavy.

A good lightweight alternate panel to Lxpanel is Tint2. It is very stable and can be configured to contain any application.

Start-up-manager is useful if you have multiple boot options, or want to easily see how many kernel versions are installed.

Installing lightdm without the fancy backgrounds available for the few seconds logging-in saves 13,962 kg: sudo apt-get install --no-install-recommends lightdm. Another good display manager is slim [1384]. Gdm] and Mdm [16,000+] are too heavy. You can find the name of your current default display manager by looking at /etc/X11/default-display-manager.

My favorite Bittorrent is Tixati, which can be downloaded from Tixati as a Debian file. It has many control features as can be seen from the accompanying image, a very colorful interface and is very fast. A bit heavier and clumsier but equally useful bittorrent is Vuze, which is java based and comes with a nice search tool. It can be also downloaded with its own media play. Download the latest appropriate version for linux from Vuse, and extract it to the directory in which you want the exec. The extracted folder will include two apparently identical shell scripts named Vuze and azureus. Make these executable, after which Vuze can be launched by clicking either one.

GParted, which can be installed via synaptics, can be used among many things to change the name of drives. It requires the drive to be first unmounted, which usually can be accomplish using GParted. However, I had one drive, formatted ntfs, that resisted being unmounted by GParted, or any of the other means that I knew. I finally got it unmounted by using another tool, NTFS Configuration Tool, installed via Synaptics.

When unplugging a USB connected external storage with the computer running, it should always be first unmounted. This can be most quickly accomplished by right clicking the drive's name in the Pcmanfm's mounted storage list in the left column, and clicking unmount.

To do a simple install of an alien Linux application without a PPA, first find and download the application. Your success after that will depend upon the type of package. To install a package.deb, where package is the name of the application, first try right clicking it and selecting GDebi. If that doesn't work, put it in your home directory and enter the following command into the terminal:

   sudo dpkg -i package.deb

which should work provided dpkg installer, is installed. To install a package.rpm, use:

   sudo alien -i package.rpm

which should work provided alien is installed. Also, you can use

   sudo alien -d package.rpm

which changes the .rpm package (works as well for .tgz, .txz, .tlz and .tbz packages) to a .deb package, which can be then possibly installed with GDebi or dpkg. If a package is not compatible with your system, don't worry, because it will not install.

There are many private repositories in existence. Sometimes they have a PPA that allows them to be added in general to your synaptic group, or sometimes you can just get the desired package. For example, the nice, little inxi app can be downloaded as a .deb by running the following command in the terminal:

   sudo wget*.deb.

You will probably find it in your home folder, from which you can use gdebi to install it. Run inxi -F in terminal to get a list of your important computer components.

To install a compressed linux file (tarball), first right click it and choose the "extract" option if offered. If it isn't offered and the compression is done using gzip (tar.gz) or bzip2 (tar.bz2), which is usually the case, then you can extract the contents to the directory you are in by opening the terminal in that directory and running:

    tar xvzf file.tar.gz        [to uncompress a gzip tar file (.tgz or .tar.gz)]
    tar xvjf file.tar.bz2      [to uncompress a bzip2 tar file (.tbz or .tar.bz2)]
    tar xvf file.tar               [to uncompressed tar file (.tar)] .

Of course, repace the word "file" with the actual name of the file. The files will be extracted to an ordinary file with the same name, "file", as the tarball, but without a tar-extension. To open a tar.xz file seems to require stipulating the extract directory:

   tar xvf /path/to/file.tar.xz -C /path/to/extract/directory.

Generally the application can be installed by opening a terminal in the extracted file directory and running:

   sudo make install ,

or running in a root terminal the combined command:

    ./configure && make && make install .

Sometimes these commands are not installed in your operating system but are in the applications folder, and sometimes alternate commands like cmake instead of make are used. Usually the app's author includes a text file giving special directions for the installation. Look for a file named something like readme.tex, install.tex or directions.tex. Open it and try to discern the exact installation instructions from it.

To stop a service, like, for example, bluetooth, from runing on your computer, enter the following into the terminal:

   sudo update-rc.d bluetooth remove .

Just substitute the service name for bluetooth in the command. To restart, forexample, bluetooth,

   sudo update-rc.d bluetooth defaults.

To get the exact names of the processes on your computer, install the little tool rcconf, and run sudo rcconf in the terminal.


22. Java Based Apps

As I said in Section 7 above, java is the great equalized in the operating system world. However, for whatever reason it appears to have an unfavorable reputation in the Linux world. My experience with java based applications has been good when I use Oracle Java, and I tend to search for them. They are usually based on a .jar with everything included in it. When more than one jar is involved, the developer will include a text information on which one launches the app and so the exec is always java -jar path-to-launcher-jar, or an explicit shell script for launching the app is included. Section 7 gives recipes for installing Oracle Java on a Debian based Linux system. Alternatively, you can install the linux java combination, open-jdk/icedtea using Synaptic or apt-get. However, I cannot say the applications described here will work in this instance.

My 14 favorite Java Apps listed approximately in alphabetical order are described below.


If you use more than 1 computer, cloudsticky notes are a "must-have". Once set-up, all notes automatically synchronize on all your computers. Write a note on one computer, move to another computer and there is the note. It is very easy to set-up, has a clean and simple interface with just the features that most users want in a note application. In other words, cloudsticky notes is not overburdened with unnecessary features. It is a bit heavy at [3312kb] for a note app, but well worth it. I don't know how I ever functioned without Cloudsticky notes!

Jasymca Math Calculator

This is an amazing math calculator and simple graphics tool for only being [522kb]. It does take some work to learn the programming language to set up a calculation, but it is well worth the effort given the level of the computations that this little beast can do. Anyone knowing a little html and math latex can quickly set up computations involving just arithametic and algebra. The above image illustrates jasymca solving three computations and a simple graphing problem. To do more complicated problems involving calculus, matrices, etc, you will want to download and refer to the user manual.

Jcicalc Calculator

This is a simple, lightweight ([302kb]), conventional calculator with a clean interface. It has more features than galculator, xcalc and the other standard linux calculators.



Jchecs [2460kb] is a chess game with a timer, scoresheet, recorder and many other features not in gnome-chess and at one-quarter the weight.



JDiskReport [2150kb] is a super endowed disk useage analyzer, which can be applied to any disk, including USB devices. It can be even applied to any directory on any drive.



JEdit [32.2mb] is a super endowed, super stable text editor. It has complete, reliable syntax coloring, a little QuickNotepad (see image) and many add-ons.



LatexDraw [1843kb] is a regular graphics creator with an easy to use interface and just the right set of tools to do the things you always want to do but never seem to have a reasonable app to do it.



Whist is an online card game that can be played with other people or a computer.



Pixelitor is an image editor with a simple, clean interface and super colorization tools.

My other four favorite java based applications are Arachnophelia, Lxmed, Streamtastic and Vuse. Arachnophilia is my main html-latex editor and is described in a separate section of this website. Lxmed, an lxde menu editor and desktop file gui, is described in Section 8 above. Streamtastic is a GUI frontend for streamripper and a menu tool for online radio stations. See Section 15 for a picture and more information. Vuse is a bittorrent mentioned in the previous section.


23. Recovering Grub

There is nothing worse than starting up your computer and the boot operation will not complete. You can re-install the complete operating system, but that involves a lot of time and data lose, when all that is really needed is to re-install grub, presuming grub is your boot loader. Here is a recipe for re-installing just grub:

[Desktop Entry]
Name = Open as Root
Tooltip = Open the folder as root
Icon = terminal
Profiles = on_folder;

[X-Action-Profile on_folder]
Name = Open as Root
MimeTypes = inode/directory;
SelectionCount = 1
Schemes = file;
Exec = gksudo pcmanfm %f

24. Recovering Open-as-Root in Pcmanfm

Versions of Pcmanfm since 1.1 have some nice new features, but did regress with respect to one tool, "open-as-root", which was dropped. See section 2 above for one way around this vacancy. Alternatively, this tool can be easily recovered in a few easy steps. First, make sure all the directories in the path ~/.local/share/file-manager/actions exist: mkdir -p .local/share/file-manager/actions . Then copy and paste the text in box on the left into a text file. Save it in ~/.local/share/file-manager/actions as open-as-root.desktop. This configuration does not always work.


25. Xfce4-Openbox

[Desktop Entry]
Comment=XFWM4 to OpenBox
Exec=openbox --replace
The main control components of an xfce4 desktop are xfwm4, the window manager, xfdesktop, the desktop manager, and xfce4-session, the session manager, which is involved with just about everything. To install a fully functional Openbox window manager into this set-up requires replacing xfwm4 and at least making some adjustments in xfdesktop and xfce4-session .

First, install openbox and obconf: sudo apt-get install openbox obconf . Then replace the xfce4 windowmanager xfwm4 with openbox: openbox --replace & exit . Nothing will appear different. No openbox root menu will show because xfdesktop is still in charge. Make, if it is not already present, ~/.config/openbox: mkdir ~/.config/openbox . Populate it with your openbox stock, menu.xml and rc.xml, or copy the general openbox config files to it: sudo cp /etc/xdg/openbox/* ~/.config/openbox/ . Now, disengage xfdesktop: xfdesktop --quit , or uninstall it: sudo apt-get remove --purge xfdesktop , and either kill xfwm4: pkill xfwm4 , or uninstall it: sudo apt-get remove --purge xfwm4 . As insurance, make a copy of the .desktop file on the left, name it openbox.deskto, make it executable and put it in ~/.config/autostart.

The main function of xfdesktop lost by its removal is wallpaper control. My favorite wallpaper controller is nitrogen. Installing it sudo apt-get install nitrogen, allows removal of xfdesktop, if desired.

Check the box in the xfce settings to save the session for next boot. In the next boot, boot to "default". This should produce the openbox setting complete with the openbox root menu, but still leaves xfce4-session in charge.

Things like log-out, shutdown, etc in openbox root menu are formulated for lxsession. For such commands to work with xfce4-session requires changing "lxsession" to "xfce4-session" in all the menus. Also, xfce4-session autostart functions by putting .desktop-files into ~/.config/autostart. The autostart in ~/.config/openbox/ does not seem to function. Otherwise, all subsiduary apps like file browsers, terminals, panels, docks, taskbars, image viewers, text editors, etc should work. If you choose to replace xfce4-session with lxsession, be sure lxsession is in charge before shutting down, or you may not be able to restart. An image of an Xubuntu-Openbox desktop showing an Openbox Root Menu and an Fbpanel dynamical menu is on the right.


26. Menu, Menu, Menu

To see the following, see the image below.


Below is a picture of wmdrawer configured with 6 columns of app launchers (24 apps total) and 1 column of 9menus (4 total), each configured to launch a set of files or places as shown. The headings for these places, shown in the window task bar at the bottom, are linux, news, ouellett and places.


The next image shows examples of 3 special menus:
sparky linux