Man Linux: Main Page and Category List


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


       hotkeys [options...]


       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.


       -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

       -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

       -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.


       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

       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


       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-

       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.


       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(’
         Search          mozilla -remote ’openURL(’
         Idea            mozilla -remote ’openURL(’
         Shopping        mozilla -remote ’openURL(’
         Go              mozilla -remote ’openURL(’
         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


       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) program, use "amixer scontrols" to
       list.  All listed controls  will  be  adjusted  at  the  same  time  by


       Please consult the TODO file.


       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 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 2000-2002, Anthony Y P Wong <>

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


       Anthony Y P Wong, Debian GNU/Linux