1. Introduction to Debian Linux & Openbox 2. Pcmanfm File Browser
3. Openbox Desktop 4. Wallpaper Geometry
5. Wallpaper Geometry for Dual Monitors 6. .Desktop Files
7. Installing Oracle-Java & Java Programs 8. Wine, Wine Programs and Skype
9. Menu Menu Menu 10. Links to Other Stuff

1. Introduction to Debian Linux & Openbox

What is Linux? Linux is an open-source computer operating system that offers a free alternative to Microsoft Windows and Apple Macintosh. The key word is free. This not only means it will cost you no money to install a Linux operating system on your computer but you will be free of all the hinderances, protections, secrecy, security updates and handicaps that automatically come with a proprietary system whose main purpose is to make a livelihood for a small set of people. Everything in Linux is open for anyone to see and change. This means that when your system misbehaves, there is a good chance that you can find and correct the cause, or find someone or some article that fixes the problem. This means that you can design a file system, a desktop and a set of applications the way that you like. You do not have to accept a single, rigid system, which is basically all that is offered by Microsoft and Apple. Finally, Linux works, and can be easily designed to work faster than any of the proprietary competitors!

Distrowatch (12/2016) lists 834 Linux operating systems of which 279 are still "active." A newcomer investigating the subject is likely to be overwhelmed by the number of choices. After being a regular linux user and trying many of these distributions for several years, I've come to the conclusion that this apparently huge choice list is misleading. Most of these distributions are mild perturbations of a few major distributions. Many are hobbies of one or two people and do not really offer anything new. They are occasionally unreliable, and can disappear almost instantly should the developer(s) quit. I think it is wisest to stay with a major distribution, or a known popular close off-shoot that has a large support group and forum.

Debian, which is my personal favorite, is one of the oldest active Linux distributions and has an amount of software packages far exceeding any other Linux distro. Many distributions, including 2 of the most popular, Mint and Ubuntu, are based upon Debian. This means that all of these distros with respect to useage are very similar. Debian has three different branches upon which operating systems are built. Unstable has the latest and greatest software. The name is somehow unfortunate, because stability only becomes an issue when updating, which can be a problem in any distro and depends more on the how well you and the distro manager control the sources, than the nature of the underlying distro. Stable contains the latest officially released version of Debian. This is the production release. Testing branch contains packages that are in the queue to be accepted into the stable branch.

Chart 1.

I prefer an operating system that faithfully and rapidly does the job and keeps the resource useage low. Chart 1 on the right shows a 2013 memory useage test for the main Linux desktops and window managers. The first 13 entries on this list are just window Managers and should use less memory than a complete desktop, which usually includes a window manager and other things like panels, menus, a filebrowser, a text editor, terminals, a system manager, desktop launchers, etc. The price paid for a complete desktop is loss of simplicity, greater memory useage and most of all, conforming to someone else's strict design and layout rules. I adhere to the KISS principle: "Keep It Simple, Stupid", and prefer to design my own desktop. I start with the best possible window manager and then add other items as needed and best satisfy my own special way of doing things. Of course, having some knowledge of the choices available and what each brings to the end result is helpful, if not totally necessary. Here, practice makes perfect, and one can always go back by replacing something that does not work as expected by something different.

My choice for window manager is Openbox, and the competition is not even close. Openbox is one of the lightest, fastest window managers available Configuration is done in a very natural way and simple for anyone who can read and type. The versatility and control offered for the effort is well worth the time. Openbox has been around a long time; it is the window manager for the LXDE desktop and the basis for many operating systems that do not come with one of the pre-designed desktop packages. So a huge online literature exists to help beginner-to-expert configure, expand and enhance his own special desktop when starting with openbox.

Besides the window manager, a workable desktop requires, as a minimum, a package manager, a file manager, a text editor, an image viewer, a web browser, a terminal and a login manager, although the latter is not required by openbox. Debian uses apt-get to manage packages. I also appreciate a graphical installer. The best, most reliable is synaptic, to install: sudo apt-get install synaptic apt-xapian-index .

There are several minimal installs available that start with Openbox. They are usually based on a particular distibution. Some are more "minimal" than others, so it is wise to do a little beforehand research. My preference is SparkyLinux MinimalGUI - No Codecs, based upon Debian Testing, because it is not so minimal as to require a lot of mundane setting up, but, on the other hand, has very little bloat. For those who like Ubuntu and the vast Ubuntu repository app collection and vast support network, there is Icebox, a minimal openbox distribution similar to Sparky that can be easily built into a full-fledged operating system. For a detailed configuration recipe, see Icebox Configuration.

I use audio and video a lot, so I immediately install the Codecs. The Sparky developers have envisaged this would be the case for most users, and have supplied a tool for doing this. Just go to the main (right click desktop) menu and click Multimedia>Install multimedia codecs. In addition: sudo apt-get install transcode vobcopy vorbis-tools. The file for ffmpeg in most Linux repositories is notorious old, for example, may not be able to play some modern commercial DVD's. I recommend downloading the latest version (last entry on the list). Extract the files, which are ffmpeg and ffprobe, and move them to /usr/bin, replacing the old files there with the same name. Be sure the replacements are executable.

Sparky has a very smart developer(s) who work(s) very hard to keep the Sparky operating system compatible and very up-to-date with the main Debian Testing Repositories as well as the Sparky Repositories, which integrate into the Sparky system useful tools and applications from other sources than Debian Testing. In my opinion, reliable, stable updating is the biggest consideration in having a stable, reliable ongoing Linux operating system, and this is where Sparky really shines.

The main applications that come with SparkyMinimal are: fbpanel ftp gdebi gpicview leafpad lightdm lxrandr lxtask lxterminal midori network-manager nitrogen obconf obmenu-generator openbox pasystray pavucontrol pcmanfm poppler-utils pulseaudio pulseaudio-utils scrot synaptic xarchiver xbacklight xscreensaver xscreensaver-data. Almost all of these are essential for me and probably for most users. The only certain changes that I make are: sudo apt-get install geany mirage vlc lxappearance         sudo apt-get remove --purge gpicview. I keep leafpad as a backup text editor, and probably replace midori with my favorite web browser of the moment. I prefer geany as a main text editor because of the text hi-lighting and the tool to directly launch .html files with a web browser. I prefer mirage because it has some simple image editing tools like resizing, cropping, rotating and adjusting saturation. Lxappearance is a light weight tool to pick GTK+ themes for both the user and root. To pick the theme for root, launch lxappearance as root by putting sudo lxappearance in the terminal. To pick the theme for user, just open lxappearance and choose directly. Synaptic not launching can be sometimes corrected by just making the user and root themes the same. For more information and pictures of different themes, see Openbox Themes.

Obmenu with extra items and submenus

All Openbox distributions come with obconf for customizing the desktop, and, in addition, modern ones come with obmenu-generator for making a better menu. In general, menu for launching applications and the like do not usually come within a window manager, which as the name indicates is for controlling windows. Openbox is somewhat an exception in this regard because it does have a minimal menu called the Root Menu, which by itself can be highly configured and built-up into a major menu that launches by right clicking any empty spot on the screen. For more information on the Root Menu. see Openbox Menu.

Obmenu-generator replaces the usual diminitive openbox root menu with an expanded, dynamical menu, the obmenu, which is similar to the menus that come with a complete desktop installation. Right clicking any empty space on the desktop will launch the Obmemu, which is categorized and which automatically adds to the appropriate category new applications that come with .desktop files. The Obmenu retains all the configurability that was part of the old openbox root menu. The configuration is done in ~/.config/obmenu-generator/ Thus, Openbox and Obmenu-generator are half-way to a complete Desktop by themselves. On the left is an image of an Obmenu. Its file has been edited to include 8 often-used apps in the top section for quick launching, then comes the 12 dynamical categories automatically populated by Obmenu-generator, and at the end is a set of openbox pipe menus and user-created static submenus. For more information on Obmenu-generator, see Openbox Dynamical Menu.

Of course, I add many other applications and tools special to my personal needs and desires. I will talk about some of these and problems that sometimes occur with Debian Linux based systems in general in what follows and in the linked pages in Section 11 below. If dpkg is installed, then you can find out if a given application with name "app" is installed by running the following in the terminal:

   dpkg -s app.

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 Linux internet browser situation has recently (2016+) gotten complicated with the advent of several new, modern, fast browsers. The problem is to find one that can faithfully play all the video types that are currently being used on the internet. At the moment I have no favorite because of this problem.

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:

All the above named browsers, except slimboat, chrome and maxthon are in the sparky repositories and can be installed using apt-get or synaptic. 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. I like a light-weight browser that is fast, stable and plays all videos.

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.

2. Pcmanfm File Browser

pcmanfmleftpanel Pcmanfm Side Pane
Pcmanfm App Menu
Shadowed Icons
Drag Dropdown Box
Pcmanfm has been retooled and greatly improved in the last few years and is definitely my file manager of choice. It is also a natural choice to couple with a stand-alone window manager that doesn't come with a complete desktop, because Pcmanfm always comes with a complete dynamical applications menu of its own, thus, filling in that part of a complete desktop. To launch that menu, the user just left-clicks the Applications indicator in the left panel. See photos on the left. See Section 6 below for more information on linking the Pcmanfm Application Menu to panels, the Openbox Root Menu or a desktop if installed.

To configure Pcmanfm in general, go to Edit>Preferences in the heading and make your choices. Under the General category, I always choose to Open files with single click, and for the "Default drop action:" Ask. The latter is very important because when you "drag and drop" a file between directories, a drop down box (see image on the right) will let you choose whether you want to move or copy the file. You then choose, and there is no doubt what you have done. In the Display category I find it very useful to tick Show icons of hidden files shadowed. That way if you have your generally numerous hidden files displayed (in your home directory), it is still easy to find the regular files (see image on the right). The Layout category lets you choose the directories that you want to appear in the top of the side panel. In the Volume Management category, I check the first 3 boxes, which means pcmanfm automatically mounts removable media (thumbdrives, etc).

All removable media and extra partitions on internal hard drives should be listed in the second group on the side panel with a little indicator (upward arrow) on the right side for each one confirming it is mounted. See the image on the left where all the media except "147 GB Volume", which is a partition on the internal drive, are mounted. Left-clicking the little arrow will dismount the corresponding medium. Left-clicking an unmounted partition will automatically mount and open it.

The third group of directories in the side panel are Bookmarks, which you choose by opening the desired directory and then clicking "Add to bookmarks" from the Bookmarks entry in the pcmanfm heading. The image on the left shows a side panel with the 6 places entries, 10 external media entries and 11 bookmarked directories. The bookmarks for pcmanfm are listed in ~/.config/gtk-3.0/bookmarks. A very useful pipemenu,, exists and can be downloaded from this website:

        wget .

It automatically displays the bookmark entries on the side panel as bookmarks are chosen or removed. Put into /opt/menu and make it executable: sudo sudo chmod 755 /opt/menu/ See Openbox Dynamical Menu for guidelines for putting a pipemenu into the main menu or putting it on a desktop panel.

Pcmanfm can be configured to allow just about anything to be listed in the pop-up box that appears when right clicking a file or folder, the so-called file browser right-click menu. For me the big advantage offered by the browser right click menu is to have tools that quickly open root files for configuring or modifying. The Linux file hierarchy organizes all the files on the computer into 2 major groups, the files that belong to individual users and the rest of the files, which are called root files and can be accessed (except for reading) by just the computer administrater, who is called root. Most Linux systems are not in a corporate environment but are just on an individual home computer, so the user and root are the same person. If you are root and are a slow typer like me, then you appreciate any way that allows meaningful access to files without typing words, which is the essence of using the terminal.

Madebits released a nice deb in 2015, which adds the 8 actions shown in the box on the left, to the pcmanfm action menu.

custom actions
Pcmanfm Custom Actions
actions-open with
Right Click Open With
          Open as Root
          Edit as Text
          Backup File Here
          Copy to Folder
          Empty Trash
          Copy to Folder
          Set as Wallpaper
          Create Desktop Shortcut
Madebits Actions
[Desktop Entry]
Name=Run Slideshow

[X-Action-Profile mirage_on_folder]
Exec=mirage --fullscreen --slideshow %f

[X-Action-Profile mirage_on_images]
Exec=mirage --fullscreen --slideshow %F


You can download madebits-pca_1.0.0-1.deb from the github link given above or from this website:

        wget .

Install using either gdebi or dpkg. The key file type to get an item listed in the pcmanfm right click action menu is a special .desktop file. I will elaborate more on .desktop files in general in Section 6 below.

The madebits program puts the 8 pertinent .desktop files in /usr/local/share/file-manager/actions and the corresponding exec files in /opt/madebits-pca_1.0.0. They make the custom actions (see photo on right) available to all users. If you do not retain leafpad in your installation, then you need to edit with a text editor the "Edit As Text" file to replace "leafpad" by your text editor's name, and if you want it available for root text files, which I think is the whole purpose for having it, then put gksudo" before the exec command. I similarly put gksudo before the commands in "Rename Shortcut", "Copy to Folder" and "Backup File Here".

"Create Desktop Shortcut" and "Set as Wallpaper" will not immediately work in the pure window manager environment that we have been so-far discussing. So an additional app has to be involved in setting desktop icons and changing wallpaper, or additional configuration of pcmanfm has to be done, which we will discuss after the next paragraph.

Nitrogen, which is already in the Sparky Openbox installation, is another app that works well for controlling wallpaper. Nitrogen is reliable, versatile and has a very nice Wallpaper Changer script (see the end of Section 4 below) that can be set up to automatically rotate the wallpaper at whatever interval the user wants. I also prefer app or file launchers, if any at all are to be on the desktop, to be in a panel. So the failure of these 2 actions does not bother me.

However, if you have to have desktop icons (launchers), then you can accomplish that end by putting pcmanfm in charge of the desktop. To guarantee this is the case, add the line pcmanfm --desktop & to ~/.config/openbox/autostart, if not already there.

/usr/bin/pcmanfm -w ~/wallpaper/$(shuf -i 1-55 -n 1).jpg

Putting pcmanfm in charge of the desktop means then pcmanfm also controls wallpaper (pcmanfm --desktop-pref), which means you have to do a little bit of extra work to get a wallpaper changer and/or rotator. I do this with the simple shell script in the box on the left, which randomly picks a wallpaper from my wallpaper directory, ~/wallpaper, which contains 55 images formated as jpg's and exactly, or at least approximately, the size of the screen resolution (See Section 4 below for more on resizing images for wallpaper.). The image files are named numerically: 1.jpg, 2.jpg, ..., 55.jpg. I name this text file pcchanger, save it in /usr/local/bin and make it executable. I also add pcchanger & to ~/.config/openbox/autostart and put an app launcher for it on a panel. All this means that every boot will randomly choose a new wallpaper, and anytime thereafter, I can replace that picture with a new one by simply clicking the panel icon. Or you can set up an automatic rotator by using Conky or Crontag - see Wallpaper Changer-Rotator. Finally, I choose a default wallpaper-mode (usually screen) by editing the appropriate file in ~/.config/pcmanfm/default.

On the upper-left is a box containng a desktop file, mb-slideshow.desktop that will produce an image slide show from the pcmanfm action menu. Put it in /usr/local/share/file-manager/actions and make it executable. Then, either right-click a directory containing some images or select two or more images in a directory and right-click that selection to bring up the action menu from which "Run Slideshow" should appear. Left-clicking "Run Slideshow" should start playing a full screen slide show of the images enclosed in that directory, provided mirage image viewer is installed. If you have a different image viewer and it has a slide show setting, quite likely it can be used instead of mirage. Just edit mb-slideshow.desktop replacing the word "mirage" with the name of your image viewer. It might be wise to also edit /usr/share/applications/mimeinfo.cache to put "mb-slideshow.desktop" in the line for inode/directory and the line (make one if there isn't one) for images/*. This is the main file of several that pcmanfm uses to populate the actions menu. For more information on this subject, see The Skiing Cube.

The pcmanfm right-click launch menu has a special "Open With >" category. See the image on the upper right. This chooses a list of favorites, for lack of a more precise name, for dealing with the chosen file. I would guess the choices here are generated by the file-app associations in /usr/share/applications/mimeinfo.cache. In any case, it is easy to supplement this group with new launchers by putting appropriate .desktop files into /usr/share/applications. I use the 4 shown in the following table.

[Desktop Entry]
Name=Play Audio Randomly
Exec=vlc -Z

[Desktop Entry]
Name=Send to Root Trash
Exec=sudo /usr/bin/trash

[Desktop Entry]
Name=Name=Make file executable
Exec=sudo chmod -R 755

[Desktop Entry]
Name=Make me file owner
Exec=sudo chown me


Playaudio.desktop puts "Play Audio Randomly" into the special "Open with" group when a folder is selected. Clicking it should start vlc playing the audio files in that folder, choosing the first one randomly. If you are not using vlc for audio, then replace vlc in the "Exec=" line with the name of your audio player. It might or might not play, depending upon the player. The remaining 3 desktop files are simply aides to quickly deal with executing, owning or deleting root files. I display them in the system category of the menus to guarantee they can be found in case the mime associations are not sufficient to pop them up in the initial "Open with" group. You can probabily safely use "NoDisplay=true".

modified icon for geany-root

An alternative to "Edit As Root Text" is to create a geany-root.desktop, presuming geany, for which "Edit As Root Text" does not seem to work, is your text editor, by editing /usr/share/applications/geany.desktop to have Exec=gksudo geany:

    sudo geany /usr/share/applications/geany.desktop.

Do not save it as geany.desktop but rather as /usr/share/applications/geany-root.desktop. Now your menus, including the menu that comes up when you right click a file, will show both geany and geany-root.

Similarily, an alternative to "Open As Root" is to create a pcmanfm-root.desktop by editing /usr/share/applications/pcmanfm.desktop to have Exec=gksudo pcmanfm, and then saving it as /usr/share/applications/pcmanfm-root.desktop.

As an alternative to the "Custom Action" Backup File Here, files can be also saved (insurance before editing, for example) by opening as root the directory containing the file, right clicking on the file and choosing Compress, which will compress the file into a tarball. Then delete the original file. To return the original file (if ever needed), right click the tarball and choose Extract here.

Other useful features for Pcmanfm are a dual-pane view: View>Dual Pane Mode, and the ability to directly launch through a Custom Command Line: Right Click File>Open With>Open With>Custom Command Line. I find the latter much easier than using the terminal directly, because it does not require typing in the app name or path-to-the app since you are already on it via pcmanfm.

With all the functionality described above and with almost 100% stability, pcmanfm is one Linux application with which I am 99.9% happy!

3. Openbox Desktop

imagine curveddark
Openbox Imagine CurvedDark Theme
ripstop widget theme
Ripstop Widget Theme
Although Openbox is just a windows manager by design, the addition of few tools and apps makes it essentially indestinguishable from a desktop. There are 3 installed GUI's (Graphical User Interfaces) for customizing the desktop, excluding panels and wallpaper: The many options in these 3 GUI's should be fairly straight forward. Obconf contains 8 tabs, each containing a different set of configuration parameters: Lxappearance has 6 tabs:

The Obmenu above at the end of Section 1 displays the Elegant_Brit theme whereas the same menu on the left is set in the Imagine CurvedDark theme. See Openbox Themes
for more information, and for many images. The image on the right shows a panel-based menu and an open pcmanfm using the Ripstop Widget theme and the Imagine Curved Dark Openbox theme. Here the menu background and the pcmanfm side and top panes are styled by Ripstop. Most menus get their background from the Obconf theme. It appears only trial and error can tell which theme controls which part of a given window.

In the Settings category of Obmenu is Screensaver, a GUI for configuring the timing and behavior of screensavers. Each installed screensaver has 3 files associated with it:

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

Model of Action Keybindings in rc.xml
Just delete (as root) these 3 files associated with a given screensaver to remove it from your computer, which will be probably almost all of those in a typical 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.

Keybindings are configured in ~/.config/openbox/rc.xml. 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.
For more about editing rc.xml, especially menu key bindings, see Openbox Menu.

My panel of choice is fbpanel (570 kb), because it is light, stable and just about infinitely configurable. Also, you can put fbpanels simultaneously on all 4 edges if desired. Below is an image of a fbpanel, and more information is available at Fbpanel.


4. Wallpaper Geometry

The default wallpaper folders depend upon the distribution. In Sparky Openbox it is /usr/share/wallpapers, but I prefer an easier accessible folder in my home directory, ~/wallpaper, where I can quickly store any nice image of the same size as the resolution of my screen monitor. 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 by 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 (image + canvas) is set to go as a 1680x1050 wallpaper. All this can be easily accomplished by using a photo editor like Image Magick or like PhotoFiltre Editor. The latter 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, but Nitrogen is. 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. See Section 5 below for the tecnicalities of setting up dual monitors as an extended desktop.

We already discussed in Section 2 how to edit the Openbox autostart file to assure nitrogen is in charge. However, if you have lxsession or the complete lxde desktop installed, then you should probably also edit the lxsession autostart file, ~/.config/lxsession/autostart or ~/.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.

#! /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. Or use crontag (See Wallpaper Changer & Automatic Rotator) to control the rotation if you prefer a lightweight controller.

5. Wallpaper Geometry for Dual Monitors


Install Arandr: sudo apt-get install arandr. Arandr can set-up placement, orientation and resolution for each monitor. Open Arandr and geometrically align the monitors. For a bottom panel across both monitors, align the bottoms of the displays as in the image on the right; for a top panel across both monitors, align the tops. Generally you cannot achieve a second horizontal panel across both monitors. The displays would have to be the same height to get a full second panel. However, you can set-up a second horizontal panel in general on the display whose unaligned edge is outermost, since its extension onto the smaller display will not bother the view because it will be hidden. Otherwise, the horizontal placement and geometry in general can be achieved in the usual way. 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, or put into the Openbox Autostart file: ~/.screenlayout/ & .
For those who want to build an alignment shell script from scratch, a typical dual monitor command is illustrated on the left. I speculate the primary laptop monitor data has to come first in the command, and then comes the placement data for the auxillary screen.

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 rectangular wallpaper images that cover the extended desktop and consist of background and two images such that the image on the left centers on the left monitor, the image on the right centers on the right monitor and the backgrounds are off the screens. 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 by, if needed, using background canvases for the smaller dimensions as described in the previous section. 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 Image Magick, or a simple GUI photo editor like FastStone Image Editor 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 upper 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.

6. .Desktop Files


There are three Types of desktop (.desktop) files in Linux distributions: application type, link type, action type. Examples of application and link types are illustrated on the right. These two images can be used as templates for all .desktop files of these types. An action type was shown in Section 2 above. 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 desktop files is the following:

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.


There is an excellent Java based application, Lxmed, that can be used as a GUI for making application type .desktop files, as well as finding those that already exist on your computer. See the image on the right. To install: sudo apt-get install lxmed . Lxmed can be used to directly edit any application's desktop file by opening it, and then clicking Properties>Edit code manually for that application. Lxmed can be used to construct an application's desktop file by highliting the desired Category, clicking New Item, filling out the form and then clicking OK. The new .desktop file for that application will be saved in /usr/local/share/applications.

In a desktop controlled by pcmanfm (See discussion about this in Section 2 above.), a user can link an internet site to his desktop by putting a link desktop file into ~/Desktop with URL=path-to-site. An example is the lxde-guide.desktop example on the upper-right. 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; for example, the xkill.desktop example on the upper-right will create a launcher for the xkill tool.

[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 to the Pcmanfm App Menu pictured at the beginning of Section 2. This offers a nice alternative for getting a dynamical menu in an Openbox Distro without Obmenu-generator.

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 with openbox+pcmanfm. 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. 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 on a panel 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.

7. Installing Oracle-Java & Java Programs

Java is one of the equalizers in the general microsoft-apple-linux 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)is probably the best available java. It installs easily in Linux and is free to at least home users. We just mentioned in the previous section lxmed, an application written in java. Others are Arachnophilia HTML Editor, which was used to construct this website, jEdit text editor, for programmers or beginners, Vuse, an excellent bittorrent, and for me, the indespendable CloudStickyNotes, to name a few. These are all good, free java applications that run on any Linux system with java.

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. Oracle regularly upgrades their programs, so by the time you read this, the number "45" will be a much bigger number. Of course, if you download a JRE package with a different number, then you have to use that number instead of "45" in all the following commands.

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

    java -version.

If you are using Sparky Linux and have installed the multimedia codecs packages as described in Section 1 above, then you have also installed some version of openjdk-icetea. It appears openjdk-icetea has improved in the last few years, so you should give it a try with your java apps before fooling with Oracle java. Otherwise, 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.
Some of my favorite Java apps are illustrated in the table 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.

Vuse Torrent Client


Vuze is feature rich torrent client with a torrent search and 10 information tabs about the state of the current download: General, Sources, Peers, Swarm, Pieces, Speed, Files, Info, Options, Privacy



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

Three other favorite java based applications, illustrated elsewhere in this website, are Arachnophelia, Lxmed (See Section 6.), Streamtastic (See Section ).

8. 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.

There have been some recent improvements made for Wine, which are reflected in a new program named wine-staging. It apparently does everything wine did plus more, especially relative to games. It is also easier to install than regular wine, but is quite heavy. To install (for Debian-base distro), first, add the wine-staging repository to your /etc/apt/sources.list:

   deb sid main.

Since Sid is the so-called unstable version of Debian, you may want to try the other repositories first by replacing "sid" in the above command by one of "wheezy" (old stable), "jessie (new stable)" or "stretch (testing)". With Sparky 4.5.2, only "sid" seemed to work. Next, add the repository key:

   sudo apt-key add Release.key .

To complete the installation:

   sudo apt-get update
   sudo apt-get install wine-staging .

The execs are /opt/wine-staging/bin/wine and /opt/wine-staging/bin/winecfg. For the corresponding recipe for Ubuntu based distros, see Icebox Configuration.

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 ~/bin/PhotoFiltre/PhotoFiltrePortable.exe
   Exec=wine32 ~/bin/FSViewer52/FSViewer.exe

appropriately edited to give your addresses to the .exe's, if not set up the same as mine.

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 Obmenu, or just create from scratch a .desktop file in /usr/share/applications for each app (see Section 5 above.).

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.

9. Menu, Menu, Menu

In an openbox based distribution, the Obmenu pictured in Section 1 or an expanded Root Menu, is generally the primary menu, and a user really does not need anything more. However, many suppliments, which can increase convenience, asthetics and sometimes are easier to implement than adding more items to the main menu, are available. Also, having similar items grouped together and not always popping up when the main menu is opened is nice. Most of these extra menus are quite easy to install and configure. Below are three images showing some of what is available.

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


10. Links to Other Stuff on This Website

Panels & Docks Apps GUI
Fbpanel Arachnophilia HTML Editor
Openbox Dock Araneae HTML Editor
FastStone Image Editor
Menus & Menu Configuring PhotoFiltre Image Editor
9menu My Preferred Applications
Menu Category Configuration Miscellanious
MyStuff Menu Time Code & Config
Openbox Root Menu, Sub-Menus, Pipe Menus Alternatives & Galternative
Openbox Dynamical Menu Auto Login, Password Change, Name Change
Ftp Network Set-Up
Terminal Launched Apps Icebox (Ubuntu-based Openbox Configuration)
Using Xdotool to Launch Terminal Apps Network Sharing, Wireless Problems & Printers
Ffmpeg - Media Editing Openbox Themes
Image Magick Recording Audio
PDF Viewing & Editing by Command Line or Xournal Recovering Grub
Poor Mans Radio Player Setting Up Samba for File Sharing
Wallpaper Changer-Rotator XFCE-4 Openbox

Send Us Your Feedback!

Email Adress:

Comment 1/07/2017. Thanks for a great guide: I do pretty much the same with my OpenBox setup, and I think it's a shame that Debian does not release a minimal OpenBox version. Good choice with SparkyLinux: I use it myself, and it will soon be changing to Debian stable. Another one to look at is DebianDog. Ones to not look at, because they are so bloated with heavy default applications (LibreOffice/GIMP/etc!?) that they defeat the purpose of 'lightweight', are SalentOS and Bunsenlabs, neither of which support MBB.