Bunsen Labs is a Debian based GNU/Linux distribution that showcases the Openbox window manager, continuing this role after its spirtitual predecessor, Crunchbang, ceased development. Like Crunchbang, it makes an Openbox based "desktop environment" usable out-of-the-box, configuring Openbox and the various programs that are usually used with Openbox to make a complete desktop environment.
This article reviews the latest release of Bunsen Labs named Helium.
A default Openbox implementation doesn't provide any of the features a typical desktop environment provides, such as a panel, any system utility programs, such as a file manager or a terminal, any component to manage the desktop, or any system management tools, such as a power manager to initiate suspend on low battery. Instead, it is typically used with standalone programs or components from other more modular desktop environments to provide these, e.g. Xfce Power Manger for power management. In fact a default Openbox installation only provides a simple blank desktop without even a facility for displaying a wallpaper. The only method of interacting with the system being a menu accessed by right-clicking (the default binding) anywhere on the desktop, and even this default menu is static -- it does not update after installing new programs.
All configuration of a default Openbox installation is performed by editing two configuration files and two scripts:
Configuration File | Setting |
---|---|
~/.config/openbox/rc.xml | window manager settings, key bindings for manipulating windows, theme selection |
~/.config/openbox/menu.xml | configures the default static menu or optionally specifies the mechanism to generate a dynamic menu |
~/.config/openbox/environment | environment variables sourced by the autostart file |
~/.config/openbox/autostart | commands to start programs to complete "desktop environment" (the Tint2 panel, Nitrogen wallpaper manager, Conky, etc. and to set some variables that determine the behavior of X tools |
A standout feature of Openbox contributing to its flexibility is the menu system. Items in the static menu can run scripts, returning the output of the script to the menu. The static menu can also be replaced with a dynamic menu that is updated each time it is invoked. Also notable among its features is its prowess at tiling windows. Although it is a stacking window manager, Openbox -- after configuring rc.xml with desired key-bindings and actions -- is very capable at flexibly tiling windows.
Despite the need for extensive manual configuration, a system based on the Openbox window manger offers the benefit of an extremely configurable, extremely lightweight, and extremely flexible system suitable for those who want to put in the effort to configure it and for those who appreciate traditional UNIX (manual/script intensive) methods of using their computer.
The value that BunsenLabs provides Linux users who want to use Openbox is that it provides a fully configured and themed Openbox. It also provides and configures the companion programs necessary for a complete desktop experience, as well as including some custom helper tools to manage them, making Openbox usable out-of-the-box.
External Programs | BunsenLabs Helper | Other Provided Helper |
---|---|---|
Tint2 | bl-tint2zen (Tint2 Chooser) | Tint2 Configuration GUI |
Conky | bl-conkyzen (Conky Chooser) bl-conkysession (starts a group of Conkys to be started as a set at boot) bl-conkyedit | |
dmenu searchable menu | demenu_run | |
gmrun (Alt+F2 type command box | ||
bl-obmenu-generator |
Before discussing how BunsenLabs handles these Openbox configuration items and the helpers, I should start at the beginning with the bl-welcome script. This script runs on first boot after installation and helps the user update the newly installed system and prompts the user whether to install additional programs and add sources to the apt configuration.
In addition to the tasks shown in the above set of images, the welcome script can install the Adobe Flash browser plugin, install a Dropbox client, install development packages, and install a LAMP stack.The initial user configuration of the installed package and package management related aspects of the system is configured by the installer and by bl-welcome, but how does BunsenLabs handle the actual Openbox configuration and make it usable out-of-the-box? First it adds a few items to the ~/.config/openbox/environment configuration file, namely setting environment variables to start GNOME Keyring and set xdg the desktop environment to Xfce for the purposes of X tools. These environment variables are used by ~/.config/openbox/autostart, which starts all of the programs necessary to complete the desktop environment. These include starting the Nitrogen wallpaper manager, starting the Tint2 panel(s), starting the Conky(s), and starting components that populate the system tray such as the volume control applet. Conky and Tint2 instances aren't started directly by the autostart but by calling BL helper scripts that start all desired Conky and Tint2 configurations saved in session files. The autostart file also sets some keyboard and touchpad properties.
Second ~/.config/openbox/rc.xml is complete with usable defaults. The most important configuration in this file -- since this configuration item can't be set elsewhere -- is the key-binding setting to control desktop and window behavior. Other configuration items in this file are also included in the GUI programs Openbox Configuration Manager and LXAppearance -- a component of LXDE that can be incorporated into an Openbox based system.
And lastly, ~/.config/openbox/menu.xml. This file simply creates the structure and items of the menu in an xml format. Although this aspect of BunsenLabs -- the default root-menu generation mechanism -- is lacking in that a dynamic menu configured out-of-the-box, but further customizable if necessary, is more desirable to users than the the static menu configuration of ~/.config/openbox/menu.xml.
Besides the Openbox built-in right-click menu, whether static or dynamic, BunsenLabs provides two additional tools to launch programs -- gmrun and dmenu. gmrun is a simple pop-up box similar to what is activated by Alt-F2 in other desktop environments, allowing users to type a command.
dmenu on the other hand is a much more visually impressive tool in its elegance.
BunsenLas, in addition to making a usable Openbox based system, also provides some very nice themes and wallpapers as well as nice looking Tint2 and Conky configurations. This leads to one of the areas of improvement for BunsenLabs, which is that the supplied COnky configurations tend to be simple and not as useful as they could be in terms of system monitoring or as visually appealing as if they took advantage of the capabilities of Lua scripting. The Voyager distribution at least, in its 14.04 LTS release.
Besides Conkys, some of the more convenient and useful helpers and that are more beneficial than the defaults are not included in the default configuration, a case in point being bl-obmenu-generator. The installation and configuration of this tool and others could at least be included in a part of the Welcome Program that doesn't deal with installing additional packages but in a new part that can help users enable optional configurations.
The default basic installer -- or the advanced installerh, which is like the basic default installer but provides more configuration options -- is started by selecting it from the GRUB menu. Unlike most other distributions, the Live Environment, which is also started from the GRUB menu doesn't allow starting the installer from withing the environment.
The installer is the standard Debian installer with Debian branding replaced with BunsenLabs branding. It also non-free or restricted sources for proprietary software. After installing BunsenLabs, it wasn't necessary to install the proprietary firmware for the Qualcomm Atheros WiFi/Bluetooth radio.
The BunsenLabs forum gives an idea of using the installer, albeit an older version.
Some may not like the Debian installer compared to the simplicity of something like the Calemares installer but it works well. The only issue was that Debian installer forces a reformat of an existing swap partition even when this isn't specified by the user. This requires editing the /etc/fstab and /etc/default/grub files and updating the GRUB configurations of other existing installtions on the same computer.
For the most part, all hardware worked fine with this installation of BunsenLabs Helium. The only exception was Bluetooth control due to the lack of a panel applet.
For my hardware, Bluetooth did not work out-of-the-box or at least a Bluetooth panel applet was not automatically configured. Since I will be converting this installation to Debian Testing with KDE Plasma and Cinnamon as well, I went ahead and installed the Cinnamon desktop environment, which brought along the Blueman applet for GTK environments with it. After restarting Openbox I had a Bluetooth panel applet.
However, the default BunsenLabs Openbox configuration, for reasons discussed elsewhere int this article, must be modified to make a usable experience. This lack of usability is due to the static menu system provided by BunsenLabs -- perhaps to stay true to the pure Openbox design -- instead of a dynamic menu generated by something like obmenu-generator.
Fortunately, a member of the BunsenLabs community makes a modified version of obmenu-generator customized for BunsenLabs available. The BunsenLabs forum thread entitled Dynamic menus on BunsenLabs - a comprehensive guide details instructions on installing some alternative menu generators including bl-obmenu-generator. The forum post also includes instructions for installing another tool named bl-menu-switch that allows users to switch between the static menu and a menu generated by bl-obmenu-generator, if it is already installed.
bl-obmenu-generator uses has its own configuration files that allows users to customize the categories and add additional items to the generated menu.
Note that if converting to Debian Testing, the conversion should be performed before installing bl-obmenu-generator.
Software installed by default was minimal, but sensible considering one of the benefits of an Openbox based system is a lightweight system. Of the essential software, Firefox ESR browser, VLC Media Player, LibreOffice Writer were installed. Installed system utility applications included the pleasantly surprising Terminator terminal emulator and Thunar file manager.
Sadly, due to the nature of the Debian base, available software is not the latest. For BunsenLabs users who want the latest, the installation can be converted to a Debian Testing system. I did this and had no problems.
Package management on BunsenLabs is standard Debian. Synapitc Manager is installed by default for those times it is more efficient to use it. aptitude, atypical of most Debian based distributions, is also installed by default.
BunsenLabs doesn't have any formal documentation, but as it is a Debian based system with just a few non-core custom packages from Bunsen's own repository, all of the Debian documentation from its manuals and wiki apply.
Bunsen does, however support its users trough a helpful forum. The forum's Getting Started section is probably a good place for new users to visit first. It links to Links to Useful HowTo's, which in turn links to the only page in BunsenLabs' forums I found necessary to visit, Dynamic menus on BunsenLabs - a comprehensive guide.
Some useful information on Openbox can be found at the following pages.
Page | Topic |
---|---|
Arch Wiki | Introduction to Openbox |
Openbox Wiki | Introduction to Openbox |
Openbox Pipemenus | Pipemenu Resources |
obmenu-generator Configuration | Pipemenu Resources |
BunsenLabs provides Linux users a preconfigured Openbox system, saving those interested in using an Openbox based system a lot of the time that would be necessary to configure it to the point BunsenLabs has. Those that want to go further can do so with some of the BunsenLabs community scripts or on their own.
BunsenLabs happens to be one of the few distributions that offers this window manager configured as a desktop environment. It also has some interesting tools similar to what Voyager provides in terms of managing Conky (and Tint2) configurations and tools to save and restore such configurations. But these tools and bl-welcome have a way to go before reaching the level of Voyager in their extent, but Bunsen's tools and the distribution have potential.
Describing bl-welcome as having potential as opposed to being fully realized is an indications of my general feeling of the distribution. For example, seems obvious to me that the bl-welcome program, in addition to what it does, could greatly benefit users by performing the steps for replacing the default static menu with bl-obmenu-generator or another one as described in the forum post mentioned above. BunsenLabs could also place prompts to install additional common programs such as the LibreOffice suite and the multimedia and graphics applications here as well as or instead of placing the installation scripts as items in the static menu.
Also, the various Conky configurations available in the default installation are all rather simple, with the exception of one clock Conky. More complex and informative Conky that take more advantage of the capabilities of Lua scripting could be made available by default. Note that the Conky featuring the many circular graphs and various aspects of the resource usage if the system that appears in many of the screenshots were not part of this BunsenLabs installation, but one I adapted from Aqua Rings 110, a Conky used in a previous release of BunsenLabs that I found on a Conky resources site. Why not include more of this type of Conky configurations?
Despite these few areas where I thought BunsenLabs could have offered more to the user, it is a great community distribution. I would recommend it to users that have Do-It-Yourself inclinations and appreciate "old-school" or traditional modes of using Linux and UNIX, where DIY scripts are important and interact more directly with X tools. Such users who make the effort can get a lot out of the Openbox base of the distribution, especially with respect to the generation of dynamic menu items.