Translate
VOLUME:     Click to Play or Stop Radio - Stations:
Greece
France
SanFrancisco

LINUX OPENBOX & PCMANFM GUIDE

1. Introduction to the Openbox Window Manager 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. Firefox 5.7+ Qauntum 10. Menu Menu Menu
11. Links to Other Stuff 12. Comments

1. Openbox Window Manager

Openbox is one of the lightest, fastest window managers available Configuration is done in a very natural and simple way 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. I prefer Debian based systems, which uses apt-get to manage packages. I also appreciate a graphical installer. The best, most reliable is Synaptic Package Manager. To install: sudo apt-get install synaptic apt-xapian-index .

There are only a few minimal operating systems 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. It is not so minimal as to require a lot of mundane setting up, but, on the other hand, contains very little that you wouldn't eventually install anyway. 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 Minimal, 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 some Linux repositories can be notoriously old, which is not the case in the Sparky repository. Sparky has a very smart developer(s) who work(s) very hard to keep the Sparky repository compatible and up-to-date with the main Debian Testing Repositories. In addition, they integrate into the Sparky repository useful tools and applications from other sources that are compatible with Debian Testing. In my opinion, reliable, stable updating is the biggest consideration in choosing a 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.

obmenu
schema.pl with extra items, pipemenus and submenus
I keep leafpad as a backup text editor, and replace midori with Firefox Quantum, because of its speed and stability, and because it has the best tools for some things that I often do. I prefer geany as a main text editor because of the text hi-lighting, plug-ins and the tool that instantly launches .html files in the web browser of your choice while writing html. 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 into the terminal. To pick the theme for user, just open lxappearance and choose directly. Problems with apps, particularily 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.

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, a 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. The openbox root menu is also rather unique in that it launches by right clicking any empty spot on the display. For more information on the Root Menu. see Openbox Menu.

Obmenu-generator is the best route to upgrade the root menu, or, more accurately, replace it with a simlar dynamical menu that is more user friendly. To be dynamical means the obmenu-generator root-menu (obmenu) automatically adds to the appropriate category any new application that come in with a .desktop file. Furthermore, the obmenu retains all the configurability that was part of the old openbox root menu and reflects any editing instantly upon saving the configuration file, which is ~/.config/obmenu-generator/schema.pl. You do not even need to restart openbox for an edit to take effect.

Thus, Openbox and Obmenu-generator are half-way to a Desktop, complete with a dynamical menu, which can be easily supplemented with other items special to the user. On the left is an image of an open obmenu. Its schema.pl configuration 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, user-created static submenus and a special Advanced Settings category to open the configuration files associated with openbox, obmenu-generator and any other tools that the user might like to add. For more information on Obmenu-generator, see Openbox Dynamical Menu.

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

2. Pcmanfm File Browser

pcmanfmleftpanel Pcmanfm Side Pane
pcmanfm-app-menu
Pcmanfm App Menu
copy-move
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 and dynamical panel menu, because Pcmanfm does come with a complete dynamical applications menu of its own. To launch that menu, the user just left-clicks the Applications indicator in the left panel of an open pcmanfm. This will launch the pretty categories menu pictured on the immediate left. This menu is similar to the popular xfce4-whisker menu in having a pretty picture, being hard to edit and requiring at least 2 clicks to actually launch an app. See Section 6 below for more information on linking the Pcmanfm Application Menu to panels, Obmenu or a desktop icon.

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 important because when you "drag and drop" a file between directories, a drop down box (see image on the immediate 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 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). To the question, "Do not generate thumbnails for files exceeding this size:", I increase the size to the maximum allowed, which is around 32,000 KB.

shadowedicons
Shadowed Icons

[Thumbnailer Entry]
TryExec=convert
Exec=convert %i[0] -thumbnail %s %o
MimeType=application/pdf;application/x-pdf;image/pdf;

imagemagick-pdf.thumbnailer
Pcmanfm supports image thumbnails out of the box, but to view thumbnails of other file types, information provided in the files located at /usr/share/thumbnailers is used. Most minimal Linux operating systems do not populate the thumbnailers directory. So do sudo apt-get install ffmpegthumbnailer exe-thumbnailer to have thumbnails for video files and windows .exe, .lnk, .msi, .dll files. To get thumbnails for pdf files, create imagemagick-pdf.thumbnailer as in the box on the right, put it in /usr/share/thumbnailers and make it executable.

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) and internal media provided the system is programed to allow such mounting. 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 far 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 file for configuring what devices can be automatically mounted, that is, mounted without using a password, is /usr/share/polkit-1/actions/org.freedesktop.udisks.policy. The contents of this file is fairly self-evident. Each type of media is given a section in which the entry <allow_active>auth_admin_keep</allow_active> will force requirement of a password, whereas <allow_active>yes</allow_active> will not require password.

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, pcmanfm-bookmarks.pl, exists and can be downloaded from this website:    wget http://lxlinux.com/pcmanfm-bookmarks.pl . It automatically displays the bookmark entries on the side panel as bookmarks are chosen or removed. Put pcmanfm-bookmarks.pl into /opt/menu and make it executable: sudo sudo chmod 755 /opt/menu/pcmanfm-bookmarks.pl. See 16 Best Openbox Pipemenus for more information on the pcmanfm-bookmarks menu, and see Openbox Dynamical Menu for guidelines for putting a pipemenu into the main menu or putting it on a desktop panel.

I like toolbars and action buttons be displayed to speed-up launching, so I always put a tick in all the boxes offered up by going to View>Toolbar. The Advanced category allows a user to integrate a terminal and archiver into pcmanfm's actions. I complete the first two boxes as follows:

    Terminal emulator:     -terminal-emulator -e %s
    Format command:     bash -c 'x-terminal-emulator --working-directory "$PWD"'.

Now a terminal can be launched directly from pcmanfm in the directory in which pcmanfm is open. Just go to the pcmanfm's heading menu and click Tools>Open Current Folder in Terminal, or click F4.

#!/bin/bash
pcmanfm &
sleep 1
xdotool key "F3" &
xdotool click "1" &
exit0

pcmanfm-dualpane.sh
A special action available in the pcmanfm's arsenal is the Custom Command Line action: Right Click File>Left click "Open With">Left Click "Open With">Choose "Custom Command Line">Type "Command line to execute" on file. I find the latter much easier than using the terminal directly, because it does not require directly launching the terminal or typing the path-to-the file, since you are already on it via pcmanfm. Other file manager actions for pcmanfm are discussed in the "Pcmanfm Right Click Menu" below.

Pcmanfm has a dual-pane view, which can be launched from the header menu as follows: View>Dual Pane Mode. To have a menu, panel or desktop launcher, use a text editor to create pcmanfm-dualpane.sh shown on the right. Put pcmanfm-dualpane.sh in /usr/local/bin (on the path) and make it executable. Now, exec=pcmanfm-dualpane.sh can be used to directly open pcmanfm in dual-pane mode. You will need to have xdotool installed.

Pcmanfm as an FTP Transporter

I think most users use a special software, such as filezilla or gftp, to transport files between their websites and computers. With pcmanfm installed, these special softwares are no longer necessary, because pcmanfm has the ability to connect to your website, or to the files on another computer, provided the other device has an ftp server program installed. Files can be copied or moved anywhere inside or between the website operating system directories and your computer directories by "drag and drop", or any of the usual ways.

And there is no limit to the number of files transported at the same time as is the case with web browsers. Most protocols, for example, ssh, sftp, ftp, etc, are supported. All that is needed is the protocol type, website name or inet address, username and password to the website. For example, I can add (mount) this website in pcmanfm places menu by entering     sftp://lxlinux.com    into the pcmanfm address bar and pressing the 'enter" key. A box will pop-up asking for the website username and password. Enter them and lxlinux.com gets mounted. The public contents of lxlinux.com is in a directory named "public_html". I navigate pcmanfm to that directory and then, add it as a pcmanfm bookmark. Next time I boot-up and open pcmanfm, public_html will still be in the bookmarks menu, and accessing public_html simply requires clicking that item and following directions. See the photo on the left showing lxlinux.com and public_html in the places and bookmarks menus.

In general, you should be able to similiarly connect to any another computer by using the ftp protocol and the inet address of the second computer. To get the inet address associated with a computer, run either of the following in the terminal:     sudo ifconfig -a      or      inxi -i . Look for a number like 192.168.1.11. Proceed by running      ftp://192.168.1.11     in the pcmanfm address box to bring up the user name and password box for the second computer. For this to work both ways, you need a server program such as vsftpd be installed in each computer: sudo apt-get install vsftpd. Configure /etc/vsftpd.conf by activating:
local-enable=yes
write-enable=yes
anonymous_enable=YES
chown_uploads=YES
chown_username="yourusername"
.

To restart vsftpd: sudo /etc/init.d/vsftpd restart.

Pcmanfm Actions Menu

          Open as Root
          Edit as Text
          Backup File Here
          Copy to Folder
          Rename
          Empty Trash
          Set as Wallpaper
          Create Desktop Shortcut
Madebits Actions
my actions
A Custom Actions Menu

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 or actions menu. Madebits released a nice deb in 2015, which adds the 8 actions shown in the box on the upper-left, to the pcmanfm action menu. You can download madebits-pca_1.0.0-1.deb from the github link given above or from this website:   curl -O http://lxlinux.com/madebits-pca_1.0.0-1.deb

The actions in the madebits program show the route in general for putting actions into pcmanfm. The madebits program puts 8 .desktop files for the 8 Madebits Actions in /usr/local/share/file-manager/actions and the corresponding exec files, where needed, in /opt/madebits-pca_1.0.0. This is the general rule for adding an action to pcmanfm: an action desktop file in /usr/local/share/file-manager/actions, or ~/local/share/file-manager/actions, and a corresponding exec script in /opt/madebits-pca_1.0.0. A menu, Custom Actions, for madebits generated actions is included in /usr/local/share/file-manager/actions. Each new action must have its name added to the list in Custom Actions. A custom actions menu is shown in the photo on the upper-right. These show additional actions not in the Madebits package. For details on adding the actions show here and others, go to the link: 18 Best Pcmanfm Actions.

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. 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, which is the usual way to access root files. 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 in the next subsection.

Pcmanfm Wallpaper Changer-Rotator

When pcmanfm is in charge of the desktop, app launchers can be put on the desktop by simply putting a copy of the application's .desktop file into ~/Desktop. See Section 6 below for more about desktop files. This is what the Creat Desktop Shortcut madebits action does. So you will want to retain it if you opt to have pcmanfm in charge of the desktop. To put pcmanfm in charge of the desktop, first, open ~/.config/openbox/autostart and either delete or comment out any references to nitrogen, and add the line
        (sleep 3s && pcmanfm --desktop) &.

When pcmanfm controls the desktop, then he also controls wallpaper changing and rotating. Unfortunately, the latest version (≥1.25) of pcmanfm is limited when extra monitors are used to create an extended desktop. Pcmanfm creates a different configuration file for each display. The main configuration file applies to the primary display and can be configured to automatically change the wallpaper at a given time interval, just as is the case with nitrogen or idesk. Unfortunately, the wallpaper for the extra displays have their own configuration files completely independent of the primary configuration file. Furthermore, they are set and fixed for a session at the start of each session. So the most one can reasonably do to extra monitors is set a new wallpaper at the start of each session, and thereafter live with that wallpaper for that session. No rotations during a session are easily possible.

#!/bin/bash
bash -c 'pcmanfm -w "$(find ~/wallpaper -type f | shuf -n1)"'
end

pcchanger

Setting up a wallpaper rotator for the primary monitor will be described next. See Section 5 (Wallpaper Changer for Dual Monitors) below for a session-changer recipe for extra displays and pcmanfm in charge.

First, create the simple shell script in the box on the left, which randomly picks a wallpaper from the wallpaper directory, ~/wallpaper. This directory should comprise images, which can be of any format,

extmediashrtcuts
preferably the size of the screen resolution for the primary display. See Section 4 below for more on resizing images for wallpaper. Name this text file pcchanger, save it in /usr/local/bin (on the path) and make it executable. Add the line pcchanger & to your openbox autostart file (~/.config/openbox/autostart) and put an app launcher for it on a panel. All this means is that every boot will randomly choose a new wallpaper for the main display, and anytime thereafter, you can replace that picture with a new one by simply clicking the panel icon.

The easiest way to create an automatic wallpaper rotator is to add the line ${execi n pcchanger}, where n is the interval of rotation in seconds, to the TEXT section of ~/.conkyrc, provided you have Conky installed.

TEXT
${execi n pcchanger}
If Conky is not installed, then install it (sudo apt-get install conky), and put the simple text file on the left into your home directory as .conkyrc, replacing any other .conkyrc that may be there. Using Conky as just a script launcher (wallpaper rotator in this case) is extremely simple, and such a Conky uses very little of the system resources. Alternatively, you can use Cron to set up an automatic rotator but that is more complicated, much harder to edit and uses more resources. See Wallpaper Changer-Rotator.

To complete the wallpaper set-up, open ~/.config/pcmanfm/default/desktop-items-0.conf with a text editor and edit so that wallpaper_mode=screen, and show_mounts=1 provided you want automatically generated desktop shortcuts to external media (usb drives). See photo on the right. Automatically getting desktop shortcuts for external media is one advantage having pcmanfm in charge of the desktop, but we will show in what follows that can be still achieved, with more control of what you see and where you see it, with idesk.

Idesk for Desktop Icons & Nitrogen for Wallpaper

If you opt to not put pcmanfm in charge of the desktop, then you lose the ability to put shortcut icons on the desktop by dragging application desktop files to ~/Desktop, or in the case of external media, having pcmanfm do them automatically. However, these loses can be more than made up for by using idesk for icons, and automatic wallpaper rotation over multiple monitors can be achieved by using nitrogen.

Nitrogen, which is already in the Sparky Openbox installation, is reliable, versatile and has a very nice Wallpaper Changer script that can be set up to automatically rotate the wallpaper at whatever interval the user wants. See the end of Section 4 and Section 5 below for information about configuring nitrogen.

halfdesk
Idesk Icons - Open MenuTray
table Icon
    Caption: Terminal
    Command: x-terminal-emulator
    Icon: /usr/share/icons/fbpanel/terminal.png
    Width: 36
    Height: 36
    X: 22
    Y: 580
end

terminal.Ink

Idesk is a delightful little tool for both adding desktop launchers and rotating wallpaper. It has been around a long time and further development appears dormant, but it hasn't lost any of its usefulness for at least setting up desktop shortcuts. Use synaptic or apt-get to install: sudo apt-get install idesk. Create a hidden folder in your home directory: mkdir ~/.idesktop. Launch a test run by putting idesk in your run program or in a terminal. A single, pretty, useless icon labeled idesk should appear on your desktop. Its only purpose is to create a file, ~/.idesktop/idesk.Ink, which can be used as a prototype for other useful desktop launchers. An image of a list of idesk launchers is pictured on the left, and on the right is the ".Ink" file that generates the terminal link. As you can see terminal.Ink allows the user to control virtually everything - icon choice, size, position, name, etc. For each application or place that you want a desktop link, you need to create the appropriate ".Ink" file and put it in ~/.idesktop. Here "Width" and "Height" are the pixel dimensions of the icon, "X" and "Y" are the pixel distances from the display's left side and upper side, respectively, to the center of the icon. Idesk is programed to help you determine numbers for X and Y if you prefer to not have to work out the math details yourself. Simply fill out the other entries in the .lnk file for your app or file, and then save it in ~/.idesktop. If it is an application, you can find the launch command by viewing the app's .desktop from /usr/share/applications or /usr/local/applications. Leave X and Y blank. Log out and then log back in. An icon should be somewhere on the desktop. If you have multiple monitors in an extended desktop set-up, then you have to be careful that the icon doesn't get hidden behind one of the smaller monitors (lesser resolution). The icon can be dragged to where you want it by holding down the mouse right clicker. Idesk will automatically record the coordinates for X and Y. However, it may record multiple values if your drag is a bit "shaky". So open the apps .lnk file after the drag and delete all the choices (including any empty ones), if any, for X and Y except the correct pair. There-after, the icon will always be placed at that position.

To complete setting up idesk to control desktop icons (launchers), replace pcmanfm's control of the desktop with idesk by putting

     idesk &
     pcmanfm --desktop-off &

in place of pcmanfm --desktop & in your autostart file.

The configuration file for idesk is a hidden file in your home directory: ~/.ideskrc. See idesk-useage for a configuration guide.

Idesk also includes a wallpaper control and rotator, but I have not always been able to get it to work faithfully. The latter even works for multiple displays, without any additional scripts, if set-up as described in the first part of Section 5 below. To activate, open ~/.ideskrc with a text editor and edit the wallpaper section to something like the following:

autostart
Part of My Autostart File
     Background.Delay: n
     Background.File: ~/wallpaper/image.jpg
     Background.Source: ~/wallpaper/

Here, "n" is the number of minutes for the rotation interval, and should be set to 0 to not rotate, in which case the background is chosen to be your choice for "Background.File". "Background.Source is the path to the directory containing the wallpaper that you want to use. There appears to be some problem, however, in that the idesk wallpaper rotator does not always work, probably because no idesk upgrades appear to have been done for many years.

My custom set-up has nitrogen controlling wallpaper, idesk controlling desktop icons and pcmanfm off with regard to desktop control. The desktop part of my autostart file is pictured on the right. You may have noticed in my autostart file and the Idesk Icons picture above-left the reference to Menutray. Menutray is a special panel menu that sits in the panel tray like clipboard, network, etc. In the photo it is the icon with the scripted "M". Menutray has the same structure as Obmenu, and for that reason I really like it and generally install it as an alternate and backup to Obmenu.

More Open With ...

openwith
Right Click Open With
There is a simple alternate way to load additional actions into the pcmanfm's right click menu. Please notice the picture labeled "Right Click Open With" on the right. It displays in its left column a category called "Open With", which, when opened, displays a list. On this list are some popular applications and 5 new "actions":    Run Slideshow, Make me file owner, Make file executable, Send to Root Trash and Play Audio Randomly.   These could be put in the Custom Actions category shown further down in the image, which I find preferable. See the link: 18 Best Pcmanfm Actions.

To put actions like these in the Open With category, create in /usr/share/applications a regular application .desktop file for each action. Each .desktop file has the entry "NoDisplay=true", which keeps it from being displayed in any of the regular application menus, which is needed because it is not set-up to be an application that launches from an app menu. Secondly, each file has a faithful "MimeType" list, which should put the action in the right click "Open With" action menu, as shown in the image above for just about any file for which you might want to use the action. If we have not entered all the files you need in this regard, then just add appropriate file types from those listed in /usr/share/applications/mimeinfo.cache to the "MimeType=..." line. You should also add in the lines for the mimetypes in mimeinfo.cache the names of the action desktop files that list those mimetypes. For more information on this subject, see The Skiing Cube.

Desktop files for these 5 actions follow. Copy and paste each to a text file, name them as shown and put them in /usr/share/applications. To repeat, add each name to the lines in /usr/share/applications/mimeinfo.cache that are associated with its mimetypes as listed in its .desktop file.

[Desktop Entry]
Name=Run Slideshow
Exec=mirage --fullscreen --slideshow %F
Icon=slideshow
Type=Application
StartupNotify=true
NoDisplay=true
MimeType=inode/directory;image/*;image/bmp;
image/gif;image/jpeg;image/jpg;image/png;
image/tiff;image/x-bmp;image/x-png;

runslideshow.desktop
[Desktop Entry]
Name=Send to Root Trash
Exec=sudo /usr/bin/trash
Icon=dia
Terminal=true
Type=Application
StartupNotify=true
NoDisplay=true
MimeType=all/allfiles;text/plain;inode/directory;application/x-desktop;application/xml;application/xml;text/html;text/css;

sendtoroottrash.desktop
[Desktop Entry]
Name=Make file executable
Exec=sudo chmod -R 755
Icon=dia
Terminal=true
Type=Application
StartupNotify=true
NoDisplay=true
MimeType=all/allfiles;text/plain;inode/directory;
text/x-java;text/x-perl;text/x-python;application/x-desktop;
application/xml;text/html;text/css;
makefileexecutable.desktop

[Desktop Entry]
Name=Make me file owner
Exec=sudo chown me
Icon=dia
Terminal=true
Type=Application
StartupNotify=true
NoDisplay=true
MimeType=all/allfiles;text/plain;inode/directory;
text/x-java;text/x-pascal;text/x-perl;text/x-python;
application/x-desktop;application/xml;text/html;text/css;
makemeowner.desktop
[Desktop Entry]
Name=Play Audio Randomly
Exec=vlc -Z
Icon=play
Type=Application
StartupNotify=true
NoDisplay=true
MimeType=inode/directory;application/ogg;application/x-ogg;
audio/ogg;audio/x-vorbis;audio/x-vorbis+ogg;application/x-flac;audio/flac;
audio/x-flac;audio/mpeg;audio/mpg;audio/m4a;audio/mp4;audio/wav;
audio/x-ape;application/x-shockwave-flash;
playaudio.desktop

To use "Run Slideshow", either right-click a directory containing some images, or select an image in a directory and right-click that selection, to bring up the "Open With" menu on 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 runslideshow.desktop replacing the word "mirage" with the name of your image viewer.

"Play Audio Randomly" is used similarly on a directory containing audio files or an audio file in the directory. The vlc audio player should start playing the audio files in that folder, choosing the first one randomly if you start by clicking the folder. 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 actions are simply tools to quickly deal with executing, owning or deleting root files. Applying any one of them to a root file will bring up a terminal for you to enter your password, after which pressing "enter" will complete the action.

#!/bin/bash
xdotool type "stat -c '%a - %n' *" &
sleep 1
xdotool key "Return" &
exit
prm

Pcmanfm to Show File Permissions

Construct with your text editor prm, as shown on the left. Put it in /usr/local/bin (on the path), and make it executable. Be sure xdotool is installed and prm is not already used as a command. Open any directory or folder with pcmanfm, press the f4 key, and run prm in the ensuing terminal. The permissions for each item in the file will be shown in the terminal.

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Name=Ctrl Alt Backspace
Comment=Allows Ctrl+Alt+Backspace to restart Xorg
Exec=setxkbmap -option terminate:ctrl_alt_bksp
Terminal=false
StartupNotify=false
Terminal=false

ctrl-alt-backspace.desktop

Ctrl-Alt-Backspace

The keybind combination Ctrl+Alt+Backspace has traditionally been the route to escape a computer freeze-up. You can restore it, if needed, in an Openbox-Pcmanfm environment by putting ctrl-alt-backspace.desktop on the right into /etc/xdg/autostart.

Geany Plugins

geany-plugins

My text editor of choice is Geany, who has been around a long time and has all the kinks worked out. Geany in its basic form is lightweight and fast. What is really nice about geany is the 50 or so plugins available. As long as Geany is active, there is no reason to use a text editor missing desirable tools. Put apt-cache search geany-plugin into your terminal to get a list of the geany plugins available in your system. To install any of one of them: sudo apt-get install geany-plugin-name, where 'name' is the plugin name as listed on the apt-cache search list. Then, go to Tools>Plugin Manager in the geany heading bar and check the box beside the plugin you want activated. An image showing my activated plugins is on the left. Activated plugins will be shown in the geany menu bar, mostly in the 'Tools" category.

A user can easily create personal templates that will automatically be listed in File>New (with Template) in Geany's header, provided they are stored in /home/me/.config/geany/templates/files/.

geany-root
modified icon for geany-root

An alternative to "Edit As Root Text" is to create a geany-root.desktop, presuming geany is your text editor, by opening as root /usr/share/applications/geany.desktop:

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

Edit it to have Exec=gksudo geany. Do not save it as geany.desktop, but rather "save as" 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 pcmanfm-root.desktop.

With all the functionality described above and with almost 100% stability, pcmanfm and geany are two Linux applications with which I am 99.9% happy!

Bbpager

bbpager
Bbpager is a desktop pager that displays a scaled down version of all the available workspaces on all the connected monitors, so you know what windows you have on each. However, the best part is that the big windows can be dragged by dragging their counterparts in the bbpager display. Fbpanel pager does not have this function. Bbpager allows you to drag windows around, even across workspaces, and to quickly jump them to another workspace even on another monitor. Because everything is miniaturized and grabbing works anywhere on the windows in the pager, any re-arranging can be carried out almost instantly. The image on the right shows multiple windows open on 4 desktops over 2 monitors connected as 1 surface. So the left half of each rectangle represents the left monitor and the right half represents the right monitor. The open windows are colored brown here. The active desktop is outlined in red. Sizes, numbers, colors, etc are all configurable in ~/.bbtools/bbpager.rc.

Top

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 a few tools, a panel and apps, and coupling it with pcmanfm file manager, makes the combination better (easier to use and faster) than the big fancy integrated Linux desktops. There are 4 installable GUI's (Graphical User Interfaces) for customizing the openbox desktop, excluding panels and wallpaper: The many options in these 4 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/.

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

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

Theme Configuration is a simple interface (GUI) to pick (change) some menu, panel or highlight background or text colors. See the image on the left.

keybindModel of Action Keybindings in rc.xml

Keybindings (see image on the right) 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.

fbpanel
Top

4. Wallpaper Geometry

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

changer.sh

#! /bin/bash

WALLPAPERS="~/wallpaper/"
ALIST=( `ls -w1 $WALLPAPERS` )
RANGE=${#ALIST[@]}
let "number = $RANDOM"
let LASTNUM="`cat $WALLPAPERS/.last` + $number"
let "number = $LASTNUM % $RANGE"
echo $number > $WALLPAPERS/.last
nitrogen --set-scaled --save $WALLPAPERS/${ALIST[$number]}
fin
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 changer.sh, 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/changer.sh}

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

5. Wallpaper Geometry for Dual Monitors

arandr

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 acer-compaq.sh. After each boot, acer-compaq.sh needs to be clicked to establish this monitor setting, or put into the Openbox Autostart file: ~/.screenlayout/acer-compaq.sh & .

acer-compaq.sh
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.
combo

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.

There are scripts available to randomly change wallpaper and still keep pcmanfm in charge of the desktop, so that nitrogen is not needed. One such script is the following:
    bash -c 'pcmanfm -w "$(find ~/wallpaper -type f | shuf -n1)"',
which assumes the wallpaper folder is ~/wallpaper. If you have an older version of pcmanfm, the recipe for a multiple display rotator described at the beginning of this section functions properly. Unfortunately, it does not work for the latest version of pcmanfm, which creates different configuration files for each monitor and only the main one responds to the rotator script. See these cnfiguration files in ~/.config/pcmanfm/default. Automatic rotation scripts only change the primary configuration file, and, thus only affect the main display.

There is a simple partial solution to this problem, which produces in a random fashion, a wallpaper change for secondary displays with each log-in (or boot). So you can have at least a new wallpaper for each session, but no automatic change during a session. The main display can be set to rotate as usual.

The idea is very simple. We create a phony wallpaper name and make it the entry in the config file for the display's wallpaper, and it remains thereafter fixed. For example, in my second display config file, ~/.config/pcmanfm/default/desktop-items-1.conf, I made the line for wallpaper the following:
     wallpaper=~/wallpaper/altbg.jpg,
where altbg.jpg is just a made-up name. Now create the following bash script, which administers a Linux shortcut from altbg.jpg to a randomly chosen real wallpaper (should be .jpg if that is type chosen for altbg) in your wallpaper directory ~/wallpaper, or any directory that you choose for your wallpaper for that display:
    #!/bin/sh
    ln -f -s ~/wallpaper/$(ls ~/wallpaper | shuf -n1) ~/wallpaper/altbg.jpg

I name the bash script altbg, make it executable and put it in /usr/local/bin (on the path). If you do not want to bother with making the wallpaper's resolution the same as the display's resolution, then just set the wallpaper mode line in the display's config file as:
     wallpaper_mode=fit.
To finish, add the entry
     altbg &
in your autostart file (~/.config/openbox/autostart).
Top

6. .Desktop Files

app-desktop
link-desktop

There are at least 4 Types of desktop (.desktop) files in Linux distributions: action type, application type, link type, menu 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 and a menu type is illustrated by mb-menu.desktop from the madebits action collection described 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, or by looking at the list in /etc/environment. 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. A new directory can be put on the path by simply adding the path to the directory in the list comprising /etc/environment.

lxmed

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.

pcmenu.desktop
[Desktop Entry]
Name=MENU
Exec=pcmanfm menu://applications/
Icon=/usr/share/icons/menu3.png
Terminal=false
Type=Application
StartupNotify=true
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 app.sh 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/app.sh, where me symbolizes your home directory name. From there you are on the way to a desktop and/or a panel link.

mail
fad
The procedure is almost the same for grouping a set of internet links. The image labeled email.sh 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 places.sh 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/places.sh 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.
Top

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.

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-10.0.1-linux-x64.tar.gz. Oracle regularly upgrades their programs, so by the time you read this, the number "10.0.1" will likely 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 "10.0.1" 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 part 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. In any case, you can completely remove openjdk-icedtea with the following command:

    sudo apt-get purge openjdk-\*.

To install the latest Oracle java jre-10.0.1-linux-x64, sequentially run the following commands:

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

This creates (assuming it does not already exist) a directory, /usr/local/java, to store the java files, moves the downloaded java file to it and extracts the main file (jre1.10.0.1) containing all the java files. You can now delete jre-10.0.1-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:

    JRE_HOME=/usr/local/java/jre-10.0.1
    PATH=$PATH:$JRE_HOME/bin
    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, jre-10.0.1, will need to be changed to jdk-10.0.1, or, to whatever is the corresponding jdk folder name.

Next, sequentially run:

    sudo update-alternatives --install "/usr/bin/java" "java" "/usr/local/java/jre-10.0.1/bin/java" 1
    sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/local/java/jre-10.0.1/bin/javaws" 1
    sudo update-alternatives --set java /usr/local/java/jre-10.0.1/bin/java
    sudo update-alternatives --set javaws /usr/local/java/jre-10.0.1/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.-10.0.1/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 libnpjp2.so to a Chrome-based web browser:

    sudo mkdir -p /opt/google/chrome/plugins
    cd /opt/google/chrome/plugins
    sudo ln -s /usr/local/java/jre-10.0.1/lib/amd64/libnpjp2.so .

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]
Encoding=UTF-8
Name=Oracle Java 10 Web Start
Comment=Oracle Java 10 Web Start
Exec=/usr/bin/javaws %u
Terminal=false
Type=Application
Icon=/usr/share/icons/java.png
Categories=Application;Network;
MimeType=application/x-java-jnlp-file;
application/x-java-archive;
application/java-archive;application/x-jar;
JB-java.desktop

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

JB-controlpanel.desktop

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


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

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.

CloudStickyNotes


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

jchecs

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

jdiskreport

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

jedit

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

latexdraw

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

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

pixelitor

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 ).
Top

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]
Type=Application
Name=Wine Windows Program Loader
Exec=wine start /unix %f
MimeType=application/x-ms-dos-executable;
Icon=wine
NoDisplay=false
StartupNotify=true
Categories=System;
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 https://repos.wine-staging.com/debian/ 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:

   wget https://repos.wine-staging.com/Release.key
   sudo apt-key add Release.key .

To complete the installation:

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

If the above recipe stalls, then substitute the following for its corresponding statement in that recipe:

   deb https://dl.winehq.org/wine-builds/debian/ sid main
   wget -nc https://repos.wine-staging.com/wine/Release.key .

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.

faststoneimageviewer
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.
Top

quanta

9. Firefox 5.7+ Qauntum

quanta

One categorization of web browsers is by their rendering engine. There are many rendering or display engines, but 3 stand out for Linux systems: gecko, webkit, blink. Some of the modern browsers associated with each of these engines are the following:

All the above named browsers, except chrome, firefox quanta (in Sparky Testing) and maxthon, are in the sparky repositories and can be installed using apt-get or synaptic. Qupzilla is a fast QtWebKit browsers, which means that it is a reasonable choice if you already have at least part of the qt-platform installed. Qupzilla 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.

Experts once thought that the blink engine, if not weighted down with too many add-ons, was the fastest. However, that is no longer the case as the new Firefox has raised the bar for speed and performance among web browsers. I like a light-weight browser that is fast, stable, easily configurable and plays all videos. After a few years of struggling with Chrome and trying to keep my soul at the same time, I have settled on the new Firefox Quantum.

Even when I was experimenting with other browsers, I kept some version of Firefox installed because it was the best tool to use for printing. With the advent of Quantum, it now offers the best browser experience for just about everything a web browser does. Because it is so new, it is not yet in most of the linux repositories, but that will change and is not really important anyway, because it is easy to directly install. The latest package for your system can be downloadede from the above Firestone Qauntum link. The download weight is about 51 MB, which makes Firefox Quantum about the lightest full-featured web browser available.

To configure Quantum, first do the usual settings by clicking the preference button in the head. More interesting are the literally hundreds of adjustments possible that can be called up by running about:config in the Firefox address bar. Users are discouraged from changing these settings, but Firefox Quantum has limited the changes possible and made it so easy that it is hard to screw up anything that cannot be immediately corrected.

Running about:config will produce a long list of configuration entries. If you know the exact name of the one you want to reconfigure, just type its name into the "Search" bar above the list to avoid a possible long scroll and search. To reconfigure it, simply double-click its entry under the "Value" column. There are 3 adjustment formats for this value field:


If it is a Boolean entry, the value box will simply alternate between "true" and "false"; if it is an Integer entry, a pop-up box to type in a valid number will appear; if it is a String entry, a pop-up box to type in a valid word string will appear. The user should change Integer and String entries ONLY if he knows the integers and strings that are acceptable and what they mean. In this regard, get information about each configuration setting by referring to the information accessible threw the "Contents" list in mozillazine. To undo a change you make in "about:config", just right-click the entry you want to revert and click "Reset".

Some of the few reconfigurations that I usually make are listed in the following table.

browser.backspace_actionchange integer to 1, which maps "backspace" to do an upscroll
browser.bookmarks.autoExportHTMLchange to "true", which keeps bookmarks up-to-date
browser.fullscreen.autohidechange to "false", to always show the toolbar
browser.sessionhistory.max_entrieschange from "50" to "30"
browser.link.open_newwindowchange integer to 2, which always opens firefox in a new window
browser.tabs.tabMinWidthchange 76 to 110, because broad scroll bars are easier to grab and scroll
layout.spellcheckDefaultchange Integer to "2", because there is little logic in the way English words are spelled and everyone needs help
middlemouse.pastechange to "true"
print. print_footerchange to "&PT", which is code for printing page numbers in the form 3/10 ("page 3 of 10 pages")
browser.urlbar.clickSelectsAllchange to "true", to select all text when address bar clicked
toolkit.cosmeticAnimations.enabledchange to "false"
view_source.editor.externalchange to true, to view page source in your text editor
view_source.editor.pathput as "text string" the complete path to your editor (Example: /usr/bin/geany)

Other useful Firefox Quantum features that I have so-far discovered: Typing about:networking in the address bar brings up a page where clicking "DNS Lookup" in the sidebar menu, typing a website's domain name and clicking "Resolve" will show the website's IP address. Pressing Ctrl+F opens a small, in-page search box at the bottom of the page that allows you to search for any word string in that web page. "Bookmarks.html" is kept in ~/.mozilla/firefox/q2zzemzl.default.Typing about:preferences#advanced in the address bar brings up a page where choosing "Browsing" offers the following options: "Use smooth scrolling", "Always use the cursor keys to navigate within pages default", "Search for text when you start typing". I activate all of these. I think it will take a long time to just discover all the amazing tools available in Firefox Quantum. For an expert reaction to Firefox Quantum, read Hakernoon. Below is Quantum open in my home page.

firefox quantum
Top

10. Menu, Menu, Menu

In an openbox based distribution, the Obmenu-generator Menu pictured in Section 1 or an expanded Openbox 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.


menu

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.

polarbears


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

Finally, another complete dynamical menu that I recently discovered is Menutray, whose creator is the same person as created Obmenu-generator. It has basically the same format and sweet characteristics as Obmenu-generator menu, but has launcher located in the system tray of the panel.
Top

11. 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
Menutray Ftp Network Set-Up
16 Best Openbox Pipemenus Icebox (Ubuntu-based Openbox Configuration)
18 Best Pcmanfm Actions Network Sharing, Wireless Problems & Printers
Terminal Launched Apps
Ffmpeg - Media Editing Openbox Themes
Image Magick Recording Audio & Playing Encrypted Videos
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
Using Xdotool to Launch Terminal Apps Change Debian-Based LXDE Desktop to Openbox
Linux Introduction for Beginners
Simple Tiler for Openbox

Top

Send Us Your Feedback!

Email Adress:
Comments:
 
Comment 1/15/2018. Super detailed info on this site. I am a huge fan of openbox. It's like a brand new box of legos, make anything you want. This site is like finding diamonds in Minecraft!!
Comment 11/16/2017. Thank you for your very informative page. As you start from a minimal Sparky, I do not understand well why you do not just use Debian.
Lxlinux: Linux systems are not distinguished by apps, superficial desktops or unnecessary gui's. Almost anyone can add or remove such things. My experience is that the best measurement of a Linux system is how well the updates and upgrades work. Pavroo at Sparky linux has been superb at making new app versions available quickly and well tested for compatibility, provided you have not diverged too far from his Sparky Linux system.

Stable Debian is generally well behind the cutting edge regarding apps. For example, Firefox 57.0, which now makes Firefox as fast, or faster. than Chrome, is already in a Sparky repository. I bet it won't be available for some time in Debian Stable. When I tried Debian testing some time ago, I found an upgrade often broke my system, probably because I like to try too many new things. This has only happened once with Sparky, and it was clearly my fault. Finally, Debian has a strict policy about having only an open source structure. This is like cutting off your nose to spite your face. I don't much care what the source is provided it does the best job and is worth its cost, if there is such. Pavroo has always showed a willingness to look at anything presented to him. Finally his constant prescence on the Sparky forum is a real benefit.

The only advantage that Debian has is guaranteed continuity; it consists of many developers and is not going to fold should any one of them decides to move to another pasture.

Comment 7/07/2017. Impressive, impressive explanation! I came here following a link (in LXDE Forums) and I am quite astonished. So much useful information! I really appreciate it. Thx so much!

Comment 5/10/2017. My name is Mokhtar Ebrahim and I'm working as a Linux system administrator and I have a website reflecting my Linux experiences. There are some really useful resources on your site. Recently I've created a series of tutorials for Linux, bash scripting, and server administration, which can be checked out at the following links:
       Bash Scripting                  Server Administration.
Lxlinux: Very nice tutorials. Thank you.

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