From ArchWiki
Revision as of 14:10, 30 December 2016 by Chazza (talk | contribs) ((Openbox) Keybinds: add a temporary note explaining purpose of section)
Jump to: navigation, search

ArchWiki Maintainer

Hello all. I'm from the UK and I've been using Arch since mid 2013. See also, my AUR packages.

(Openbox) Keybinds

Note: WIP - this is an attempt to rationalise the rather unwieldy Openbox#Keybinds section.

All keybinds must be added to the ~/.config/openbox/rc.xml file, and below the <!-- Keybindings for running aplications --> heading. Although a brief overview has been provided here, a more in-depth explanation of keybindings can be found at

Keybinds can be added to the configuration file using the following syntax:

<keybind key="my-key-combination">
  <action name="my-action">

The action name for running an external command is Execute. Use the following syntax to define an external command to execute:

<action name="Execute">

See the Openbox wiki for a list of all available actions.

Note: The obkeyAUR utility provides a graphical interface for configuring key bindings. Before using obkey, you should use obconf to create ~/.config/openbox/rc.xml.

Special keys

While the use of standard alpha-numeric keys for keybindings is self-explanatory, special names are assigned to other types of keys, such as modifers, multimedia keys and navigation keys.


Modifier keys play an important role in keybindings (e.g. holding down the shift or CTRL / control key in combination with another key to undertake an action). Using modifiers helps to prevent conflicting keybinds, whereby two or more actions are linked to the same key or combination of keys. The syntax to use a modifier with another key is:


The modifer codes are as follows:

  • S: Shift
  • C: Control / CTRL
  • A: Alt
  • W: Super / Windows
  • M: Meta
  • H: Hyper (If it is bound to something)

Multimedia keys

Where available, it is possible to set the appropriate multimedia keys to perform their intended functions, such as to control the volume and/or the screen brightness. These will usually be integrated into the function keys, and are identified by their appropriate symbols. See Extra keyboard keys for details.

The volume and brightness multimedia codes are as follows (note that commands will still have to be assigned to them to actually function):

  • XF86AudioRaiseVolume: Increase volume
  • XF86AudioLowerVolume: Decrease volume
  • XF86AudioMute: Mute / unmute volume
  • XF86MonBrightnessUp: Increase screen brightness
  • XF86MonBrightnessDown: Decrease screen brightness

For a full list of XF86 multimedia keys, see the LinuxQuestions wiki.

Volume control

What commands should be used for controlling the volume will depend on whether ALSA, PulseAudio, or OSS is used for sound.

Navigation keys

These are the directional / arrow keys, usually used to move the cursor up, down, left, or right. The (self-explanatory) navigation codes are as follows:

  • Up: Up
  • Down: Down
  • Left: Left
  • Right: Right

Window snapping

Merge-arrows-2.pngThis article or section is a candidate for merging with Openbox#Tips and tricks.Merge-arrows-2.png

Notes: More of a specific tip/trick than generic keybinds information (Discuss in User talk:Chazza#)

Many desktop environments and window managers support window snapping (e.g. Windows 7 Aero snap), whereby they will automatically snap into place when moved to the edge of the screen. This effect can also be simulated in Openbox through the use of keybinds on focused windows.

As illustrated in the example below, percentages must be used to determine window sizes (see for further information). In this instance, The super key is used in conjunction with the navigation keys:

<keybind key="W-Left">
    <action name="UnmaximizeFull"/>
    <action name="MaximizeVert"/>
    <action name="MoveResizeTo">
    <action name="MoveToEdge"><direction>west</direction></action>
<keybind key="W-Right">
    <action name="UnmaximizeFull"/>
    <action name="MaximizeVert"/>
    <action name="MoveResizeTo">
    <action name="MoveToEdge"><direction>east</direction></action>

However, it should be noted that once a window has been 'snapped' to an edge, it will remain vertically maximised unless subsequently maximised and then restored. The solution is to implement additional keybinds - in this instance using the down and up keys - to do so. This will also make pulling 'snapped' windows from screen edges faster as well:

<keybind key="W-Down">
   <action name="Unmaximize"/>
<keybind key="W-Up">
   <action name="Maximize"/>

This Ubuntu forum thread provides more information. Applications such as opensnap-gitAUR are also available to automatically simulate window snapping behaviour without the use of keybinds.