---
name: "hotkeys"
section: "1"
platform: "linux"
package: "hotkeys"
version: "0.5.7.4-0.3+b1"
release: "Debian 7 (Wheezy)"
platforms: ["linux"]
url: "https://new.carta.tech/hotkeys"
---

# hotkeys(1)

A hotkeys daemon for your Internet/multimedia keyboard in X

## NAME

hotkeys - A hotkeys daemon for your Internet/multimedia keyboard in X

## SYNOPSIS

**hotkeys \[*options...*\]**

## DESCRIPTION

This program sits at the back and listens for the "special" hotkeys that you won't normally use on your Internet/Multimedia keyboards. The buttons perform their intended behaviors, such as volume up and down, mute the speaker, control the backlight, launch applications, etc. The functions are completely programmable.

It has On-screen display (OSD) to show the volume, program that's being started, etc. Most importantly it looks cool.

It features an XML-based keycode configuration file format, which makes it possible to define the hotkeys to launch any programs you want.

## OPTIONS

- **-h, --help**

  Prints a usage message.

- **-t, --type=TYPE**

  Specify the keyboard type.

- **-l, --kbd-list**

  Show all supported keyboards, and the code needed for the -t option.

- **-o, --osd=STATE**

  Turn off or on the on-screen display, default is on if OSD support is compiled with the program. Valid values for STATE are off/0/no/on/1/yes.

- **-L, --loglevel=LEVEL**

  Set the log level in syslog. LEVEL is a value from 0 to 7. 7 will log all messages.

- **-d, --cdrom-dev=DEVICE**

  Specify the device of your CDROM drive, default to */dev/cdrom*. If you give 'none', CDROM related functions will all be disabled. You probably need to define it if you are using devfs.

- **-b, --no-background**

  Tells *hotkeys* NOT to fork itself and run in the background. The short option -b is not backward compatible to version 0.5.6 or before, -b in these versions means run in the background.

- **-F, --fix-vmware=TIME**

  This option is mainly for users who run both hotkeys and VMware at the same time. Since VMware will delete some of the information from the memory of the X keyboard configuration due to reasons that I don't understand, a thread will be created to restore the necessary information regularly. The default time interval is 10 seconds. You can specify a time interval as you like, the value is in seconds. I don't think this option will have any side-effect to the operation of VMware, but if you find that this is not true, please file a bug report. (This option is just a hack, I will implement a nicer method to replace it.)

- **-Z, --no-splash**

  Do not display the splash screen.

## SUPPORTED KEYBOARDS

- 1\.

  **Acer Airkey III Wireless keyboard**

- 2\.

  **Microsoft Internet, Internet Pro, and Natural Pro**

- 3\.

  **Memorex MX1998, MX2500 and MX3000 keyboard**

- 4\.

  **SK-2500, SK-2501a, SK-2505, SK-2800c, SK-7100, SK-9925 USB (partial)**

- 5\.

  **Logitech cordless iTouch, Internet, Cordless Desktop keyboard**

- 6\.

  **Chicony KBP-8993**

- 7\.

  **Compaq KB-9963**

- 8\.

  **Polypix**

- 9\.

  **BTC 9000**

- 10\.

  **Process MCK-800**

-

  **And more...**

As I have only the Acer wireless keyboard, you can help me to support other keyboards by sending me the list of keycodes of the hotkeys on your keyboard. You can do this by using **xev**. Contact me for the details.

## KEYBOARD DEFINITION FILES

Keycodes and the behavior of the hotkeys are stored in a **Keyboard** **definition files**. Each supported keyboard has such a file placed in either */usr/local/share/hotkeys* or */usr/share/hotkeys*, depending on the installation configuration. For instance, the data of the Acer Wireless keyboard is stored in the file *acerwl.def*. Note that the part of the filename without the extension is the name you give to the **-t** option.

Keyboard definition files are in XML format, which should be self-explanatory.

You can create your own definition file and placed it in *$HOME/.hotkeys*. Just take the file *def/sample.xml* or an existing definition file as an example. User definition files override any system defaults.

## CONFIGURATION FILE

The configuration file is named *hotkeys.conf*. By default it is installed in /usr/local/etc (or /etc on Debian). You can also put one into *$HOME/.hotkeys/*, which will override the settings in the global file if one exists.  In other words, the order of parsing is the global file first and then the private one.

The syntax of the file uses the simple key=value pairs. Blank lines and lines starting with # are ignored. The followings are the valid keys and their default values (they are subjected to be changed without prior notice =):

```
  Key             Default
  --------------- ------------------------------------------
  Kbd             (no default)
  # CDROM device
  CDROM           /dev/cdrom
  # ALSA card
  ALSAcard	  default
  # List of ALSA control names, separated by "|"
  ALSAcontrols    Master
  # audio actions
  PrevTrack       xmms --rew
  Play            xmms --play
  Stop            xmms --stop
  Pause           xmms --pause
  NextTrack       xmms --fwd
  Rewind          (no default yet, suggestion welcome)
  # applications
  WebBrowser      mozilla
  Email           mozilla -mail
  Calculator      xcalc
  FileManager     gmc
  MyComputer      gmc
  MyDocuments     gmc
  Favorites       gnome-moz-remote --remote=openBookmarks
  Transfer        gftp
  Record          grecord
  Shell           xterm -rv
  ScreenSaver     xscreensaver-command -activate
  NewsReader      mozilla -news
  Communities     mozilla -remote 'openURL(http://slashdot.org)'
  Search          mozilla -remote 'openURL(http://google.com)'
  Idea            mozilla -remote 'openURL(http://sourceforge.net)'
  Shopping        mozilla -remote 'openURL(http://thinkgeek.com)'
  Go              mozilla -remote 'openURL(http://linux.com)'
  Print           lpr
  # OSD stuffs
  osd_font        lucidasanstypewriter-bold-24
  (should be aliased to -*-lucidatypewriter-bold-r-normal-*-*-240-*-*-*-*-*-*)
  osd_color       LawnGreen
  osd_timeout     3
  osd_position    bottom
  osd_offset      25
```

## NOTES

Do not disable the XKEYBOARD extension. For XFree86 3.x, make sure **XkbDisable** is not set.

The ALSA control names have to be set to enable using ALSA. Otherwise, it defaults to using OSS volume control. The ALSA control names are the same as those used by the [amixer(1)](/amixer/1.md) program, use "amixer scontrols" to list. All listed controls will be adjusted at the same time by hotkeys.

## TODO

Please consult the TODO file.

## BUGS

**Please inform me if some of your normal keys lose functionalities** **after running hotkeys.**

APM support is highly experimental. I only tested on my desktop and sometimes it can't go out from Suspend mode, no response from the keyboard, mouse, nor the suspend button on the case. Not tested on notebook (I don't have one). Note that you need root priviledge to use the APM functions.

There are probably bugs in the *configure.in* script.

The error **"X Error of failed request:  BadValue (integer parameter out of range** **for operation)"** should have been fixed finally in version 0.5.2. Please report if it spits out this error on your system.

## COPYRIGHT

Copyright 2000-2002, Anthony Y P Wong \<ypwong@ypwong.org\>

Licensed under GNU GPL version 2 or later.  This  is  free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

## AUTHOR

Anthony Y P Wong, Debian GNU/Linux
