Thinkpad Notebooks feature a number of additional buttons on the keyboard. This includes controls for volume and brightness amongst other things. This wiki entry helps you take advantage of that on either SLED or openSUSE.
1. In YaST/Software Management, install the xosd software. This gives Xorg the capability to handle overlayed on-screen-display text. This is similar to the onscreen display you get on your TV when you use the volume control
2. Copy the attached file tpbrc to /etc. This is the overall configuration file for the on-screen-display hooks for the Thinkpad.
3. As root, edit the following /etc/udev/rules.d/50-udev-default.rules and search for the nvram entry. Change the permissions MODE to 0666 from 600. This allows all users to read and write to the non-volatile RAM (NVRAM) that controls some of the Thinkpad’s subsystems.
4. As root, edit /etc/sysconfig/kernel and modify the line with MODULES_LOADED_ON_BOOT=”" to MODULES_LOADED_ON_BOOT=”nvram”. Save it and run SuSEconfig. This will make sure the kernel module that accesses nvram will load on bootup.
5. Leave the root console and, as a standard user, run gnome-session-properties and select the “Startup Programs” tab. Hit the Add button and create an entry ‘tpb -d’. This will ensure that when your GUI starts (after login) that the Thinkpad button control software that works through nvram is loaded. If you want the same functionality for the root user, then su to root and run the same tool for root’s profile.
6. Reboot your system. Here’s what you’ll get….
1. The “Access IBM” will launch a console (though you can configure this to do whatever you like in /etc/tpbrc such as launching Groupwise or Firefox)
2. OSD display for Volume Up/Down and Mute
3. OSD display for LCD brightness Up/Down
4. OSD display for the overhead keyboard light (Thinklight on/off toggle)
Here’s my tpbrc file…
#### TPB CONFIGURATION FILE
### DEVICE SETTINGS
## 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.
#
NVRAM /dev/nvram
## POLLTIME
# Defines the delay between polls in microseconds. Default is 200000.
#
#POLLTIME 200000
### KEYBINDINGS AND CALLBACK
## 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.
##
THINKPAD /opt/gnome/bin/gnome-terminal –geometry=80×50
## 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.
#
#HOME /usr/bin/mozilla
## 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.
#
#SEARCH /usr/bin/mozilla http://www.google.com
## 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.
#
#MAIL /usr/bin/X11/xterm -T mutt -geometry 140×40 -e mutt
## WIRELESS
# String with command and options that should be executed when Wireless button is
# pressed(only available on A and S series). By default no command is executed.
#
#WIRELESS /usr/bin/X11/xterm -T wavemon -geometry 140×40 -e wavemon
## 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.
#
#FAVORITES
## 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.
#
#RELOAD
## 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.
#
#ABORT
## 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.
#
#BACKWARD
## 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.
#
#FORWARD
## 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.
#
#FN
## 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
#
#CALLBACK /usr/share/doc/tpb/callback_example.sh
### MIXER SETTINGS
## 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.
#
# MIXER OFF
## MIXERSTEPS
# Defines how much steps should be available when using the OSS mixer. Default
# is 14. If an other number of steps is used, tpb needs write access to the
# nvram device.
#
#MIXERSTEPS 14
## MIXERDEVICE
# Defines the mixer device to use for OSS mixer support. Default is /dev/mixer.
#
#MIXERDEVICE /dev/mixer
### POWERMANAGEMENT SETTINGS
## 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.
#
#APM 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.
#
#POWERMGT AUTO
### X11 SETTINGS
# 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. However some people like to
# use the X11 events through xmodmap or the like. This option turns off the
# grabbing of the events. Affected keys are HOME, SEARCH, MAIL, FAVORITES,
# RELOAD, ABORT, BACKWARD, FORWARD and FN. Default is on.
#
#XEVENTS OFF
### ON-SCREEN DISPLAY SETTINGS
## OSD
# Global switch for showing on-screen display for volume, mute and brightness.
# Possible values are on and off. Default is on.
#
OSD 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.
#
#OSDZOOM OFF
## OSDTHINKLIGHT
# Specific switch for showing on-screen display for thinklight button.
# Possible values are on and off. Default is unset, follows the OSD option.
#
#OSDTHINKLIGHT OFF
## 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.
#
#OSDDISPLAY OFF
## OSDHVEXPANSIOFF
# Specific switch for showing on-screen display for HV expansion button.
# Possible values are on and off. Default is unset, follows the OSD option.
#
#OSDHVEXPANSION OFF
## OSDBRIGHTNESS
# Specific switch for showing on-screen display for brightness buttons.
# Possible values are on and off. Default is unset, follows the OSD option.
#
#OSDBRIGHTNESS OFF
## 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.
#
#OSDVOLUME OFF
## 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.
#
#OSDPOWERMGT OFF
## 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.
#
#OSDFONT -*-lucidatypewriter-*-*-*-*-*-240-*-*-*-*-*-*
OSDFONT -adobe-helvetica-*-r-*-*-24-*-*-*-*-*-iso10646-1
## OSDCOLOR
# Defines the color of the on-screen display. You may use “xcolors” to choose
# one. Default is BLUE.
#
OSDCOLOR Green
## OSDTIMEOUT
# Defines how long (in seconds) the on-screen display is shown after the last
# keys was pressed. Default is 3.
#
OSDTIMEOUT 2
## OSDOFFSET
# For backward compatibility. Same as OSDVERTICAL.
#
#OSDOFFSET 25
## OSDSHADOW
# Defines the offset of the font shadow in pixels. Default is 2.
#
#OSDSHADOW 2
## OSDSHADOWCOLOR
# Defines the color of the shadow of the on-screen display. You may use
# “xcolors” to choose one. Default is BLACK.
#
#OSDSHADOWCOLOR BLACK
## OSDOUTLINE
# Defines the width of the font outline in pixels. Default is 1.
#
#OSDOUTLINE 1
## OSDOUTLINECOLOR
# Defines the color of the outline of the on-screen display. You may use
# “xcolors” to choose one. Default is BLACK.
#
#OSDOUTLINECOLOR BLACK
## OSDVERTICAL
# Defines the offset from the top or bottom of the screen in pixels. Default is 25.
#
#OSDVERTICAL 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.
#
#OSDHORIZONTAL 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.
#
#OSDPOS BOTTOM
## OSDALIGN
# Defines the alignment of the osd. Possible values are left, center and right.
# Default is left.
#
#OSDALIGN LEFT
Recent Comments