My friend Og Maciel originally introduced me to Openbox a while back and I’ve been using it ever since. I love the lightweight feel, the ability to customize and the center around having NO icons on my desktop. I don’t feel cluttered when I work! Today, we’re going to go over installing Openbox with some added tools. This tutorial is tailored for Foresight Linux but the guide may very well serve other distros as well.
What is Openbox?
From the Openbox homepage, “Openbox is a minimalistic, highly configurable, next generation window manager with extensive standards support.” From using it, I often think of it as fluxbox-like with the benefits of being able to dip into Gnome or KDE for the items that I want to use. Your desktop will then run with speed and simplicity using only the elements you want to use with it.
So…Let’s get Started…
This How-To will assume that you’re running Foresight Linux, you’re logged into Gnome and that you’re familiar with conary, the package manager for Foresight. First and foremost, install openbox:
[devnet@lostlap Desktop]$ sudo conary update openbox obmenu obconf
This installs the needed components to run Openbox on your system. Openbox is minimal by default though so if you login to the environment now for the first time, there will be no taskbars, nothing…just a large blank area for you to work with. We will need to install some extra components to give a bit more functionality. If you’d like a panel menu, I recommend using tint2. I used to use pypanel which is a small panel written in python but this panel is no longer developed.
There are other panels that are packaged with openbox in mind for Foresight; fbpanel is available, which is a very fast and functional menu bar. I like lxpanel also, which is fbpanel with some easier configuration options. For a full list, please see openbox documentation. For our purposes here, we will install tint2:
[devnet@lostlap Desktop]$ sudo conary update tint2
Now we need to copy the default configuration file for tint2 so we can build our panel to our liking. You’ll have to create the default path for the tint2rc configuration file. To do this and copy the config file:
[devnet@lostlap Desktop]$ mkdir -p ~/.config/tint2/ [devnet@lostlap Desktop]$ cp /etc/xdg/tint2/tint2rc ~/.config/tint2/
Now tint2 has a configuration file in place and is ready for Openbox to start.
Let the Configuration Begin!
The hard part (install) is now out of the way thanks to the conary package manager. Now we need to configure Openbox so that it’s ready for us when we log out of Gnome. The configuration files will need to be copied to /home/user/.config/openbox. Of course, this path doesn’t exist yet so we’ll need to create it like this:
[devnet@lostlap Desktop]$ mkdir -p ~/.config/openbox/
Visiting there now will show that there aren’t any files in this directory. The file we’ll absolutely need to place there is autostart.sh. Other files that will be in here are rc.xml which is for obconf (openbox configuration) and menu.xml (openbox menu system). We’ll copy menu.xml from a default copy there later. The other file should auto-create when loading for the first time (rc.xml)
The autostart.sh file is what starts all of our services and our tint2 panel we just installed as well as setup our wallpaper and other items. Instead of going through the options you can place in here, I’m going to share my autostart.sh to get you up and running quickly. Please note that if you chose not to install fbpanel and use the gnome-panel or other panel instead, you’ll need to comment the pypanel line below and uncomment what you’ll be using:
[devnet@lostlap Desktop]$ cat autostart.sh # This shell script is run before Openbox launches. # Environment variables set here are passed to the Openbox session. ############################################################## # Panel Section ############################################################## # pypanel, my favorite panel for openbox #(sleep 3 && pypanel) & # Use the wbar Launcher if you would like. Don't forget to install it before uncommenting # wbar & (sleep 3 && tint2) & ############################################################# # Gnome Integration Section ############################################################# # This section let's Gnome give us some of its desktopiness gnome-power-manager & nm-applet --sm-disable & /usr/libexec/gnome-settings-daemon & gnome-volume-manager --sm-disable & gnome-keyring-daemon & ########################################################### # Other Add-on's for Openbox ########################################################### # Make your wallpaper restore to last setting using Nitrogen. nitrogen --restore & parcellite & volumeicon & ################################# End ###################
To create the menu system file for openbox, we’ll copy from the default installation to our .config/openbox directory (so we can use obmenu…otherwise, that command will give us an error) so use the following command in a terminal:
[devnet@lostlap Desktop]$ cp /etc/xdg/openbox/menu.xml ~/.config/openbox/
Now you’re ready to login and reap what you have sown 🙂 Logout of Gnome and change sessions in GDM to Openbox. Notice that your tint2 panel starts up and has the gnome applications we recorded in the autostart.sh file above running and docked! You can add more options to your autostart.sh file and you can also edit tint2rc (in your /home/user/.config/tint2 directory) to store settings for your panel.
I’ve Installed and am Running, Now What?
Now you get to customize the Openbox menu with your favorite applications. Menus are activated by right clicking anywhere on the desktop. There are a few default applications…I choose obconf right away so that I can choose a theme I like and increase the text size since I’m using a high resolution. After that is done, I right click for the menu again and go to applications >> xterm. When the terminal pops up, I type obmenu. From there, I’ll be able to edit my right click menu.
Now instead of entering obmenu in a terminal each time, let’s add it to our right click options. In the obmenu window that you opened in the last paragraph, expand the Openbox 3 option. Find obconf and highlight it. Click ‘new item’ and add obmenu for a label, execute for action, and obmenu for Execute. This will add obmenu to your right click options so you don’t have to open a terminal each time to do things. You can also customize any of the items you find in applications…I put a few things I normally need such as thunderbird, firefox, gnome-terminal, etc. Feel free to add whatever you need…you can have many submenu’s . It’s setup is pretty straightforward.
Nitrogen, the wallpaper manager, requires a small tweak as well to get working. What I did was create a /home/username/Photos/Wallpaper directory and then loaded it up with my favorite desktop wallpaper. Good places to go for cool wallpapers are desktopography.com and vladstudio.com. Next, install Nitrogen:
[devnet@lostlap Desktop]$ sudo conary update Nitrogen
After your first login, you’ll need to add a menu entry using obmenu to call the nitrogen browser. So create the menu entry and the action you call is:
nitrogen /home/username/Photos/wallpaper
Of course, replace ‘username’ with your users name. This will allow you to open up all the wallpaper photos inside of that directory.
So What Have we Done?
Today, we’ve installed Openbox on Foresight Linux. We’ve given it a tint2 panel so we have a place to dock applications and we’ve customized the Openbox right click menu and added a wallpaper program called Nitrogen. Hopefully, this shows you the customizable features of Openbox and also shows you the speed that Openbox operates at. It’s a very minimalistic environment, yet one that can be very powerful.
Installation Notes of Interest
tint2
Tint2 is my newly crowned favorite panel for openbox. It’s lightweight and is able to be configured in so many ways. I added the sleep command inside my autostart.sh to make sure that the desktop is loaded before the tint2 panel tries to load…mostly, this is due to network manager wanting to animate while the panel loads. This isn’t as much problem with tint2 as it is with pypanel (see below).
pypanel
Some things I’ve noticed when running openbox…network manager has problems with pypanel. I added the sleep command inside my autostart.sh and this is much better now…but there may be similar problems with network manager. It’s really NM searching for a network and it causes the panel to flicker a bit. Not a real show stopper.
Gnome-panel
Gnome-panel running inside openbox causes a few errors to pop up when I login. This could be due to the fact that I’ve started things in my autostart.sh out of order…I’m also not all together sure what is causing these errors. The problem seems to be with the docking area of gnome-panel as when I minimize programs they are not docked. Easily fixable, but annoying nonetheless.
Alternative Panels
There are quite a few alternative panels out there. Fbpanel is one. Perlpanel is another. Fbpanel and lxpanel are available in the Foresight repositories. You can also add other launchers like wbar if you so desire.