Openbox
From Gentoo Linux Wiki
Openbox is a highly configurable, next generation window manager with extensive standards support. [1]
Openbox is a variation on the *box window manager where right-click (or any other custom binding) with the mouse will bring up the (user-configurable) root-menu
What makes Openbox unique from the other *box's is its ability to have dynamic generated menus (pipemenu's). A shell script,C-program... can be placed into the configuration of Openbox's menu generation and as long as its output is valid Openbox xml for its menu's. This allows a menu that is not static like other window managers (xml feeds, new email list...)
Contents |
[edit] Placeholder
Configuration for Openbox is split into 3 files
- autostart
- only used if starting the openbox-session wrapper script, not just openbox. Intended for use when started from a login manager.
- menu.xml
- rc.xml
[edit] Autostart
Openbox on its own will load a default menu, default resource config and a preconfigured list of startup applications The defaults are listed in /etc/xdg/openbox
The default autostart.sh will
- set a default background colour
- start a user dbus session
- pre-configure GTK themes
- if gnome detected load gnome-session-daemon
- else if xfce is detected load xfce-mcs-manager
- load any KDE startup apps
- run XDG autostartup
Such autostart can be user-overridden with a ~/.config/openbox/autostart.sh file of their own from which anything the user wants for a better desktop experience can be launched.
#!/bin/bash
feh --bg-scale "$HOME"/Wallpaper/OTW-wallpapers/bliques_by_kjon.jpg & # set background
xscreensaver -nosplash & # launch screensaver daemon
urxvtd -q -f -o # launch unicode-rxvt daemon
sleep 2 # allow Openbox to fully load to then load desktop apps
if [ $(pgrep Thunar) ]; # using Thunar as automounter
then true;
else Thunar --daemon &
fi
tint & # panel
conky --daemonize # sys monitor
urxvtc -name deskshell -tr -sh 100 +sb -fg White -depth 32 & # shell on the desk
trayer --transparent true --alpha 190 --widthtype request --edge bottom --align right --heighttype pixel --height 24 --tint 000000 --SetDockType true & # tray dock
ossxmix -b -x & # OSS4 mixer applet
each process within the autostart.sh need to be backgrounded by appending & to fork the process, except those which are equipped with an option to fork, i.e. urxvt -f, conky -d (except Thunar --daemon, which does not really fork until quitting time, see Thunar(1))
. $GLOBALAUTOSTARTneeds to be added to the top of: ~/.config/openbox/autostart.sh
[edit] Menu config
the application menu of openbox (default keybind is rightmouse on desktop) is defind in an xml document called menu.xml Just like with the autostart.sh there is a default menu that will be used if no user menu.xml is provided
- Default: /etc/xdg/openbox/menu.xml
- User: ~/.config/openbox/menu.xml
There are multiple ways to configure the user menu.xml
- edit the xml by hand and follow the openbox menu guidelines [2]
- emerge obmenua graphical application to aid in creating a user menu.xml
- emerge obmenuand utilise the commandline obm-xdg application that will generate an applications menu based upon Gnome menus layout
obm-xdg can be used to dynamically generate the openbox applications menu thus removing the need to re-edit your menu.xml every time an app is installed/removed Add this to your menu.xml to ~/.config/openbox/menu.xml
<menu execute="obm-xdg" id="xdg-menu" label="System Menu"/>
[edit] RC config
[edit] Pipe Menus
See the Openbox Pipemenus page for more information.
[edit] Create custom keyboard shortcuts
To create custom keyboard shortcuts, edit your ~/.config/openbox/rc.xml accordingly (If you are a LXDE user, the file is named ~/.config/openbox/lxde-rc.xml) :
[...]
<keyboard>
[...]
<keybind key="KeyCombination">
<action name="Execute">
<command>path-to-your-program</command>
</action>
</keybind>
[...]Example :
<keybind key="A-f">
<action name="Execute">
<command>/usr/bin/firefox</command>
</action>
</keybind>See the Openbox Binding page for more information.
