(This is a supplement to my web site on using Linux on various Dell laptops) ____________________________________________________________________________
NOTE:
After trying Openbox I reverted to using CTWM on all my machines early in 2012.
Here's more information about CTWM (with screenshots):
http://www.cs.bham.ac.uk/~axs/laptop/ctwm
____________________________________________________________________________
Installed: 20 Jan 2009
Last updated: 5 Jul 2009; 9 May 2010; 22 May 2011; 15 Aug 2012; 26 Apr 2014
NOTE:
THIS IS NOT AN OFFICIAL DOCUMENT OF THE UNIVERSITY OF BIRMINGHAM
OR THE SCHOOL OF COMPUTER SCIENCE.
NEITHER THE UNIVERSITY NOR THE
SCHOOL NOR THE AUTHOR OF THIS DOCUMENT CAN ACCEPT ANY RESPONSIBILITY
FOR ANY CONSEQUENCES OF FOLLOWING THE ADVICE OFFERED HERE.
(In other words: the normal conditions of mutual-help for Linux users
apply!)
~/.config/openbox/autostart.shor you can invoke it from a menu, or you can just run it.
I have it installed and it seems to work, but mostly I run Openbox without it. The only slight disadvantage is that I then don't have a constant indication of the name of the current desktop.
The configuration file for fbpanel goes in
~/.fbpanel/defaultand I have included my own current version here here.
For more detailed documentation see http://fbpanel.sourceforge.net/docs.html
In Fedora 10 it can be installed using 'yum install fbpanel'.
For many years I have used ctwm as my window manager on linux: it is very fast, very robust, and very tailorable. However recently it has been unable to provide some of the required functionality, e.g. allowing the 'fullscreen' option to work with flash.
After some investigation I decided to try openbox, and am now using it as my default window manager on a desktop PC running Fedora 10, and a Dell Latitude D610 laptop running Fedora 8. It works well both with the gnome session manager (choose openbox from the session menu when you log in) and without the session manager (using just the 'startx' command and a startup file in '~/.xinitrc' to start up the windowmanager and a few clients -- available below).
For information about Openbox see
This slightly out of date web site may also be useful, though it
does not mention the latest versions of Openbox:
http://icculus.org/openbox/2/
Openbox seems to be about as fast as CTWM, and it is very
extendable, though not as tailorable, for my purposes, as CTWM.
Later I'll produce a list of deficiencies. Some are on the openbox
bugzilla site.
I don't find Openbox as easily tailorable as CTWM using a text editor. The configuration files use bulky xml, and not all the options I want are provided, e.g. ability to restrict keyboard actions to root context, and the ability to give a key (e.g. F1) a function (with mouse in root window) without having to use a modifier as well.
At first I thought it did not allow users to specify border width for windows, and I found the default of 1 pixel too small when using the left or right edge of a window for re-sizing. However, I later discovered that this could be done using themes. I can see the usefulness of themes but personally I would rather have everything in one configuration file, at least as an option.
I have also not found any way to assign different xterm windows, with different titles, to different desktops in the startup file, rc.xml. However it is possible to use the window class to do that, so that you can make instances of a particular package come up in a particular desktop. Use the 'xprop' utility to discover the window class of an application you use. (See 'man xprop'). This sample rc.xml file shows how to make xclock and xdaliclock displays appear on all desktops.
The obconf program and themes
The 'obconf' utility allows you to do some customising using a graphical interface instead of editing startup files. Mostly I would rather edit files which I can then copy to different machines, but the obconf utility is useful in introducing some of the options, and especially displaying themes available for you to try out.
The most important use of obconf is with themes. openbox allows you to have a collection of different themes one of which is specified as the default in your rc.xml file. Once you understand what themes are and how they vary you can choose one, make a local copy and edit its configuration file.
A collection of themes is provided in /usr/share/themes (in Fedora, and possibly other versions of linux?) and you can have other themes in your own ~/.themes directory. The obconf reads in all the theme definitions available and gives you a summary display of what they look like. You can rapidly switch between them to see which one you like. If you want to customise one of the themes provided you can copy it to your ~/.themes directory and rename it.
A theme has a directory corresponding to its name, and for each application using that theme a subdirectory with the name of the application. For openbox the subdirectory is called 'openbox-3' at present, and it contains one file 'themerc'. That's the one you edit. Other things are possible, e.g. extra bitmaps for the theme.
I copied a theme called 'Clearlook-Olive and edited it, renaming it as 'CLO' (for 'ClearLookOther) , available here.
The CLO directory has a subdirectory openbox-3 which contains the 'themesrc' file. After copying I added a number of comments to the file, though a lot more could be added. If you wish to try this copy the directory CLO and its contents (included in the tar file below) to your ~/.themes directory. My CLO theme uses 4 pixel widths for left and right edges of windows, which makes them easier to grap for re-sizing, but that width can easily be changed.
For more on themes see:
http://icculus.org/openbox/index.php/Openbox:Themes
and the complete specification for the 'themesrc' file format:
http://icculus.org/openbox/index.php/Help:Themes
Alternatives to Openbox
Blackbox and Fluxbox are alternative window managers partly similar in spirit to OpenBox.
I have tried fluxbox, and found it just as lightweight as Openbox, but much easier to configure in a text editor.
Unfortunately, like CTWM, Fluxbox does not seem to support fullscreen in flash. So I assume it is out of date. It does not seem to be under development.
I also tried Blackbox, which is partly similar to Fluxbox and Openbox. It seems to be very light weight and does support fullscreen flash, but seems to be very hard to tailor, and has some serious limitations. E.g. left and right sides of window frames are not draggable for re-sizing, only the titlebar and the bottom corners.
So I have provisionally chosen Openbox as the successor to CTWM and
will try tofind out how to add the missing functionality.
For comparisons of this family of window managers, see
http://www.neowin.net/forum/lofiversion/index.php/t414348.html
http://ubuntuforums.org/archive/index.php/t-345193.html
Current situation (Early Feb 2009)
Despite the limitations of Openbox, I am learning to live with it, as it provides me with as many desktops as I want (8 for my desktop PC and 10 for laptop use, to easily support pre-prepared demos for presentations) and it allows rapid switching between desktops using the keyboard (in my case CTRL+Left and CTRL+Right) in addition to wrapping at the left and right ends, unlike the stupid gnome window manager.
Openbox seems to be under active development, and there is a bugzilla reporting site for it, though I have no idea whether anyone is reading my suggestions in there.
So I have provided brief instructions and my own configuration files here. There are many different themes and sets of configuration files available on the web. I have not yet learnt how to use themes. In any case, I prefer a simple, very uncluttered, interface -- no fancy pictures or transparent editor windows to distract me from real work.
I have discovered that 'gmrun' is a useful utility for launching commands without having to run an xterm window, and invoke this from one of the editors.
I have also made the openbox main menu invoke the file manager 'pcmanfm', described here:
http://pcmanfm.sourceforge.net/It is possible to use the gnu 'nautilus' file manager, at the cost of losing the Openbox mouse menu until you kill nautilus!
nautilus --no-desktop
There is a package called bbkeys which, I believe can extend the use of the keyboard with Openbox, but I have not figured out how to get it to do any of the things I want.
Get the packages
First install the main package, and any or none of the three optional extra utilities.In Fedora do:
## required installation: yum install openbox ## optional installation: yum install obconf gmrun pcmanfmIn other linux installations you can probably use 'apt-get' instead of 'yum'.I found xterm, xdaliclock, and other things I use were not automatically provided by Fedora 10, but 'yum install' managed to get them all. My sample files invoke xterm in various places, but you could choose another terminal window, eg. gnome-terminal. I find that several of them provide extra menus and options, but fail to support the full xterm functionality. You may find that 'aterm' is a good alternative: it has a much nicer scroll bar than xterm, but it sets the $TERM variable to 'rxvt', which may need to be overridden.
There is a package called 'bbkeys' that can be used to extend the keyboard functionality of Openbox, but I found it hard to configure and have temporarily abandoned it.
No desktop manager or icon mananger on the screen
Most people who use multiple desktops (whose absence on Microsoft Windows is one of many things that makes me intensely dislike using that operating system see "Why do they put up with it?") are accustomed to having a panel somewhere on the window that shows the collection of available desktops, and indicates the one that is active. In CTWM you also get a little map of what is on each desktop and you can use the mouse to move things from one desktop to another. Often there is also a place where minimised (or as they used to say 'iconised') windows are shown, so that you can 'maximise' them by clicking on their icons.
Neither a desktop mananger nor an iconised window manager is on the Openbox desktop by default. There are probably add-ons that provide them, but the default is a very uncluttered desktop. However, there are various tools linked to mouse or key actions that compensate, and you can set things up so that if you move from one desktop to another you get shown a little map of the desktops with an indication of which one you have landed on.
Perhaps the most useful is the mapping of the middle mouse button (anywhere on the root window) onto a function that brings up a list of all the desktops and all their contents (including minimised contents), so that you can then click and go to whatever you are looking for. Also ALT+tab allows you to cycle through all the items on the current desktop, visible or not. There is a keyboard function that allows you to jump to a specified desktop or to cycle forwards or backwards through all of them, which I map onth CTRL+Right and CTRL+Left. With the mouse cursor in the root window you can also cycle through desktops. However I set input focus to follow mouse, so I have to be careful in case the focus lands on something that is sensitive to mouse wheel. (One of many reasons why OB needs to be extended to allow keyboard functions to be defined only to work in the root context.)
So everything remains accessible even while totally invisible. There are other things to find in the configuration files and online documentation.
Set up your configuration
Installing openbox will get you a set of default system wide configuration files in/etc/xdg/openboxYou can copy them to your own directory, where you can edit them:mkdir -p ~/.config/openbox cp -p /etc/xdg/openbox/* ~/.config/openboxThere are three files required for a minimal configurationautostart.sh run once just before openbox starts up Use a delay to launch X11 windows, and background them, so that the don't come up until openbox has started. I have some example commands in here menu.xml You can define exactly one menu to be invoked in the root window, using the right mouse button. I have modified this to make it very easy to invoke gmrun, to launch a command, and to start an xterm window. My modified version of the default is here rc.xml This is the main configuration file in which you can define how menus should look, how many virtual desktops you want, which keyboard actions you want, etc. My version defines two ways of launching an xterm window, one big and one small, using CTRL+F1 and CTRL+F2 respectively. I also cycle left and right through desktops using CTRL+Left and CTRL+Right. I have included an option to run 'gmrun' using CTRL+F4 My modified version of the default is herePERMISSION AND WARNINGUsing gmrun
Anyone who so desires has my permission to copy and use any of the example files provided here, most of which are themselves slightly edited versions of files that came with OpenBox.Please check the executable files before you use them, especially autostart.sh and the .xinitrc file mentioned below.
One of the nice things about using gmrun is that it maintains a history of commands. It also supports tab completion, and if you give it a url it will launch firefox, etc. I have slightly modified the default initialisation file, which is~/.gmrunrcto specify a location for the panel and wider default text-box width. My version, based on the default version, is here. Later I shall document them.I previously wrote:
A serious flaw in the design of the gmrun program. is that there is no simple way to get rid of it if you bring it up by mistake -- you have to give it a command to run. I shall probably replace it with a one line xterm window, which can be dismissed by typing CTRL-D into it, and which doesn't disappear every time you use it, so you can repeatedly give commands and it also supports history and tab completion.I am grateful to Jared Prins who informed me that gmrun can be dismissed by pressing the ESC key. So my objection was based on lack of information. ('gmrun' needs either a 'man' file or a 'help' option.)
(Added: 5 Feb 2009)Sample .xinitrc
A sample ~/.xinitrc file invoked when you start X from a console, is here. If you fetch it make it executable and remove the comments at the top.
Tar file with sample config files
A tar file containing my tailored extensions to Openbox and a sample .xinitrc file is available here: configfiles.tar.gz
Current contents
I hope it is clear from the rest of this file what to do with each of those. But just in case, here is a summary:-rwxr-xr-x 2087 2009-01-22 17:57:34 dotxinitrc drwxr-xr-x 0 2009-01-22 04:11:41 dotconfig-openbox-files/ -rw-r--r-- 1768 2009-01-20 09:46:33 dotconfig-openbox-files/autostart.sh -rw-r--r-- 2861 2009-01-22 03:55:14 dotconfig-openbox-files/menu.xml -rw-r--r-- 25571 2009-01-22 04:49:49 dotconfig-openbox-files/rc.xml -rw-r--r-- 1391 2009-01-20 03:27:22 dot-gmrunrc-sample drwxr-xr-x 0 2009-01-22 15:41:34 CLO/ drwxr-xr-x 0 2009-01-22 15:41:50 CLO/openbox-3/ -rw-r--r-- 5050 2009-01-22 15:37:54 CLO/openbox-3/themerc# create the required directories, in case you don't have them cd /tmp tarxfz ..../configfiles.tar.gz mkdir -p ~/.themes ~/.config/openbox ## put the CLO theme in place mv CLO ~/.themes mv dotconfig-openbox-files/* ~/.config/openbox ## config file for gmrun mv dot-gmrunrc-sample ~/.gmrun ## if you want to start up the X window system directly from ## a console terminal using startx mv dotxinitrc ~/.xinitrcBefore trying out the scripts please check all the files, in case of corruption, or in case they invoke utilities not available on your machine, especially these two 'startup' files: ~/.xinitrc ~/.config/openbox/autostart.shThings here will almost certainly change. Please report problems.
Maintained by
Aaron Sloman
School of Computer Science
The University of Birmingham