Introduction
Metacity, while a fair default, is not the only window manager you can use with GNOME. Openbox is a lightweight, customizable window manager that works either by itself or as a drop-in replacement for Metacity. Its advantages include the ability to switch desktops with the mouse wheel, a built-in, customizable menu that allows stand-alone operation with some GNOME components in order to build a GNOME-like system on low-end gear, and (this is subjective) better looking, cleaner themes that don't depend on resource-intensive pixmaps.
Installation and Basic Usage
If you have the Universe repository, all you have to do to install Openbox is enter a command:
Code:
sudo apt-get install openbox obconf
Once you've installed it, you can replace Metacity with Openbox with a single command entered into GNOME's "Run" prompt, which can be accessed by hitting ALT+F2. This prompt used to be reachable through the menu in GNOME 2.10, but the menu item was removed from GNOME 2.12.
If you choose to save your session on logout, your next GNOME session will use Openbox as its window manager and not Metacity.
Installation and Selection of Themes
Now that you have Openbox running, you'll probably need some themes. I can help you with that, being an Openbox fan. But first, I should tell you how to obtain, install, and select themes.
Once you have downloaded a theme to your home directory, open a terminal and enter the following commands (This example assumes you've downloaded Mistodon to $HOME):
Code:
cd ~/.themes
tar xzvf ~/mistodon.tar.gz
Under GNOME, find "ObConf" in Applications -> Other -> Obconf and select your new theme.
Theme List and Links
The following list names themes I've made available to the public, with screenshots and descriptions. As other users provide links to their themes, I will post them after my list.
- Mistodon (Screenshot): A clean theme to match the GTK2 theme "Mist".
- Pandora (Screenshot): Named after a certain overly curious girl from Greek myth, Pandora is brown to match Ubuntu's coloring, and as clean as Mistodon.
- Martian (Screenshot): Made to match the default "Human" theme for Hoary. I call it Martian because I was reading Heinlein's Stranger in a Strange Land in the john when I realized that Pandora didn't quite match Ubuntu's colors.
Forum member Smoon has his own theme page. It's written in German, but the screenshots provide adequate explanation.
Also, boxwhore.org hosts Openbox themes with screenshots. (No, I didn't pick the name.)
More importantly, the developers/maintainers of Openbox provide documentation at this location. It covers the basic operating principles, though it doesn't offer in-depth coverage on how to theme Openbox. I may provide a section on advanced theming later on.
Since Openbox does not handle setting wallpapers, you have to use external tools. I recommend feh, which is primarily an image viewer but includes "set wallpaper" functionality both in its menu and as a commandline tool.
Fun with Keybindings; or, getting an ALT+Tab that rocks like ninja.
Openbox's default ALT+Tab functionality is a bit limited compared to Metacity, which shows a dialog listing all the open apps on a given workspace similar to Windows. You don't have to settle for Openbox's anemic ALT+Tab. If you're using Openbox, try middle-clicking anywhere on your desktop. You'll see a menu listing each of your workspaces, starting with the first, and each workspace entry will have a submenu displaying the running windows on that workspace, with iconified (minimised) windows in brackets.
It's also possible to bind this menu, which is referred to internally as the "Client List Menu", to any key you like, and then to navigate that menu with your keyboard's arrow keys. Just follow the steps below.
1. Open a terminal and enter the following command:
Code:
gedit ~/.config/openbox/rc.xml
2. Once you've opened up Openbox's config file, scroll down until you see the following text:
Code:
<keybind key="A-Tab">
<action name="NextWindow"/>
</keybind>
<keybind key="A-S-Tab">
<action name="PreviousWindow"/>
</keybind>
3. Replace the text shown above with the following text:
Code:
<keybind key="A-Tab">
<action name="ShowMenu"><menu>client-list-menu</menu></action>
</keybind>
<keybind key="A-S-Tab">
<action name="ShowMenu"><menu>client-list-menu</menu></action>
</keybind>
4. Save your changes and close the editor.
5. If you're using Openbox as part of GNOME, and Openbox is part of your GNOME session, then typing killall openbox at the terminal should cause GNOME to restart Openbox for you. If GNOME won't play ball, you should be able to click on the Applications menu, select "Run Application", and type "openbox" into the prompt. Or, you could avoid all this by logging out and logging in again. If you're using Openbox on its own, then right-click on the desktop for the main menu, and choose the Reconfigure option. Openbox will reread its config file.
By following the above steps, you've modified the keybindings for ALT+Tab and SHIFT+ALT+Tab to bring up the same client list menu that appears when you middle-click on the desktop. You can navigate it using your arrow keys, and press "Enter" to go to a running app, even if that app is on a different workspace.
More Fun with Keybindings; or, opening apps without reaching for the rodent.
So, are you tired of having to take your hands off the keyboard in order to open a program? I can help you with that too. The principles are the same as when you modified your config, (~/.config/openbox/rc.xml) to give you a sweet ALT+Tab.
Open your config file as explained in "Fun with Keybindings; or, getting an ALT+Tab that rocks like ninja." and do the following:
1. Find the line that reads "<chainQuitKey>C-g</chainQuitKey>". Create a blank line between this keybinding and the next.
2. If you're using GNOME or have gnome-panel running in Openbox, paste the following XML:
Code:
<keybind key="A-F1">
<action name="execute"><execute>gnome-panel-control --main-menu</execute></action>
</keybind>
<keybind key="A-F2">
<action name="execute"><execute>gnome-panel-control --run-dialog</execute></action>
</keybind>
The XML shown above uses GNOME's panel to trigger the menu and bring up GNOME's run dialog. It also uses the same keybindings for the menu and run dialog as Metacity, for the purpose of this demonstration. You can change the keybindings to suit your own needs.
If you aren't using GNOME or gnome-panel, but want a "Run Program" dialog, then run sudo apt-get install gmrun from a terminal. Once you've installed gmrun, paste the following XML into the editor at the blank line you created in step 1:
Code:
<keybind key="A-F1">
<action name="ShowMenu"><menu>root-menu</menu></action>
</keybind>
<keybind key="A-F2">
<action name="execute"><execute>gmrun</execute></action>
</keybind>
The above code will show you the menu Openbox provides when right-clicking the desktop if it is running as a stand-alone environment. gmrun is an optional package which should be available if you've enabled the Universe repository.
3. Save your changes, close the editor, and restart Openbox.
Even More Fun with Keybindings: Switch to a Specific Desktop
It's possible to configure keybindings in Openbox to allow you to switch to a specific desktop. For the purpose of this demonstration, I'll show you how to use ALT+1 to switch to desktop 1, ALT+2 to switch to desktop 2, etc. Just paste the following code into your ~/.config/openbox/rc.xml file's <keyboard> section, save, and restart Openbox:
Code:
<keybind key="A-1">
<action name="Desktop"><desktop>1</desktop></action>
</keybind>
<keybind key="A-2">
<action name="Desktop"><desktop>2</desktop></action>
</keybind>
<keybind key="A-3">
<action name="Desktop"><desktop>3</desktop></action>
</keybind>
<keybind key="A-4">
<action name="Desktop"><desktop>4</desktop></action>
</keybind>
The original HOWTO can be found here.. Openbox has not changed much between Hoary and Breezy.
Caveat 0: When running Openbox by itself, running Nautilus without the --no-desktop option will cause Nautilus to take over the desktop, trashing your wallpaper and rendering your menu inaccessable. Keep this in mind when hacking your menu.
Caveat 1: This HOWTO may not work with Fluxbox due to possible incompatibility with the EWMH specs and definite lack of a --replace switch. Also, their config and menu file structures are not XML-based.