Openbox
Openbox is a highly configurable, next generation window manager with extensive standards support.
Contents |
Installation
Install x11-wm/openbox:
| USE flag | Default | Recommended | Description |
|---|---|---|---|
| branding | No | Enable Gentoo specific branding | |
| debug | No | Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see http://www.gentoo.org/proj/en/qa/backtraces.xml | |
| imlib | No | Adds support for imlib, an image loading and rendering library | |
| nls | No | Adds Native Language Support (using gettext - GNU locale utilities) | |
| python | No | Install the python xdg files for xdg autostart | |
| session | Yes | Yes | Enables support for session managers |
| startup-notification | Yes | Enable application startup event feedback mechanism | |
| static-libs | No | Build static libraries |
root # emerge --ask openboxConfiguration
There are four files to consider when configuring Openbox:
- autostart
- environment
- menu.xml
- rc.xml
Openbox installs these files to /etc/xdg/openbox/. If you want to override them, create your own in ~/.config/openbox/.
Starting
To start Openbox you can use a display manager or startx.
If want to use startx and want ConsoleKit support, setup ConsoleKit and create the following file:
exec ck-launch-session dbus-launch --sh-syntax --exit-with-session openbox-session
Autostart
The autostart file is the ideal way to execute specific commands and programs when Openbox starts. It makes no difference if you start Openbox using startx or any display manager. Here is an example:
wallpaper="planet.jpeg"
DESKTOP_ENV="OPENBOX"
conky --daemonize
sleep 1 && nm-applet --sm-disable &
fbpanel &
feh --bg-scale ~/Artwork/${wallpaper}&
batti &
numlockx &
Environment
This is the ideal place to export global variables and configure your Openbox environment as appropriate:
eval $(gpg-agent --daemon)
eval $(gnome-keyring-daemon)
if which dbus-launch >/dev/null && test -z "$DBUS_SESSION_BUS_ADDRESS"; then
eval `dbus-launch --sh-syntax --exit-with-session`
fi
LANG="el_GR.UTF8"
rc.xml
rc.xml is used to specify keybindings and mousebindings. It is located in /etc/xdg/openbox or ~/.config/openbox.
The following are the modifiers.
| Key | Description |
|---|---|
| S | Shift key |
| C | Control key |
| A | Alt key |
| W | Super (windows) key |
| M | Meta key |
| H | Hyper key |
To make a keybinding, you can combine modifiers and a key. They are separated with the '-' sign.
Examples
| Keybinding | Modifier |
|---|---|
| Alt-o | A-o |
| Ctrl-Alt-x | C-A-x |
| Ctrl-Alt-Shift-y | C-A-S-y |
| Shift-s | S-s |
If you want to open xterm with Super-t, you should add the following to the rc.xml:
<keybind key="W-t">
<action name="Execute">
<command>xterm</command>
</action>
</keybind>
You can also bind menus. For example, you can bind Openbox right click and middle click menu with the following:
<keybind key="W-x">
<action name="ShowMenu">
<menu>root-menu</menu>
</action>
</keybind>
<keybind key="W-z">
<action name="ShowMenu">
<menu>client-list-combined-menu</menu>
</action>
</keybind>
In the above example, the right click menu is bound with Super-x, and the middle click menu is bound with Super-z. It is useful especially if you prefer not to use any panel with Openbox.
TODO
Tips
Since version 3.5.0 you can have icons next to your menu entries. For this:
1) You must emerge openbox with imlib support: Add USE flag imlib for x11-wm/openbox into you /etc/portage/package.use like this:
root # echo "x11-wm/openbox imlib" >> /etc/portage/package.useroot # emerge --ask --changed-use openbox2) Add <showIcons>yes</showIcons> in the <menu> section of the rc.xml file.
3) Add in menu.xml icon="<path>" like this:
<menu label="Shells" icon="/usr/share/icons/shell.png"> <item label="xterm" icon="/usr/share/icons/xterm.png"><action name="Execute"> <execute>xterm</execute> </action></item>
See also
- Tint2 - A lightweight panel/taskbar