12. Extra Keys / Hot Keys

12.1. Related Documentation

12.2. Utilities

Some laptops offer extra buttons, e.g. - internet, mail keys, or zone keys. If the Linux kernel and XFree86/X.org generate key codes for them, hotkeys or just plain xmodmap (see the man page of this X11 programm for details) may be helpful. If Linux doesn't know about the keys, you'll have to patch the kernel first. Though I'm not quite sure some tools don't seem to require this, I don't understand how it works yet. You may also use xhkeys . This tool allows you to assign an action to any key that is otherwise unused in X (such as the "menu" key on a 105 key keyboard, extra keys on some keyboard models, or odd keys on laptops). The action assigned to a key or key combination (key and modifiers) can be a builtin operation, a call to an external application, the sending of a key event (simulating a key press/release), or the sending of a mouse button event (simulating a button press/release).


To get information about unknown keyboard or mouse events you may use showkey and mev (the last one is from the gpm package) on a console screen. But some of the extra keys are not found with these tools.

keyTouch makes it possible to easily configure the extra function keys of a keyboard (like multimedia keys). It allows the user to define which program will be executed when a key is pressed. By using keyTouch-editor the user can easily create a keyboard file for his or her laptop to get the laptop supported.

akdaemon is a userland daemon to invoke "the fun keys" by accessing a dev node offered by the complementary kernel patch or the funkey programm .

The hotkeys package is supposed to listen for those multimedia keys.

Special ("easy access") buttons are supported by LinEAK . Here is an example lineakd.conf file:

# LinEAK Configuration file for Compaq Easy Access Key 2800 (6 keys)

# Global settings
KeyboardType            = CIKP800
CdromDevice             = /dev/cdrom
MixerDevice             = /dev/mixer

# Specific keys of your keyboard
internet        = xosview
search          = kfind
mail            = kmail
multimedia      = "artsdsp xmms"
voldown         = "aumix -v -2"
volup           = "aumix -v +2"

# end lineakd.conf

xbindkeys is a program that associates keys or mouse buttons to shell commands under X. After a little configuration, it can start many commands with the keyboard (e.g. control+alt+x starts an xterm) or with the mouse buttons.

ACME is a small GNOME tool to make use of the multimedia buttons present on most laptops and Internet keyboards: Volume, Brightness, Power, Eject, My Home, Search, E-Mail, Sleep, Screensaver, Finance, WWW, Calculator, Record, Close Window, Shade Window, Play, Stop, Pause, Previous, Next, Groups, Media, Refresh, and Help buttons. It works on all the platforms GNOME supports (laptops and PCs). It uses either OSS or ALSA for Volume control.

For some laptop series there are Linux utilities available to control special hotkeys and other features.

  • toshutils by Jonathan Buzzard for some Toshiba models.

  • Tclkeymon is a daemon for Toshiba laptops that use ACPI and the Toshiba ACPI extensions. It monitors function keys and Toshiba-specific buttons (including the CD player buttons and the state of the laptop lid) and responds appropriately.

  • tpctl IBM ThinkPad configuration tools for Linux by Thomas Hood.

  • ThinkPad Buttons enables the special keys that are found on the keyboard of an IBM ThinkPad. It is possible to bind a program to each of the buttons. It has an on-screen display (OSD) to show volume, mute, LCD brightness, and some other things.

  • IBM ThinkPad Scroll Daemon

  • i8k utils for DELL laptops.

  • hotkey Linux driver for ACER laptops.

  • OSL is a simple pbbuttonsd (used on Apple laptops to access the 'special keys' like volume, eject, etc.) client. It uses the xosd-lib to display the current values which makes it look a lot more like OSX than other pbbuttonsd-clients.

  • PBButtons enables hotkeys on Apple iBook/PowerBook/TiBook. I have heard it works well on x86 architectures, too.

  • ikeyd is a simple daemon which sets the volume or ejects a CDROM when hotkeys are pressed on an iBook/TiBook.

  • jogdiald for the Jog-Dial on SONY laptops offers support for extra keys, too.

  • omke is a set of small programs and patches to configure some advanced features of your HP OmniBook (usually things that HP has not documented) such as enabling/disabling the extra onetouch/multimedia keys. This tool works also for some Toshiba notebooks.