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