Openbox

Openbox is a free, stacking window manager for the X Window System, licensed under the GNU General Public License. Originally derived from Blackbox 0.65.0 (a C++ project), Openbox has been completely re-written in the C programming language and since version 3.0 is no longer based upon any code from Blackbox. Since at least 2010, it has been considered feature complete, bug free and a completed project. Occasional maintenance is done to keep it working, but only if needed.

Openbox is designed to be small, fast, and fully compliant with the Inter-Client Communication Conventions Manual (ICCCM) and Extended Window Manager Hints (EWMH). It supports many features such as menus by which the user can control applications or which display various dynamic information.

Openbox is the standard window manager in LXDE, and often set as the default for LXQt. It is used in Linux distributions such as BunsenLabs, ArchBang, Lubuntu, Trisquel and Manjaro.

The creator and primary author of Openbox is Dana Jansens of Carleton University in Ottawa, Ontario, Canada.

Using Openbox
Openbox provides a right-click (or any other key-binding) "root menu" on the desktop, and allows users to configure the way windows are managed. When a window is minimized, it becomes invisible. To bring windows up again, most use Alt or the Desktop menu, accessible by right-clicking. Or, sometimes, by middle-button-clicking. Extending Openbox with other small programs that add icons, taskbars, launchers, eyecandy and others is common.

Configuration
There are only two configuration files, both located in ~/.config/openbox. They are named menu.xml and rc.xml. These can either be edited manually or with the graphical configuration tools ObConf and obmenu.

All mouse and key-bindings can be configured. For example, a user can set:
 * a window to go to desktop 3 when the close button is clicked with the middle mouse button
 * when scrolling on an icon to move to the next/previous desktop
 * raise or not raise when clicking/moving a window

Pipe menus
Openbox has a dynamic menu system that uses "pipe menus". A menu item in a piped menu system can accept the standard output of a shell script (or other executable) in order to generate a sub-menu. Because the script runs every time the pointer activates it, and because the script can assess environmental conditions, piped menus enable conditional branching to be built into the menu system. A static menu system as used on most window managers gets its layout once, when the window manager is restarted, and will not have the ability to modify the menu layout depending on environmental factors.