Important: You are required to change your passwords used for Gentoo services and set an email address for your Wiki account if you haven't done so. See the full announcement and Wiki email policy change for more information.

Openbox

From Gentoo Wiki
Jump to: navigation, search
External resources
IconClipboardTask.png This article has some todo items:

Openbox is a highly configurable, next generation window manager with extensive standards support.

Installation

Install x11-wm/openbox:

→ Information about USE flags
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 openbox

Configuration

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:

File~/.xinitrc

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:

File~/.config/openbox/autostart

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:

File~/.config/openbox/environment

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"

menu.xml

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.

Important
Case matters. 'S' (uppercase) is the shift key while 's' (lowercase) is the s alphabet key.

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
Important
The keybinding should go between <keyboard> and </keyboard> in rc.xml.

If you want to open xterm with Super-t, you should add the following to the rc.xml:

File~/.config/openbox/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:

File~/.config/openbox/rc.xml

<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

Icons in Openbox menu

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.use
root # emerge --ask --changed-use openbox

2) Add <showIcons>yes</showIcons> in the <menu> section of the rc.xml file.

3) Add in menu.xml icon="<path>" like this:

Filemenu.xml

<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