NAME¶
tpb - program to use the IBM ThinkPad (tm) special keys
SYNOPSIS¶
tpb [options]
DESCRIPTION¶
With TPB it is possible to bind a program to the ThinkPad, Mail, Home and Search
button. TPB can also run a callback program on each state change with the
changed state and the new state as options. So it is possible to trigger
several actions on different events. TPB has a on-screen display (OSD) to show
volume, mute, brightness and some other information. Furthermore TPB supports
a software mixer, as the R series ThinkPads have no hardware mixer to change
the volume.
OPTIONS¶
- -h, --help
- Display help.
- -d, --daemon
- Startup as daemon.
- -c, --config=FILE
- Read FILE as additional configuration file.
- -A, --apm=STATE
- Some ThinkPads generate mouse and keyboard events or have a
high CPU load when polling /proc/apm. You may enable this, if you want the
AC connected/AC disconnected messages. Default is off.
- -P, --powermgt=STATE
- The program apmiser (part of tpctl package) switches the
power management mode according to the needs of the user. This results in
lots of changes displayed in OSD. To avoid this, the power management
messages can be turned off. Default is auto.
- -x, --xevents=STATE
- Some of the special keys generate X11 events instead of
changing the nvram. TPB is able to grab those keys and run an application.
In general events are only grabbed for keys for which a command is
assigned or if the callback script is configured. However some people like
to use the X11 events through xmodmap or the like. This option turns off
the grabbing of all events regardless if they are configured or not.
Affected keys are HOME, SEARCH, MAIL, FAVORITES, RELOAD, ABORT, BACKWARD,
FORWARD and FN. Default is on.
- -m, --mixer=STATE
- Use OSS mixer to change volume and for mute/unmute. This
should be use on models with no hardware mixer (volume and mute buttons
show no effect). R31 is reported to have no hardware mixer. To use this
you must enable write access to the NVRAM device (possibly dangerous).
Possible values are on and off. Default is off.
- -o, --osd=STATE
- Show on-screen display for volume, mute and brightness.
Possible values are on and off. Default is on.
- -p, --poll=DELAY
- Set delay between polls in microseconds. Default is
200000.
- -t, --thinkpad=CMD
- String with command and options that should be executed
when ThinkPad button is pressed. It is possible to execute any program.
The program needs to include the complete path to the executable. By
default no command is executed.
- -H, --home=CMD
- String with command and options that should be executed
when Home button is pressed. By default no command is executed.
- -S, --search=CMD
- String with command and options that should be executed
when Search button is pressed. By default no command is executed.
- -M, --mail=CMD
- String with command and options that should be executed
when Mail button is pressed. By default no command is executed.
- -W, --wireless=CMD
- String with command and options that should be executed
when Wireless button is pressed. By default no command is executed.
- -C, --callback=CMD
- String with command and options that should be executed
each button press and state change. tpb passes an identifier as first
argument and the new state as second argument to the callback. So you can
do fancy things :) By default no command is executed.
- -v, --verbose
- Print information about pressed keys.
CONFIGURATION FILE¶
The default values of tpb can be overridden using a configuration file. The
priority of the configuration options is:
- •
- builtin defaults
- •
- configuration in /etc/tpbrc
- •
- configuration in $HOME/.tpbrc
- •
- configuration in file given with '--config' command line
option
- •
- command line options
tpb searches for the file '~/.tpbrc'. The configuration consists of lines of the
form:
# COMMENT
KEYWORD ARGUMENT # COMMENT
Keywords are:
- NVRAM
- Should define the nvram device from where the information
about the key states is read. Default is to try /dev/nvram, followed by
/dev/misc/nvram.
- POLLTIME
- Defines the delay between polls in microseconds. Default is
200000.
- THINKPAD
- String with command and options that should be executed
when ThinkPad button is pressed. It is possible to execute any program. By
default no command is executed.
- HOME
- String with command and options that should be executed
when Home button is pressed (only available on A and S series). By default
no command is executed.
- SEARCH
- String with command and options that should be executed
when Search button is pressed (only available on A and S series). By
default no command is executed.
- MAIL
- String with command and options that should be executed
when Mail button is pressed(only available on A and S series). By default
no command is executed.
- FAVORITES
- String with command and options that should be executed
when Favorites button is pressed (only available on A series). By default
no command is executed.
- RELOAD
- String with command and options that should be executed
when Reload button is pressed (only available on A series). By default no
command is executed.
- ABORT
- String with command and options that should be executed
when Abort button is pressed (only available on A series). By default no
command is executed.
- BACKWARD
- String with command and options that should be executed
when Backward button is pressed (only available on A series). By default
no command is executed.
- FORWARD
- String with command and options that should be executed
when Forward button is pressed (only available on A series). By default no
command is executed.
- FN
- String with command and options that should be executed
when Fn button is pressed. This is only triggered, when Fn is released
again and it was not used for a key combination. By default no command is
executed.
- CALLBACK
- String with command and options that should be executed
each button press and state change. tpb passes an identifier as first
argument and the new state as second argument to the callback. So you can
do fancy things :) By default no command is executed. Supported
identifiers and states are:
IDENTIFIER STATES/VALUE
thinkpad pressed
home pressed
search pressed
mail pressed
favorites pressed
reload pressed
abort pressed
backward pressed
forward pressed
fn pressed
zoom on, off
thinklight on, off
display lcd, crt, both
expand on, off
brightness PERCENT
volume PERCENT
mute on, off
ac_power connected, disconnected
powermgt_ac high, auto, manual
powermgt_battery high, auto, manual
- MIXER
- Use OSS mixer to change volume and for mute/unmute. This
should be use on models with no hardware mixer (volume and mute buttons
show no effect). R31 is reported to have no hardware mixer. To use this
you must enable write access to the NVRAM device (possibly dangerous).
Possible values are on and off. Default is off.
- MIXERSTEPS
- Defines how much steps should be available when using the
OSS mixer. Default is 14. If another number of steps is used, tpb needs
write access to the nvram device.
- MIXERDEV
- Defines the mixer device to use for OSS mixer support.
Default is /dev/mixer.
- APM
- Some ThinkPads generate mouse and keyboard events or have a
high CPU load when polling /proc/apm. You may enable this, if you want the
AC connected/AC disconnected messages. Default is off.
- POWERMGT
- The program apmiser (part of tpctl package) switches the
power management mode according to the needs of the user. This results in
lots of changes displayed in OSD. To avoid this, the power management
messages can be turned off. Default is auto.
- XEVENTS
- Some of the special keys generate X11 events instead of
changing the nvram. TPB is able to grab those keys and run an application.
In general events are only grabbed for keys for which a command is
assigned or if the callback script is configured. However some people like
to use the X11 events through xmodmap or the like. This option turns off
the grabbing of all events regardless if they are configured or not.
Affected keys are HOME, SEARCH, MAIL, FAVORITES, RELOAD, ABORT, BACKWARD,
FORWARD and FN. Default is on.
- OSD
- Show on-screen display for volume, mute and brightness.
Possible values are on and off. Default is on.
- OSDZOOM
- Specific switch for showing on-screen display for zoom
button. Possible values are on and off. Default is unset, follows the OSD
option.
- OSDTHINKLIGHT
- Specific switch for showing on-screen display for
thinklight button. Possible values are on and off. Default is unset,
follows the OSD option.
- OSDDISPLAY
- Specific switch for showing on-screen display for display
output button. Possible values are on and off. Default is unset, follows
the OSD option.
- OSDHVEXPANSION
- Specific switch for showing on-screen display for HV
expansion button. Possible values are on and off. Default is unset,
follows the OSD option.
- OSDBRIGHTNESS
- Specific switch for showing on-screen display for
brightness buttons. Possible values are on and off. Default is unset,
follows the OSD option.
- OSDVOLUME
- Specific switch for showing on-screen display for ivolume
and mute buttons. Possible values are on and off. Default is unset,
follows the OSD option.
- OSDPOWERMGT
- Specific switch for showing on-screen display for ipower
management changes. Possible values are on and off. Default is unset,
follows the OSD option.
- OSDFONT
- Defines the font for the on-screen display. You may use
"xfontsel" to choose one. Default is the default font of the
xosd library.
- OSDCOLOR
- Defines the color of the on-screen display. You may use
"xcolors" to choose one. Default is BLUE.
- OSDTIMEOUT
- Defines how long (in seconds) the on-screen display is
shown after the last keys was pressed. Default is 3.
- OSDOFFSET
- For backward compatibility. Same as OSDVERTICAL.
- OSDSHADOW
- Defines the offset of the font shadow in pixels. Default is
2.
- OSDSHADOWCOLOR
- Defines the color of the shadow of the on-screen display.
You may use "xcolors" to choose one. Default is BLACK.
- OSDOUTLINE
- Defines the width of the font outline in pixels. Default is
1.
- OSDOUTLINECOLOR
- Defines the color of the outline of the on-screen display.
You may use "xcolors" to choose one. Default is BLACK.
- OSDVERTICAL
- Defines the offset from the top or bottom of the screen in
pixels. Default is 25.
- OSDHORIZONTAL
- Defines the offset from the left or right of the screen in
pixels. Only supported by xosd 2.0.0 and above. Default is 25.
- OSDPOS
- Defines where the osd is shown. Possible values are top,
middle and bottom. The value middle is only supported by xosd 2.0.0 and
above. Default is bottom.
- OSDALIGN
- Defines the alignment of the osd. Possible values are left,
center and right. Default is left.
NOTES¶
Requires NVRAM device /dev/nvram. This must be enabled in your kernel. Although
the device file must exist. The device file could be created with ´mknod
/dev/nvram c 10 144´
This program was developed on a Thinkpad Model T21.
EXAMPLE¶
tpb --osd=off --verbose --thinkpad="xterm -T ntpctl -e ntpctl"
COPYRIGHT¶
Copyright 2002-2005, Markus Braun <markus.braun@krawel.de>
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¶
Written by Markus Braun