<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.thinkwiki.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Thabermann</id>
	<title>ThinkWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.thinkwiki.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Thabermann"/>
	<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/wiki/Special:Contributions/Thabermann"/>
	<updated>2026-05-21T12:11:54Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.12</generator>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_get_special_keys_to_work&amp;diff=1562</id>
		<title>How to get special keys to work</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_get_special_keys_to_work&amp;diff=1562"/>
		<updated>2005-02-28T00:10:42Z</updated>

		<summary type="html">&lt;p&gt;Thabermann: /* tpb configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Overview===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! key !! standard function !! tool !! configurability !! remarks&lt;br /&gt;
|-&lt;br /&gt;
| Fn || - || xmodmap, [[tpb]] || full || on release without completed key combination&lt;br /&gt;
|-&lt;br /&gt;
| Fn-F3 || blank screen || [[ibm-acpi]], [[thinkpad-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| Fn-F4 || suspend to ram || [[ibm-acpi]], [[thinkpad-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| Fn-F5 || switch bluetooth || [[thinkpad-acpi]] || ??? || in models starting from 2002&lt;br /&gt;
|-&lt;br /&gt;
| Fn-F7 || switch display || [[thinkpad-acpi]], [[tpb]] || additional actions || &lt;br /&gt;
|-&lt;br /&gt;
| Fn-F8 || toggle display expansion || [[thinkpad-acpi]], [[tpb]] || additional actions ||&lt;br /&gt;
|-&lt;br /&gt;
| Fn-F9 || eject from dock || [[thinkpad-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| Fn-F12 || hibernate || [[ibm-acpi]], [[thinkpad-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| Fn-Pos1 || brightness up || [[tpb]] || additional actions ||&lt;br /&gt;
|-&lt;br /&gt;
| Fn-End || brightness down || [[tpb]] || additional actions ||&lt;br /&gt;
|-&lt;br /&gt;
| Fn-PageUp || toggle thinklight || [[ibm-acpi]], [[tpb]] || additional actions ||&lt;br /&gt;
|-&lt;br /&gt;
| Fn-Space || toggle zoom || [[tpb]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| Access IBM || help application || [[tpb]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| Home || open web browser || xmodmap, [[tpb]] || full || only iSeries and ext. keyboards&lt;br /&gt;
|-&lt;br /&gt;
| Search || open search application || xmodmap, [[tpb]] || full || only iSeries and ext. keyboards&lt;br /&gt;
|-&lt;br /&gt;
| Mail || open mail application || xmodmap, [[tpb]] || full || only iSeries and ext. keyboards&lt;br /&gt;
|-&lt;br /&gt;
| Favorites || open favorites || xmodmap, [[tpb]] || full || only iSeries and ext. keyboards&lt;br /&gt;
|-&lt;br /&gt;
| Reload || reload web page || xmodmap, [[tpb]] || full || only iSeries and ext. keyboards&lt;br /&gt;
|-&lt;br /&gt;
| Abort || abort loading page || xmodmap, [[tpb]] || full || only iSeries and ext. keyboards&lt;br /&gt;
|-&lt;br /&gt;
| Backward || previous page || xmodmap, [[tpb]] || full || iSeries, ext. keyboards, Thinkpads starting from 2002&lt;br /&gt;
|-&lt;br /&gt;
| Forward || next page || xmodmap, [[tpb]] || full || iSeries, ext. keyboards, Thinkpads starting from 2002&lt;br /&gt;
|-&lt;br /&gt;
| Volume up || volume up || [[tpb]] || additional actions ||&lt;br /&gt;
|-&lt;br /&gt;
| Volume down || volume down || [[tpb]] || additional actions ||&lt;br /&gt;
|-&lt;br /&gt;
| Volume mute || mute volume || [[tpb]] || additional actions ||&lt;br /&gt;
|-&lt;br /&gt;
| Power || shutdown || [[ibm-acpi]] || full || triggered on pressing 3secs, but notebook goes off on 5sec press&lt;br /&gt;
|-&lt;br /&gt;
| Display lid || blank screen || [[ibm-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| Ultrabay lid || announce ultrabay change || [[ibm-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| Dock eject || eject from dock || [[ibm-acpi]] || full ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===ibm-acpi events===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|+ events triggered by ibm-acpi for /etc/acpi/events files&lt;br /&gt;
! key !! event&lt;br /&gt;
|-&lt;br /&gt;
| Fn-F3 || ibm/hotkey HKEY 00000080 00001003&lt;br /&gt;
|-&lt;br /&gt;
| Fn-F4 || ibm/hotkey HKEY 00000080 00001004&lt;br /&gt;
|-&lt;br /&gt;
| Fn-F12 || ibm/hotkey HKEY 00000080 0000100c&lt;br /&gt;
|-&lt;br /&gt;
| Power || button/power PWRF 00000080 xxxxxxxx&lt;br /&gt;
|-&lt;br /&gt;
| Display lid || button/lid LID 00000080 xxxxxxxx&lt;br /&gt;
|-&lt;br /&gt;
| Ultrabay eject || ibm/bay MSTR 00000003 00000000&lt;br /&gt;
|-&lt;br /&gt;
| Ultrabay inserted || ibm/bay MSTR 00000001 00000000&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===tpb configuration===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|+ configuration keywords for tpbrc&lt;br /&gt;
! key !! config keyword&lt;br /&gt;
|-&lt;br /&gt;
| Access IBM || THINKPAD&lt;br /&gt;
|-&lt;br /&gt;
| Home || HOME&lt;br /&gt;
|-&lt;br /&gt;
| Search || SEARCH&lt;br /&gt;
|-&lt;br /&gt;
| Mail || MAIL&lt;br /&gt;
|-&lt;br /&gt;
| Favorites || FAVORITES&lt;br /&gt;
|-&lt;br /&gt;
| Reload || RELOAD&lt;br /&gt;
|-&lt;br /&gt;
| Abort || ABORT&lt;br /&gt;
|-&lt;br /&gt;
| Backward || BACKWARD&lt;br /&gt;
|-&lt;br /&gt;
| Forward || FORWARD&lt;br /&gt;
|-&lt;br /&gt;
| Fn || FN&lt;br /&gt;
|-&lt;br /&gt;
| Fn-Space || CALLBACK (zoom on/off)&lt;br /&gt;
|-&lt;br /&gt;
| Fn-PageUp || CALLBACK (thinklight on/off)&lt;br /&gt;
|-&lt;br /&gt;
| Fn-F7 || CALLBACK (display lcd/crt/both)&lt;br /&gt;
|-&lt;br /&gt;
| Fn-F8 || CALLBACK (expand on/off)&lt;br /&gt;
|-&lt;br /&gt;
| Fn-PageUp || CALLBACK (brightness &amp;lt;percent&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| Fn-PageDown || CALLBACK (brightness &amp;lt;percent&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| Volume up || CALLBACK (volume &amp;lt;percent&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| Volume down || CALLBACK (volume &amp;lt;percent&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| Volume mute || CALLBACK (mute on/off)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
To all parameter keywords should be assigned the full path to the executables supposed to be started on key press.&lt;br /&gt;
The exectable provided for the CALLBACK keyword should take the parameters given in parentheses and act according to them.&lt;br /&gt;
If you want to use xmodmap for the HOME, SEARCH, MAIL, FAVORITES, RELOAD, ABORT, BACKWARD, FORWARD and FN keys you should&lt;br /&gt;
provide a XEVENTS=off in your tpbrc.&lt;br /&gt;
&lt;br /&gt;
===xmodmap configuration===&lt;br /&gt;
xmodmap enables you to edit the modifier map and keymap tables that are used to translate keycodes into keysyms.&lt;br /&gt;
Understood? Well, basically it allows you to give the X server a dictionary for the translation of keycodes like &amp;quot;97&amp;quot; into more human readable synonyms like &amp;quot;Home&amp;quot;. This way xmodmap allows you to make the special keys of your keyboard known to X applications.&lt;br /&gt;
&lt;br /&gt;
Usually you should write your keycode-keysym associations into the file ~/.Xmodmap. This file is usually read by the X session startup scripts of your system, so that the mappings automatically get included everytime you run the X server.&lt;br /&gt;
&lt;br /&gt;
The ~/.Xmodmap lines for our purpose are in the form of&lt;br /&gt;
 keycode &amp;lt;keycode&amp;gt; = &amp;lt;keysym&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following table shows the keycodes generated by the Thinkpad special keys and sensible keysyms to assign them to.&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|+ keycodes and recommended keysyms&lt;br /&gt;
! key !! keycode !! keysym&lt;br /&gt;
|-&lt;br /&gt;
| Backward || 234 || XF86Back or F21&lt;br /&gt;
|-&lt;br /&gt;
| Forward || 233 || XF86Forward or F22&lt;br /&gt;
|-&lt;br /&gt;
| Home || 178 || XF86HomePage&lt;br /&gt;
|-&lt;br /&gt;
| Search || 229 || XF86Search&lt;br /&gt;
|-&lt;br /&gt;
| Mail || 236 || XF86Mail&lt;br /&gt;
|-&lt;br /&gt;
| Favorites || 230 || XF86AddFavorite or XF86Favorites&lt;br /&gt;
|-&lt;br /&gt;
| Reload || 231 || XF86Reload&lt;br /&gt;
|-&lt;br /&gt;
| Abort || 232 || XF86Stop&lt;br /&gt;
|-&lt;br /&gt;
| Fn || 227 || F35&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(In case you want to use the browser keys in Firefox, you will have to assign the F21 and F22 or similar keysyms to them.)&lt;br /&gt;
&lt;br /&gt;
Note: if you are running tpb you might need to add the line XEVENTS=off into your tpbrc to stop it from grabbing the key events and allow them to get through to X instead.&lt;br /&gt;
&lt;br /&gt;
===firefox configuration===&lt;br /&gt;
(First of all thanks go to Ryan Barrett for writing the little howto on his blog.)&amp;lt;br /&amp;gt;&lt;br /&gt;
To have firefox make use of the browser keys you need to modify one of its files.&lt;br /&gt;
To do this you will first need to extract it from the browser.jar archive. Do...&lt;br /&gt;
 $ cd &amp;lt;firefox-directory&amp;gt;/chrome&lt;br /&gt;
 $ unzip browser.jar&lt;br /&gt;
The file of interest is content/browser/browser.xul. Edit it...&lt;br /&gt;
 $ vi content/browser/browser.xul&lt;br /&gt;
Look for the '''&amp;lt;keyset id=&amp;quot;mainKeyset&amp;quot;&amp;gt;''' section and add the following lines within...&lt;br /&gt;
 &amp;lt;key id=&amp;quot;goBackTP&amp;quot; keycode=&amp;quot;VK_F21&amp;quot; command=&amp;quot;Browser:Back&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;key id=&amp;quot;goForwardTP&amp;quot; keycode=&amp;quot;VK_F22&amp;quot; command=&amp;quot;Browser:Forward&amp;quot; /&amp;gt;&lt;br /&gt;
No save the file and repackage the browser.jar archive...&lt;br /&gt;
 $ zip -rD0 browser.jar content/browser/&lt;br /&gt;
That's it.&lt;br /&gt;
&lt;br /&gt;
===pekwm configuration===&lt;br /&gt;
This is just a small example of what else you can do with your extra keys.&amp;lt;br /&amp;gt;&lt;br /&gt;
I configured the two browser keys of my T41p to switch workspaces in pekwm, by adding the following two lines to the .pekwm/keys file:&lt;br /&gt;
 KeyPress = &amp;quot;Mod1 XF86Back&amp;quot; { Actions = &amp;quot;GoToWorkspace prev&amp;quot; }&lt;br /&gt;
 KeyPress = &amp;quot;Mod1 XF86Forward&amp;quot; { Actions = &amp;quot;GoToWorkspace next&amp;quot; }&lt;/div&gt;</summary>
		<author><name>Thabermann</name></author>
		
	</entry>
</feed>