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