<?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=Low</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=Low"/>
	<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/wiki/Special:Contributions/Low"/>
	<updated>2026-06-30T14:04:32Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.12</generator>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=User:Low&amp;diff=42553</id>
		<title>User:Low</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=User:Low&amp;diff=42553"/>
		<updated>2009-04-09T05:34:45Z</updated>

		<summary type="html">&lt;p&gt;Low: /* about the System */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== about Low ==&lt;br /&gt;
I'm a linux noob, really. Though I spent 5 years maintaining a huge website, I had little exposure to the system itself. At work I'm 50% on HP-UX, also as a user. I learn as I progress.&lt;br /&gt;
== about the System ==&lt;br /&gt;
'''[[:Category:R60|R60]]''' [[9461-DXG]]&lt;br /&gt;
&lt;br /&gt;
[[Intel Core 2 Duo (Merom)|Intel(R) Core(TM)2 CPU T5600 @ 1.83GHz]]&lt;br /&gt;
&lt;br /&gt;
15&amp;quot; 1400x1050px w/[[ATI Mobility Radeon X1400|ATI X1400]]&lt;br /&gt;
 &lt;br /&gt;
'''[[:Category:Slackware|Slackware]] 12.2''' (pretty much 'vanilla' - only added the [[fglrx]] package for the ATI and [[TuxOnIce]] - and as you might have guessed: after reinstalling and recompiling the kernel about 20 times till I found out that for SATA you need some SCSI modules...)&lt;br /&gt;
&lt;br /&gt;
'''fvwm''' 2.5.26&lt;br /&gt;
&lt;br /&gt;
= Low's Sandbox =&lt;/div&gt;</summary>
		<author><name>Low</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=User:Low&amp;diff=42552</id>
		<title>User:Low</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=User:Low&amp;diff=42552"/>
		<updated>2009-04-09T05:34:15Z</updated>

		<summary type="html">&lt;p&gt;Low: /* about the System */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== about Low ==&lt;br /&gt;
I'm a linux noob, really. Though I spent 5 years maintaining a huge website, I had little exposure to the system itself. At work I'm 50% on HP-UX, also as a user. I learn as I progress.&lt;br /&gt;
== about the System ==&lt;br /&gt;
'''[[:Category:R60|R60]]''' [[9461-DXG]]&lt;br /&gt;
&lt;br /&gt;
[[Intel Core 2 Duo (Merom)|Intel(R) Core(TM)2 CPU T5600 @ 1.83GHz]]&lt;br /&gt;
&lt;br /&gt;
15&amp;quot; 1400x1050px w/[[ATI Mobility Radeon X1400|ATI X1400]]&lt;br /&gt;
 &lt;br /&gt;
'''[[:Category:Slackware|Slackware]] 12.2''' (pretty much 'vanilla' - only added the [[fglrx]] package for the ATI and [[TuxonIce]] - and as you might have guessed: after reinstalling and recompiling the kernel about 20 times till I found out that for SATA you need some SCSI modules...)&lt;br /&gt;
&lt;br /&gt;
'''fvwm''' 2.5.26&lt;br /&gt;
&lt;br /&gt;
= Low's Sandbox =&lt;/div&gt;</summary>
		<author><name>Low</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Talk:Batteries&amp;diff=40784</id>
		<title>Talk:Batteries</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Talk:Batteries&amp;diff=40784"/>
		<updated>2009-01-19T19:42:50Z</updated>

		<summary type="html">&lt;p&gt;Low: request for clarification&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;what means &amp;quot;stupid&amp;quot; and &amp;quot;intelligent&amp;quot; for batteries? please clarify this - as i dont think they pass a touring test altogether. --[[User:Low|Low]] 19:42, 19 January 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Low</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=User:Low&amp;diff=40637</id>
		<title>User:Low</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=User:Low&amp;diff=40637"/>
		<updated>2009-01-16T17:30:06Z</updated>

		<summary type="html">&lt;p&gt;Low: /* Low's Sandbox */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== about Low ==&lt;br /&gt;
I'm a linux noob, really. Though I spent 5 years maintaining a huge website, I had little exposure to the system itself. At work I'm 50% on HP-UX, also as a user. I learn as I progress.&lt;br /&gt;
== about the System ==&lt;br /&gt;
'''[[:Category:R60|R60]]''' [[9461-DXG]]&lt;br /&gt;
&lt;br /&gt;
[[Intel Core 2 Duo (Merom)|Intel(R) Core(TM)2 CPU T5600 @ 1.83GHz]]&lt;br /&gt;
&lt;br /&gt;
15&amp;quot; 1400x1050px w/[[ATI Mobility Radeon X1400|ATI X1400]]&lt;br /&gt;
 &lt;br /&gt;
'''[[:Category:Slackware|Slackware]] 12.1''' (pretty much 'vanilla' - only added the [[fglrx]] package for the ATI - and as you might have guessed: after reinstalling and recompiling the kernel about 20 times till I found out that for SATA you need some SCSI modules...)&lt;br /&gt;
&lt;br /&gt;
'''fvwm''' 2.5.26&lt;br /&gt;
&lt;br /&gt;
= Low's Sandbox =&lt;/div&gt;</summary>
		<author><name>Low</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=User:Low&amp;diff=40636</id>
		<title>User:Low</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=User:Low&amp;diff=40636"/>
		<updated>2009-01-16T17:29:40Z</updated>

		<summary type="html">&lt;p&gt;Low: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== about Low ==&lt;br /&gt;
I'm a linux noob, really. Though I spent 5 years maintaining a huge website, I had little exposure to the system itself. At work I'm 50% on HP-UX, also as a user. I learn as I progress.&lt;br /&gt;
== about the System ==&lt;br /&gt;
'''[[:Category:R60|R60]]''' [[9461-DXG]]&lt;br /&gt;
&lt;br /&gt;
[[Intel Core 2 Duo (Merom)|Intel(R) Core(TM)2 CPU T5600 @ 1.83GHz]]&lt;br /&gt;
&lt;br /&gt;
15&amp;quot; 1400x1050px w/[[ATI Mobility Radeon X1400|ATI X1400]]&lt;br /&gt;
 &lt;br /&gt;
'''[[:Category:Slackware|Slackware]] 12.1''' (pretty much 'vanilla' - only added the [[fglrx]] package for the ATI - and as you might have guessed: after reinstalling and recompiling the kernel about 20 times till I found out that for SATA you need some SCSI modules...)&lt;br /&gt;
&lt;br /&gt;
'''fvwm''' 2.5.26&lt;br /&gt;
&lt;br /&gt;
= Low's Sandbox =&lt;br /&gt;
{{R60}}&lt;/div&gt;</summary>
		<author><name>Low</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=User:Low&amp;diff=40635</id>
		<title>User:Low</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=User:Low&amp;diff=40635"/>
		<updated>2009-01-16T17:28:59Z</updated>

		<summary type="html">&lt;p&gt;Low: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== about Low ==&lt;br /&gt;
I'm a linux noob, really. Though I spent 5 years maintaining a huge website, I had little exposure to the system itself. At work I'm 50% on HP-UX, also as a user. I learn as I progress.&lt;br /&gt;
== about the System ==&lt;br /&gt;
'''[[:Category:R60|R60]]''' [[9461-DXG]]&lt;br /&gt;
&lt;br /&gt;
[[Intel Core 2 Duo (Merom)|Intel(R) Core(TM)2 CPU T5600 @ 1.83GHz]]&lt;br /&gt;
&lt;br /&gt;
15&amp;quot; 1400x1050px w/[[ATI Mobility Radeon X1400|ATI X1400]]&lt;br /&gt;
 &lt;br /&gt;
'''[[:Category:Slackware|Slackware]] 12.1''' (pretty much 'vanilla' - only added the [[fglrx]] package for the ATI - and as you might have guessed: after reinstalling and recompiling the kernel about 20 times till I found out that for SATA you need some SCSI modules...)&lt;br /&gt;
&lt;br /&gt;
'''fvwm''' 2.5.26&lt;br /&gt;
&lt;br /&gt;
= Low's Sandbox =&lt;/div&gt;</summary>
		<author><name>Low</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Talk:Install_Ubuntu_8.10_(Intrepid_Ibex)_on_a_ThinkPad_T400&amp;diff=40599</id>
		<title>Talk:Install Ubuntu 8.10 (Intrepid Ibex) on a ThinkPad T400</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Talk:Install_Ubuntu_8.10_(Intrepid_Ibex)_on_a_ThinkPad_T400&amp;diff=40599"/>
		<updated>2009-01-13T16:08:13Z</updated>

		<summary type="html">&lt;p&gt;Low: /* Suspend/resume workaround */ what about unloading h&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Added instructions for adding installing ath5k drivers, added a section about screen resolution issues, and fixed minor errors.&lt;br /&gt;
&lt;br /&gt;
-[[kassanova708]]&lt;br /&gt;
&lt;br /&gt;
== Suspend/resume workaround ==&lt;br /&gt;
&lt;br /&gt;
I managed to get suspend/resume working by disabling Bluetooth.&lt;br /&gt;
&lt;br /&gt;
===== which way? =====&lt;br /&gt;
How did you disable bluetooth?&lt;br /&gt;
Did you try unloading the bluetooth kernel module in the sleep script and loading it again on resume? Or did you use a hardware switch or maybe soft disabling the device in /sys/ /proc/ or something?&lt;br /&gt;
--[[User:Low|Low]] 17:08, 13 January 2009 (CET)&lt;/div&gt;</summary>
		<author><name>Low</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Talk:ThinkPad_Dock_II&amp;diff=40593</id>
		<title>Talk:ThinkPad Dock II</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Talk:ThinkPad_Dock_II&amp;diff=40593"/>
		<updated>2009-01-13T07:20:36Z</updated>

		<summary type="html">&lt;p&gt;Low: /* Low Profile PCI? IBM says Half size. */ low profile may fit with mounting brackets&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Got it! Actually able to run six monitors without any conflicts. Life is good.&lt;br /&gt;
&lt;br /&gt;
Hope I doing this right. Look up the definition of novice in the dictionary and you will find my picture. That said, I have an R52 ThinkPad, a ThinkPad Dock II with an ATI FireMV 2400 PCI 128M video card in the dock PCI slot. Card supports 4 monitors. Was told by a guy at work just plug it all in, install the card drivers, set up the configuration of the monitors in display properties and your good to go. Not so. Display properties only shows 2 monitors. None of the four outputs of the card have a signal. I want to ultimately be able to use 5 monitors, the four supported by the the ATI card and the display on the R-52. Got any ideas where I can get help with this? Thanks for any help anyone can give me.&lt;br /&gt;
   Eddie  &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
I just installed a Nvidia Quadro NVS 50 PCI card in an attempt to add an additional monitor to my laptop (T41), and get 1920 x 1200 digital on my 24&amp;quot; widescreen.  The Nvidia is not a dual monitor card, but I thought I would be able to use it as well as the laptop's existing card (ATI Mobility Radeon 7500).  However the ATI card shows up in the hardware manager with the message &amp;quot;This device cannot start. (Code 10)&amp;quot;.  I then tried to enable the AGP as the primary video device in the BIOS (PCI was enabled).  The on-board adapter came up, and the device manager listed no conflict, but the Nvidia would not come up as I tried to extend my desktop in display props.  I got the message that I did not have admin rights to select the Nvidia, followed by messages that my drivers were not compatible with the newer version of Windows.  I have never tried to use two monitors before, so I am not sure if it is feasible to have two video cards running at the same time.  If this is possible, please let me know what I need to do, if it is not possible then I need to return the card and get one of your recommended ones.&lt;br /&gt;
&lt;br /&gt;
TIA!&lt;br /&gt;
Tony&lt;br /&gt;
----&lt;br /&gt;
Hi Tony, can't help you much, i'm afraid. I have had a Radeon 9200 PCI card in the dock for a while, using it under Win. I think setting the AGP bus as the primary one in the BIOS is the way you should go. I had troubles with my Windows not booting up at all anymore when i changed it to PCI and was sure that it was the ATI driver having problems.&lt;br /&gt;
&lt;br /&gt;
I would try to get the most recent drivers from the NVidia homepage. Best try uninstalling your drivers and reinstalling them. You might also check if your card is supported by the OMEGA drivers (http://www.omegadrivers.net).&lt;br /&gt;
&lt;br /&gt;
Good luck, Wyrfel.&lt;br /&gt;
&lt;br /&gt;
== Modify for compatibility? ==&lt;br /&gt;
&lt;br /&gt;
I have an X41 Tablet on the way and am very disappointed that the only &amp;quot;Dock&amp;quot; available is more like a glorified port replicator. While I'm sure the X41 Tablet wouldn't ''fit'' on the Dock II, do you think it would be possible to remove the docking port from the plastic and connect it to the X41, or is it a different style connector? I would really appreciate audio jacks and a PCI slot.&lt;br /&gt;
^&lt;br /&gt;
&lt;br /&gt;
== Who wrote this about the 1920 x 1200 on the dock II? ==&lt;br /&gt;
&lt;br /&gt;
This is a very important subject to me since we used to buy a lot of T series Thinkpads but dont any longer because of the lack of support for the widescreen external DVI flat panels. &lt;br /&gt;
&lt;br /&gt;
Who wrote this about the new driver from 8-11-05 - I have contacted IBM tech support (not Lenovo) and they have not heard such a thing and it is not listed - they have looked at the last video driver update to the T42p or T43p (I am looking for the 14&amp;quot; SXGA+ T42p model) with a dock II being able to drive externally 1920 x 1200 (UXGA+) WITHOUT an added PCI card. This would be NIRVANA for me.&lt;br /&gt;
&lt;br /&gt;
Do you have anymore information about this driver and have you SEEN it work at all?&lt;br /&gt;
&lt;br /&gt;
Thanks&lt;br /&gt;
Dean&lt;br /&gt;
&lt;br /&gt;
dean@sigma-usa.com&lt;br /&gt;
----&lt;br /&gt;
Hei Dean,&lt;br /&gt;
&lt;br /&gt;
i do not have a 1920x1200 display, but i have a 1600x1200 one which was unsupported before as well. The newest driver (upgraded via IBM Software Installer) indeed doesn't have the problem anymore which it had before with that resolution (1280x1024 was supported max). The newest Presentation Director supports the higher resolution as well.&lt;br /&gt;
&lt;br /&gt;
I actually switched back from OMEGA drivers to the newest IBM release and experienced some strange behaviour which was gone after a few reboots). I guess some parts of OMEGA were not properly uninstalled in one go.&lt;br /&gt;
&lt;br /&gt;
IBM might not know about this if they just upgraded the underlying Catalyst drivers.&lt;br /&gt;
&lt;br /&gt;
However, you might wanna get a confirmation from someone using 1920x1200 before you celebrate. ;-)&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 01:16, 4 Oct 2005 (CEST)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
BTW: I merged the information that was provided here on this issue into the [[Problem with DVI throughput]] page, since it was doubled in several places and belongs there. [[User:Wyrfel|Wyrfel]] 01:48, 4 Oct 2005 (CEST)&lt;br /&gt;
----&lt;br /&gt;
====newest drivers work with high resolution via DVI====&lt;br /&gt;
The above is a true statement. I have in Nov 2005 installed 3 Thinkpad T's (T42p and T43p) with 128 megs of ATI video RAM (Fire 3200) and with the Think Dock II using the pass through DVI port, i am driving Dell 20&amp;quot; WSXGA+ (1600 x 1050 widescreen) and Sony WUXGA (1900 x 1200) 23&amp;quot; widescreen flat panels. They work OUT OF THE BOX without having to install special drivers. This is a new feature of the Thinkpad line (at least for the T series).&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Low Profile PCI? IBM says Half size. ==&lt;br /&gt;
&lt;br /&gt;
I don't think that LowProfile PCI-Cards will fit in the Dock II cause of the shorter mounting bracket.&lt;br /&gt;
I just successfully plugged a standard PCI card with the dimension &lt;br /&gt;
17.5 cm (without brackets and vga connector) x 9,9 cm (without pci connector, 10,7 cm with pci connector)&lt;br /&gt;
This seems to be the maximum dimensions possible...think the 'half size' written by ibm means the length of the card, not the width, as there are full size pci cards e.g. for video editing that reach all the way to the front through a standard tower case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afaik 'half size' means the length of the card. For low profile there should be mounting brackets available making them fit - however as always: check before you invest money. &lt;br /&gt;
--[[User:Low|Low]] 08:20, 13 January 2009 (CET)&lt;br /&gt;
&lt;br /&gt;
== Z60 and T60 ==&lt;br /&gt;
&lt;br /&gt;
These machines are not supported by the ''legacy'' docks, you need to use the new Z60 range of port replicators and docking stations.&lt;br /&gt;
&lt;br /&gt;
--[[User:Tonko|Tonko]] 20:22, 11 Jan 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
== T60 And Dual Monitors ==&lt;br /&gt;
&lt;br /&gt;
Yes, you can drive dual monitors with the ThinkPad Advanced Mini-Dock. I am running it under Windows Vista and it is great! The thing you need to do is download the ATI drivers from Lenovo and use the Catalyst Control center to disable your laptop LCD and then enable your analog monitor. By default, the DVI is enabled if both monitors are plugged in.&lt;br /&gt;
&lt;br /&gt;
--[[User:Paul317|Paul317]] 22:30, 19 July 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
So I can drive dual monitors with a T60 and an &amp;quot;THINKPAD ADVANCED MINI-DOCK&amp;quot;?&lt;br /&gt;
&lt;br /&gt;
-- [[ryan.mchale@gmail.com | ryan]] 18:30, 18 April 2006 (CMT)&lt;br /&gt;
----&lt;br /&gt;
The docking solutions are listed [[Docking Solutions|here]], and indeed that includes the [[ThinkPad Advanced Mini Dock]] which supports the T60.&lt;br /&gt;
&lt;br /&gt;
I do not personally have this hardware, but you should be able to do any of the following:&lt;br /&gt;
&lt;br /&gt;
* ThinkPad LCD + Analog external monitor (VGA)&lt;br /&gt;
* ThinkPad LCD + External TV (Svideo)&lt;br /&gt;
* ThinkPad LCD + Digital external monitor (DVI)&lt;br /&gt;
* Analog external monitor (VGA) + Digital external monitor (DVI)&lt;br /&gt;
* Analog external monitor (VGA) + External TV (Svideo)&lt;br /&gt;
&lt;br /&gt;
DVI requires that you have a Dock or Port-Replicator for your ThinkPad with a DVI passthrough port on it. Also you cannot have both DVI and Svideo, since (at least historically, not sure with the new ThinkPads), the Svideo port on the ThinkPad has been blocked by the dock or port replicator and no passthrough function is provided.&lt;br /&gt;
&lt;br /&gt;
Also, I am not sure DVI is supported on the entry T60 model with GMA950 graphics.&lt;br /&gt;
&lt;br /&gt;
--[[User:Tonko|Tonko]] 22:59, 19 April 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Eject mechanism on Dock II ==&lt;br /&gt;
&lt;br /&gt;
I've just acquired a used Dock II, and the eject mechanism seems to be a bit different from other Thinkpad docks and port replicators I'm familiar with.  In particular, my question concerns the the square plugs on the dock base that help eject the laptop when the eject button is pressed. On the original dock for the A and T series, the original Port Replicator, and the newer Mini-Dock, the plugs are normally flush with the base, and are pushed up when the user presses the eject button.   On the Docking Station II that I have, the plugs are spring loaded, are extruded from the base when no laptop is present, and are not affected by pressing the the eject button.  That is, on the Docking Station II, the plugs are always applying pressure pushing the laptop up, and the laptop is held in place by the locking mechanism that is released when the eject button is pressed.  Is this normal for the Docking Station II, or is there some linkage in my unit that's broken?&lt;br /&gt;
&lt;br /&gt;
TIA, &lt;br /&gt;
Sanford&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This is perfectly normal and maybe was an attempt from IBM to reduce the complex mechanics of the eject mechanism of the older docks.&lt;br /&gt;
&lt;br /&gt;
--[[User:BDKMPSS|BDKMPSS]] 15:31, 11 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
== R30, R31, and R32 are not supported ==&lt;br /&gt;
&lt;br /&gt;
According to [http://www-307.ibm.com/pc/support/site.wss/MIGR-4NXNTP.html Docking station, port replicator, and expansion - ThinkPad General] R30, R31, and R32 are not supported by ThinkPad Dock II.&lt;br /&gt;
&lt;br /&gt;
== Replace/unplug the noisy fan of Dock II ==&lt;br /&gt;
&lt;br /&gt;
In the information page, it is said some user might replace or unplug the noisy fan, I attempt to open the Dock II so that I could reach the fan and do something about it, does some one here knows the steps to disassemble it? The noise of the fan is really LOUD!&lt;br /&gt;
&lt;br /&gt;
Thanks ahead.&lt;br /&gt;
&lt;br /&gt;
== Help pleas ==&lt;br /&gt;
&lt;br /&gt;
These have been moved from the main page...&lt;br /&gt;
&lt;br /&gt;
''Dock II Linux users: can anybody recommend kernel modules and parameters for using PCI video cards with the dock's PCI slot? I had it working once with the dock, pci_slot, pci_hotplug and acpiphp modules and the pci=assign-busses parameter but since an unknown change to my system occurred, combinations of the above are no longer sufficient.''&lt;br /&gt;
&lt;br /&gt;
''Dock II owners: anybody tried to shoehorn a larger card in? ''&lt;br /&gt;
&lt;br /&gt;
Sorry for cluttering up the article (with the upper question). I've asked on the forums and mailing list. So far the LKML has given me the most help but the patch they recommended didn't solve the problem when I recompiled the kernel. However I thought the article should have some mention of this problem as it is likely to be the first stop for people who wonder whether or not they can use the PCI slot for a video card in Linux. Every single time I have seen a video card stated to be compatible with this dock, the person saying this was either a Windows user or didn't specify which OS he or she used. So unless someone DOES have this working (I had it working for a few days before it broke) we should probably say that the exact steps for getting docked PCI video cards to work in Linux are unknown.&lt;br /&gt;
[[User:Connor Behan|Connor Behan]] 06:10, 13 January 2009 (CET)&lt;/div&gt;</summary>
		<author><name>Low</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Category_talk:W500&amp;diff=40582</id>
		<title>Category talk:W500</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Category_talk:W500&amp;diff=40582"/>
		<updated>2009-01-11T21:09:16Z</updated>

		<summary type="html">&lt;p&gt;Low: â†Created page with '==distro pages== what do you think about splitting this document and putting the installation instructions into their own pages? ~~~~'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==distro pages==&lt;br /&gt;
what do you think about splitting this document and putting the installation instructions into their own pages? [[User:Low|Low]] 22:09, 11 January 2009 (CET)&lt;/div&gt;</summary>
		<author><name>Low</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Category:Z_Series&amp;diff=40579</id>
		<title>Category:Z Series</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Category:Z_Series&amp;diff=40579"/>
		<updated>2009-01-11T20:06:19Z</updated>

		<summary type="html">&lt;p&gt;Low: /* ThinkPad Z series */ no longer 'new' series&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| &amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=ThinkPad Z series=&lt;br /&gt;
The Z Series widescreen notebooks offer the ultimate multimedia experience.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|| &amp;lt;thinkwiki&amp;gt;7&amp;lt;/thinkwiki&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{stub}}&lt;br /&gt;
[[Category:Models]]&lt;/div&gt;</summary>
		<author><name>Low</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Fedora_10_on_a_ThinkPad_T400&amp;diff=40576</id>
		<title>Installing Fedora 10 on a ThinkPad T400</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Fedora_10_on_a_ThinkPad_T400&amp;diff=40576"/>
		<updated>2009-01-11T19:52:16Z</updated>

		<summary type="html">&lt;p&gt;Low: Install Fedora 10 on a Thinkpad T400 moved to Installing Fedora 10 on a Thinkpad T400: Installing &amp;lt;distro&amp;gt; on a &amp;lt;model&amp;gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[:Category:T400|T400]] '''Site under construction. You are invited building an useful guidance!'''&lt;br /&gt;
&lt;br /&gt;
==BIOS Issues To Deal With Before Installation==&lt;br /&gt;
&lt;br /&gt;
If you have a t400 (or T500 for that matter) that has the Switchable Graphics there are some things you need to know about&lt;br /&gt;
&lt;br /&gt;
* The switchable graphics doesn't really &amp;quot;work&amp;quot; so much under Linux.  This is unfortunate, but there are plenty of discussion as to the why's and hows of this.  So as a Linux user you get a choice at boot as to which one you want.&lt;br /&gt;
*** Go into the BIOS on boot (F1) go into Config -&amp;gt; Display -&amp;gt; Graphics Device&lt;br /&gt;
** Either way you are going to want to '''DISABLE''' OS detection of switchable graphics.  Don't ask me why, but the BIOS has a tendency to switch the actual display adapter out from under you.&lt;br /&gt;
** You must now choose either the '''EXTERNAL''' display (I.E. the ATI/AMD graphics card) or the '''INTERNAL''' (I.E. the on board Intel graphics)&lt;br /&gt;
&lt;br /&gt;
This step really needs to be done '''before''' you try to do the install or setup Linux.  Now you can change this at any time, but keep in mind that you will likely need to make changes to your xorg.conf file to have it switch decently.  You can take a look at and try something like [http://lenovoblogs.com/insidethebox/?p=154 this blog post] but this is left to the user to try / experiment with.&lt;br /&gt;
&lt;br /&gt;
==What just works (tm)==&lt;br /&gt;
&lt;br /&gt;
* Wireless with iwlagn driver ([[Intel WiFi Link 5100/5300 WLAN controller]])&lt;br /&gt;
** 802.11bg both work fine along with WEP/WPA/WPA2, status LED lights up and does what you would expect.  NetworkManager seems to do the right thing, no issues there&lt;br /&gt;
* [[Ethernet Controllers#Intel Gigabit (10/100/1000)|Intel Gigabit Ethernet Controller]]&lt;br /&gt;
** No issues here, plug in a cable and it just works&lt;br /&gt;
* Intel driver for Integrated Graphics ([[Intel Integrated Intel GMA 4500MHD]])&lt;br /&gt;
** Just works, quite happy.  Detects the screen properly as 1440x900 and just goes with it.  Kudos to the Xorg team (now get working on the [[http://www.thinkwiki.org/wiki/Switchable_Graphics]])&lt;br /&gt;
* UltraNav (Touchpoint and Trackpad)&lt;br /&gt;
** Horizontal and Vertical scrolling just worked.&lt;br /&gt;
* Optical drive&lt;br /&gt;
* Sound card&lt;br /&gt;
** To use your internal microphone you have to change to &amp;quot;HDA Intel CONEXANT Analog (ALSA)&amp;quot; in audio-settings.&lt;br /&gt;
* 7-in-1 card reader from Ricoh (MMC, Memory Stick, Mem Stick Pro, SD, SDHC, XD, XD Type H Memory)&lt;br /&gt;
** I've only tested with SD &amp;amp; SDHC (as that's all I have at the moment) but they work fine.  The system very quickly recognizes that you've inserted a disk, and mounts it as you would expect.  Please note you need to push the card into it so that it's flush (you'll hear a click).  To eject push on it and it will eject.&lt;br /&gt;
* Thinklight control (This is BIOS only anyway so does not have the issue with the button problems mentioned below)&lt;br /&gt;
* Wireless toggle mechanical toggle switch (at the front) - works and is detected by the system.&lt;br /&gt;
* Built-in webcam with Skype, along with using the built-in microphone (used pulse audio for the output and the input is circumventing pulse right now)&lt;br /&gt;
* ACPI in general seems to work, battery status, fan status, temperatures, etc.&lt;br /&gt;
* Optical (ultrabay) hot swapping&lt;br /&gt;
** It just works, pull the drive out Linux will happily disable and remove it, put it back in and Linux detects and deals with adding it back in.  Go sata drives!&lt;br /&gt;
* Bluetooth&lt;br /&gt;
** I was able to pair with several devices including a keyboard and two phones.  Was unable to do much more than get the keyboard to work but bluetooth does work.&lt;br /&gt;
* Suspend / Resume (there is a caveat, look under what doesn't work)&lt;br /&gt;
&lt;br /&gt;
== What doesn't work at all ==&lt;br /&gt;
* ATI [[fglrx]] driver for Discrete Graphics ([[ATI Mobility Radeon 3470 graphics]])&lt;br /&gt;
** Seems to be a matter of the binary driver not having kept up.  Even trying with the driver released Dec. 10th, 2008 did not actually get a usable screen configuration.  Likely cause is due to Fedora 10's more up to date Xorg server.  Watch [http://rpmfusion.org/ RPM Fusion] and see when they pick up the driver&lt;br /&gt;
* Fingerprint reader&lt;br /&gt;
** Uses a new chipset out of AuthenTec&lt;br /&gt;
  T:  Bus=04 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=12  MxCh= 0&lt;br /&gt;
  D:  Ver= 2.00 Cls=ff(vend.) Sub=ff Prot=ff MxPS= 8 #Cfgs=  1&lt;br /&gt;
  P:  Vendor=08ff ProdID=2810 Rev=17.03&lt;br /&gt;
  S:  Product=Fingerprint Sensor&lt;br /&gt;
  C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=100mA&lt;br /&gt;
  I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)&lt;br /&gt;
  E:  Ad=81(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms&lt;br /&gt;
  E:  Ad=02(O) Atr=02(Bulk) MxPS=   8 Ivl=0ms&lt;br /&gt;
  ...&lt;br /&gt;
  Bus 004 Device 002: ID 08ff:2810 AuthenTec, Inc.&lt;br /&gt;
there does seem to be some hope though as the fprint project should be working on it [http://reactivated.net/fprint/wiki/Unsupported_devices fprint posting on AuthenTec AES2810]&lt;br /&gt;
&lt;br /&gt;
* Suspend Resume&lt;br /&gt;
** Specifically the problem seems to be that suspend works fine but resume doesn't work '''if''' you have compiz turned on resume fails for some reason.&lt;br /&gt;
&lt;br /&gt;
== Display / Mice / Xorg ==&lt;br /&gt;
&lt;br /&gt;
=== Synaptics Touchpad ===&lt;br /&gt;
&lt;br /&gt;
There is an excellent utility that's available via Yum called GSynaptics which uses the synaptics driver (documented here [[Synaptics_TouchPad_driver_for_X]]) But it's worth noting how to get it working with your Fedora 10 system&lt;br /&gt;
&lt;br /&gt;
Specifically when Fedora boots up it likely won't have written an xorg.conf file, choosing instead to let the whole thing autodetect.  This, though odd, works.  However to get the synaptics driver to have the options you want you need to actually get an xorg configuration file in place.  Simplest way is to go under&lt;br /&gt;
&lt;br /&gt;
  System -&amp;gt; Administration -&amp;gt; Display&lt;br /&gt;
&lt;br /&gt;
'''Note:''' if you do not have this option install the system-config-display package&lt;br /&gt;
&lt;br /&gt;
Once there basically make sure that your monitor is setup as to have the actual resolution of your display.  Once you've done that just hit 'ok' and it will write out an xorg.conf.  Once you've done that you can go and edit the xorg.conf file (/etc/X11/xorg.conf) and add the xorg.conf section from the [[Synaptics_TouchPad_driver_for_X]] page.&lt;br /&gt;
&lt;br /&gt;
Once you've done that add&lt;br /&gt;
&lt;br /&gt;
  InputDevice    &amp;quot;Synaptics Touchpad&amp;quot; &amp;quot;CorePointer&amp;quot;&lt;br /&gt;
&lt;br /&gt;
under the ServerLayout section.  Restart X and you should now be able to use GSynaptics.&lt;br /&gt;
&lt;br /&gt;
== Issues with Fedora 10 ==&lt;br /&gt;
&lt;br /&gt;
Ok so I'll admit, I did a fresh install and expected everything to just work (tm) - it didn't quite.  There are a few things that still need to be tweaked to make it all work but it's getting there&lt;br /&gt;
&lt;br /&gt;
=== Pulseaudio w/ GStreamer ===&lt;br /&gt;
&lt;br /&gt;
So fresh install and setup a new user account and log in.  '''*BOOM*''' first thing you are greated with is the gnome-volume-control crashing and hitting reload will just come back with 'no crashed again reload or remove from panel'.  Further if you try to start gnome-volume-control and get a dialogue window that says &amp;quot;No volume control GStreamer plugins and/or devices found.&amp;quot;  If you install the nautilus-sound-converter and you find that nautilus doesn't load at all, this is also a symptom. You are likely hitting the same problem for all of these issues.  The problem *seems* to be that the permissions on the gstreamer directory in your home dir is set in correctly.  Easiest way to fix this is to do:&lt;br /&gt;
&lt;br /&gt;
  chmod -R 777 ~/.gstreamer-0.10;rm -rf ~/.gstreamer-0.10&lt;br /&gt;
&lt;br /&gt;
After you do this things should work as you would expect again.&lt;br /&gt;
&lt;br /&gt;
=== Extra Thinkpad buttons only work for root ===&lt;br /&gt;
&lt;br /&gt;
I will admit I do not have a fix for this one yet, but it is one that is annoying me greatly.  Basically things like the volume control, display brightness, control over bluetooth being on/off, etc or anything that uses the &amp;lt;Fn&amp;gt; key or the volume controls only works for the root user.  Since it seems to work for the root user I'm guessing this is a permissions problem, but I have not tracked it down yet.&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' things like the 'ThinkLight' that are fully BIOS controlled are not affected by this and work as expected.  So far all I've seen that does this is the ThinkLight but I haven't done and exhaustive check.&lt;br /&gt;
&lt;br /&gt;
'''Addendum:''' So I got the brightness display working as the non-root user if your under Gnome go under:&lt;br /&gt;
&lt;br /&gt;
  System -&amp;gt; Preferences -&amp;gt; System -&amp;gt; Power Management&lt;br /&gt;
&lt;br /&gt;
Once that loads you'll see a small icon added in your notification bar that looks like a battery, the brightness display should now work.&lt;br /&gt;
&lt;br /&gt;
'''Addendum 2:''' So I got the audio buttons working as well for non-root users.  If your under Gnome go under:&lt;br /&gt;
&lt;br /&gt;
  System -&amp;gt; Preferences -&amp;gt; System -&amp;gt; PulseAudio Preferences&lt;br /&gt;
&lt;br /&gt;
One that loads you should have access to the buttons.  Volume Up/Down will display and actually change the volume.  The Mute button will actually mute the audio, however you won't see any indication of it sadly.&lt;br /&gt;
&lt;br /&gt;
Also of note it seems the media buttons (fn+ left,right,up,down) which are next, stop, play, previous, seem to work within some applications within gnome as well.  Basically anything that can handle the X/Gnome shortcut key can make use of these buttons.&lt;br /&gt;
&lt;br /&gt;
=== Extra Thinkpad buttons extras ===&lt;br /&gt;
&lt;br /&gt;
So many of the buttons can be made to work without too much issue, sadly however there are a few buttons that might be useful.  Here are a couple of quick scripts to help with that:&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth enable / disable ====&lt;br /&gt;
&lt;br /&gt;
edit '''/etc/acpi/events/thinkpad-bluetooth.conf''' and write:&lt;br /&gt;
    event=ibm/hotkey HKEY 00000080 00001005&lt;br /&gt;
    action=/usr/local/sbin/bttoggle&lt;br /&gt;
&lt;br /&gt;
'''Note:''' it seems the last bit in the HKEY (00001005) does seem to cleanly map to the FN key thus 00001005 is F5 and 00001008 maps to F8.&lt;br /&gt;
&lt;br /&gt;
Next create an executable script (chmod +x) in '''/usr/local/sbin/''' called '''bttoggle'''&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    INFO=/proc/acpi/ibm/bluetooth&lt;br /&gt;
    STATE=$( grep &amp;quot;status&amp;quot; &amp;quot;${INFO}&amp;quot; | awk '{ print $2;}' )&lt;br /&gt;
    case &amp;quot;${STATE}&amp;quot; in&lt;br /&gt;
            enabled)&lt;br /&gt;
                    echo -n &amp;quot;disable&amp;quot; &amp;gt; $INFO&lt;br /&gt;
                    ;;&lt;br /&gt;
            disabled)&lt;br /&gt;
                    echo &amp;quot;enable&amp;quot; -n &amp;gt; $INFO&lt;br /&gt;
                    ;;&lt;br /&gt;
            *)&lt;br /&gt;
                    echo &amp;quot;usage: disable, enable&amp;quot;&lt;br /&gt;
    esac&lt;br /&gt;
    &lt;br /&gt;
restart acpid: sudo service acpid restart&lt;br /&gt;
&lt;br /&gt;
==== Touchpad enable / disable ====&lt;br /&gt;
&lt;br /&gt;
This does assume you have the synaptics tools installed and setup properly, but...&lt;br /&gt;
&lt;br /&gt;
edit '''/etc/acpi/events/thinkpad-trackpad.conf''' and write:&lt;br /&gt;
    event=ibm/hotkey HKEY 00000080 00001008&lt;br /&gt;
    action=/usr/local/sbin/trackpad-toggle&lt;br /&gt;
&lt;br /&gt;
'''Note:''' it seems the last bit in the HKEY (00001005) does seem to cleanly map to the FN key thus 00001005 is F5 and 00001008 maps to F8.&lt;br /&gt;
&lt;br /&gt;
Next create an executable script (chmod +x) in '''/usr/local/sbin/''' called '''trackpad-toggle'''&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    STATE=$( /usr/bin/synclient -l | grep &amp;quot;TouchpadOff&amp;quot; | awk '{ print $3; }' )&lt;br /&gt;
    case &amp;quot;${STATE}&amp;quot; in&lt;br /&gt;
            0)&lt;br /&gt;
                    /usr/bin/synclient TouchpadOff=1&lt;br /&gt;
                    ;;&lt;br /&gt;
            1)&lt;br /&gt;
                    /usr/bin/synclient TouchpadOff=0&lt;br /&gt;
                    ;;&lt;br /&gt;
            *)&lt;br /&gt;
                    echo &amp;quot;usage: 0,1&amp;quot;&lt;br /&gt;
    esac&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
restart acpid: sudo service acpid restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:T400]][[Category:Ubuntu]][[Category:Fedora]]&lt;/div&gt;</summary>
		<author><name>Low</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Fedora_10_on_a_ThinkPad_T400&amp;diff=40568</id>
		<title>Installing Fedora 10 on a ThinkPad T400</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Fedora_10_on_a_ThinkPad_T400&amp;diff=40568"/>
		<updated>2009-01-10T13:23:49Z</updated>

		<summary type="html">&lt;p&gt;Low: fixed link to Category:Fedora&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[:Category:T400|T400]] '''Site under construction. You are invited building an useful guidance!'''&lt;br /&gt;
&lt;br /&gt;
==BIOS Issues To Deal With Before Installation==&lt;br /&gt;
&lt;br /&gt;
If you have a t400 (or T500 for that matter) that has the Switchable Graphics there are some things you need to know about&lt;br /&gt;
&lt;br /&gt;
* The switchable graphics doesn't really &amp;quot;work&amp;quot; so much under Linux.  This is unfortunate, but there are plenty of discussion as to the why's and hows of this.  So as a Linux user you get a choice at boot as to which one you want.&lt;br /&gt;
*** Go into the BIOS on boot (F1) go into Config -&amp;gt; Display -&amp;gt; Graphics Device&lt;br /&gt;
** Either way you are going to want to '''DISABLE''' OS detection of switchable graphics.  Don't ask me why, but the BIOS has a tendency to switch the actual display adapter out from under you.&lt;br /&gt;
** You must now choose either the '''EXTERNAL''' display (I.E. the ATI/AMD graphics card) or the '''INTERNAL''' (I.E. the on board Intel graphics)&lt;br /&gt;
&lt;br /&gt;
This step really needs to be done '''before''' you try to do the install or setup Linux.  Now you can change this at any time, but keep in mind that you will likely need to make changes to your xorg.conf file to have it switch decently.  You can take a look at and try something like [http://lenovoblogs.com/insidethebox/?p=154 this blog post] but this is left to the user to try / experiment with.&lt;br /&gt;
&lt;br /&gt;
==What just works (tm)==&lt;br /&gt;
&lt;br /&gt;
* Wireless with iwlagn driver ([[Intel WiFi Link 5100/5300 WLAN controller]])&lt;br /&gt;
** 802.11bg both work fine along with WEP/WPA/WPA2, status LED lights up and does what you would expect.  NetworkManager seems to do the right thing, no issues there&lt;br /&gt;
* [[Ethernet Controllers#Intel Gigabit (10/100/1000)|Intel Gigabit Ethernet Controller]]&lt;br /&gt;
** No issues here, plug in a cable and it just works&lt;br /&gt;
* Intel driver for Integrated Graphics ([[Intel Integrated Intel GMA 4500MHD]])&lt;br /&gt;
** Just works, quite happy.  Detects the screen properly as 1440x900 and just goes with it.  Kudos to the Xorg team (now get working on the [[http://www.thinkwiki.org/wiki/Switchable_Graphics]])&lt;br /&gt;
* UltraNav (Touchpoint and Trackpad)&lt;br /&gt;
** Horizontal and Vertical scrolling just worked.&lt;br /&gt;
* Optical drive&lt;br /&gt;
* Sound card&lt;br /&gt;
** To use your internal microphone you have to change to &amp;quot;HDA Intel CONEXANT Analog (ALSA)&amp;quot; in audio-settings.&lt;br /&gt;
* 7-in-1 card reader from Ricoh (MMC, Memory Stick, Mem Stick Pro, SD, SDHC, XD, XD Type H Memory)&lt;br /&gt;
** I've only tested with SD &amp;amp; SDHC (as that's all I have at the moment) but they work fine.  The system very quickly recognizes that you've inserted a disk, and mounts it as you would expect.  Please note you need to push the card into it so that it's flush (you'll hear a click).  To eject push on it and it will eject.&lt;br /&gt;
* Thinklight control (This is BIOS only anyway so does not have the issue with the button problems mentioned below)&lt;br /&gt;
* Wireless toggle mechanical toggle switch (at the front) - works and is detected by the system.&lt;br /&gt;
* Built-in webcam with Skype, along with using the built-in microphone (used pulse audio for the output and the input is circumventing pulse right now)&lt;br /&gt;
* ACPI in general seems to work, battery status, fan status, temperatures, etc.&lt;br /&gt;
* Optical (ultrabay) hot swapping&lt;br /&gt;
** It just works, pull the drive out Linux will happily disable and remove it, put it back in and Linux detects and deals with adding it back in.  Go sata drives!&lt;br /&gt;
* Bluetooth&lt;br /&gt;
** I was able to pair with several devices including a keyboard and two phones.  Was unable to do much more than get the keyboard to work but bluetooth does work.&lt;br /&gt;
* Suspend / Resume (there is a caveat, look under what doesn't work)&lt;br /&gt;
&lt;br /&gt;
== What doesn't work at all ==&lt;br /&gt;
* ATI [[fglrx]] driver for Discrete Graphics ([[ATI Mobility Radeon 3470 graphics]])&lt;br /&gt;
** Seems to be a matter of the binary driver not having kept up.  Even trying with the driver released Dec. 10th, 2008 did not actually get a usable screen configuration.  Likely cause is due to Fedora 10's more up to date Xorg server.  Watch [http://rpmfusion.org/ RPM Fusion] and see when they pick up the driver&lt;br /&gt;
* Fingerprint reader&lt;br /&gt;
** Uses a new chipset out of AuthenTec&lt;br /&gt;
  T:  Bus=04 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=12  MxCh= 0&lt;br /&gt;
  D:  Ver= 2.00 Cls=ff(vend.) Sub=ff Prot=ff MxPS= 8 #Cfgs=  1&lt;br /&gt;
  P:  Vendor=08ff ProdID=2810 Rev=17.03&lt;br /&gt;
  S:  Product=Fingerprint Sensor&lt;br /&gt;
  C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=100mA&lt;br /&gt;
  I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)&lt;br /&gt;
  E:  Ad=81(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms&lt;br /&gt;
  E:  Ad=02(O) Atr=02(Bulk) MxPS=   8 Ivl=0ms&lt;br /&gt;
  ...&lt;br /&gt;
  Bus 004 Device 002: ID 08ff:2810 AuthenTec, Inc.&lt;br /&gt;
there does seem to be some hope though as the fprint project should be working on it [http://reactivated.net/fprint/wiki/Unsupported_devices fprint posting on AuthenTec AES2810]&lt;br /&gt;
&lt;br /&gt;
* Suspend Resume&lt;br /&gt;
** Specifically the problem seems to be that suspend works fine but resume doesn't work '''if''' you have compiz turned on resume fails for some reason.&lt;br /&gt;
&lt;br /&gt;
== Display / Mice / Xorg ==&lt;br /&gt;
&lt;br /&gt;
=== Synaptics Touchpad ===&lt;br /&gt;
&lt;br /&gt;
There is an excellent utility that's available via Yum called GSynaptics which uses the synaptics driver (documented here [[Synaptics_TouchPad_driver_for_X]]) But it's worth noting how to get it working with your Fedora 10 system&lt;br /&gt;
&lt;br /&gt;
Specifically when Fedora boots up it likely won't have written an xorg.conf file, choosing instead to let the whole thing autodetect.  This, though odd, works.  However to get the synaptics driver to have the options you want you need to actually get an xorg configuration file in place.  Simplest way is to go under&lt;br /&gt;
&lt;br /&gt;
  System -&amp;gt; Administration -&amp;gt; Display&lt;br /&gt;
&lt;br /&gt;
'''Note:''' if you do not have this option install the system-config-display package&lt;br /&gt;
&lt;br /&gt;
Once there basically make sure that your monitor is setup as to have the actual resolution of your display.  Once you've done that just hit 'ok' and it will write out an xorg.conf.  Once you've done that you can go and edit the xorg.conf file (/etc/X11/xorg.conf) and add the xorg.conf section from the [[Synaptics_TouchPad_driver_for_X]] page.&lt;br /&gt;
&lt;br /&gt;
Once you've done that add&lt;br /&gt;
&lt;br /&gt;
  InputDevice    &amp;quot;Synaptics Touchpad&amp;quot; &amp;quot;CorePointer&amp;quot;&lt;br /&gt;
&lt;br /&gt;
under the ServerLayout section.  Restart X and you should now be able to use GSynaptics.&lt;br /&gt;
&lt;br /&gt;
== Issues with Fedora 10 ==&lt;br /&gt;
&lt;br /&gt;
Ok so I'll admit, I did a fresh install and expected everything to just work (tm) - it didn't quite.  There are a few things that still need to be tweaked to make it all work but it's getting there&lt;br /&gt;
&lt;br /&gt;
=== Pulseaudio w/ GStreamer ===&lt;br /&gt;
&lt;br /&gt;
So fresh install and setup a new user account and log in.  '''*BOOM*''' first thing you are greated with is the gnome-volume-control crashing and hitting reload will just come back with 'no crashed again reload or remove from panel'.  Further if you try to start gnome-volume-control and get a dialogue window that says &amp;quot;No volume control GStreamer plugins and/or devices found.&amp;quot;  If you install the nautilus-sound-converter and you find that nautilus doesn't load at all, this is also a symptom. You are likely hitting the same problem for all of these issues.  The problem *seems* to be that the permissions on the gstreamer directory in your home dir is set in correctly.  Easiest way to fix this is to do:&lt;br /&gt;
&lt;br /&gt;
  chmod -R 777 ~/.gstreamer-0.10;rm -rf ~/.gstreamer-0.10&lt;br /&gt;
&lt;br /&gt;
After you do this things should work as you would expect again.&lt;br /&gt;
&lt;br /&gt;
=== Extra Thinkpad buttons only work for root ===&lt;br /&gt;
&lt;br /&gt;
I will admit I do not have a fix for this one yet, but it is one that is annoying me greatly.  Basically things like the volume control, display brightness, control over bluetooth being on/off, etc or anything that uses the &amp;lt;Fn&amp;gt; key or the volume controls only works for the root user.  Since it seems to work for the root user I'm guessing this is a permissions problem, but I have not tracked it down yet.&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' things like the 'ThinkLight' that are fully BIOS controlled are not affected by this and work as expected.  So far all I've seen that does this is the ThinkLight but I haven't done and exhaustive check.&lt;br /&gt;
&lt;br /&gt;
'''Addendum:''' So I got the brightness display working as the non-root user if your under Gnome go under:&lt;br /&gt;
&lt;br /&gt;
  System -&amp;gt; Preferences -&amp;gt; System -&amp;gt; Power Management&lt;br /&gt;
&lt;br /&gt;
Once that loads you'll see a small icon added in your notification bar that looks like a battery, the brightness display should now work.&lt;br /&gt;
&lt;br /&gt;
'''Addendum 2:''' So I got the audio buttons working as well for non-root users.  If your under Gnome go under:&lt;br /&gt;
&lt;br /&gt;
  System -&amp;gt; Preferences -&amp;gt; System -&amp;gt; PulseAudio Preferences&lt;br /&gt;
&lt;br /&gt;
One that loads you should have access to the buttons.  Volume Up/Down will display and actually change the volume.  The Mute button will actually mute the audio, however you won't see any indication of it sadly.&lt;br /&gt;
&lt;br /&gt;
Also of note it seems the media buttons (fn+ left,right,up,down) which are next, stop, play, previous, seem to work within some applications within gnome as well.  Basically anything that can handle the X/Gnome shortcut key can make use of these buttons.&lt;br /&gt;
&lt;br /&gt;
=== Extra Thinkpad buttons extras ===&lt;br /&gt;
&lt;br /&gt;
So many of the buttons can be made to work without too much issue, sadly however there are a few buttons that might be useful.  Here are a couple of quick scripts to help with that:&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth enable / disable ====&lt;br /&gt;
&lt;br /&gt;
edit '''/etc/acpi/events/thinkpad-bluetooth.conf''' and write:&lt;br /&gt;
    event=ibm/hotkey HKEY 00000080 00001005&lt;br /&gt;
    action=/usr/local/sbin/bttoggle&lt;br /&gt;
&lt;br /&gt;
'''Note:''' it seems the last bit in the HKEY (00001005) does seem to cleanly map to the FN key thus 00001005 is F5 and 00001008 maps to F8.&lt;br /&gt;
&lt;br /&gt;
Next create an executable script (chmod +x) in '''/usr/local/sbin/''' called '''bttoggle'''&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    INFO=/proc/acpi/ibm/bluetooth&lt;br /&gt;
    STATE=$( grep &amp;quot;status&amp;quot; &amp;quot;${INFO}&amp;quot; | awk '{ print $2;}' )&lt;br /&gt;
    case &amp;quot;${STATE}&amp;quot; in&lt;br /&gt;
            enabled)&lt;br /&gt;
                    echo -n &amp;quot;disable&amp;quot; &amp;gt; $INFO&lt;br /&gt;
                    ;;&lt;br /&gt;
            disabled)&lt;br /&gt;
                    echo &amp;quot;enable&amp;quot; -n &amp;gt; $INFO&lt;br /&gt;
                    ;;&lt;br /&gt;
            *)&lt;br /&gt;
                    echo &amp;quot;usage: disable, enable&amp;quot;&lt;br /&gt;
    esac&lt;br /&gt;
    &lt;br /&gt;
restart acpid: sudo service acpid restart&lt;br /&gt;
&lt;br /&gt;
==== Touchpad enable / disable ====&lt;br /&gt;
&lt;br /&gt;
This does assume you have the synaptics tools installed and setup properly, but...&lt;br /&gt;
&lt;br /&gt;
edit '''/etc/acpi/events/thinkpad-trackpad.conf''' and write:&lt;br /&gt;
    event=ibm/hotkey HKEY 00000080 00001008&lt;br /&gt;
    action=/usr/local/sbin/trackpad-toggle&lt;br /&gt;
&lt;br /&gt;
'''Note:''' it seems the last bit in the HKEY (00001005) does seem to cleanly map to the FN key thus 00001005 is F5 and 00001008 maps to F8.&lt;br /&gt;
&lt;br /&gt;
Next create an executable script (chmod +x) in '''/usr/local/sbin/''' called '''trackpad-toggle'''&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    STATE=$( /usr/bin/synclient -l | grep &amp;quot;TouchpadOff&amp;quot; | awk '{ print $3; }' )&lt;br /&gt;
    case &amp;quot;${STATE}&amp;quot; in&lt;br /&gt;
            0)&lt;br /&gt;
                    /usr/bin/synclient TouchpadOff=1&lt;br /&gt;
                    ;;&lt;br /&gt;
            1)&lt;br /&gt;
                    /usr/bin/synclient TouchpadOff=0&lt;br /&gt;
                    ;;&lt;br /&gt;
            *)&lt;br /&gt;
                    echo &amp;quot;usage: 0,1&amp;quot;&lt;br /&gt;
    esac&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
restart acpid: sudo service acpid restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:T400]][[Category:Ubuntu]][[Category:Fedora]]&lt;/div&gt;</summary>
		<author><name>Low</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Madwifi&amp;diff=40567</id>
		<title>Madwifi</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Madwifi&amp;diff=40567"/>
		<updated>2009-01-10T13:21:59Z</updated>

		<summary type="html">&lt;p&gt;Low: fixed link to Category:SUSE&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Madwifi''' (Multiband Atheros Driver for Wifi) is Linux driver for 802.11a/b/g universal NIC cards - Cardbus, PCI, or miniPCI - using Atheros chip sets.&lt;br /&gt;
&lt;br /&gt;
The following (incomplete) list of adapters sold by IBM use the Atheros chips:&lt;br /&gt;
* [[IBM Dual-Band 11a/b Wi-Fi Wireless Mini PCI Adapter]]&lt;br /&gt;
* [[IBM 11b/g Wireless LAN Mini PCI Adapter]]&lt;br /&gt;
* [[IBM 11a/b/g Wireless LAN Mini PCI Adapter]]&lt;br /&gt;
* [[IBM 11a/b/g Wireless LAN Mini PCI Adapter II]]&lt;br /&gt;
* [[ThinkPad 11a/b/g Wireless LAN Mini Express Adapter]]&lt;br /&gt;
* IBM 802.11a Wireless LAN Cardbus Adapter&lt;br /&gt;
* IBM 11 a/b/g Wireless Cardbus Adapter&lt;br /&gt;
&lt;br /&gt;
* (11a/b/g/n) Atheros Communications, Inc. Unknown device 0024 (rev 01) (using SVN revision 2360+)&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
*Official {{Debian}} packages in the [http://packages.debian.org/src:madwifi non-free section]. See also the [http://alioth.debian.org/projects/pkg-madwifi/ Alioth project page] and the [http://madwifi.org/wiki/UserDocs/Distro/Debian Madwifi wiki].&lt;br /&gt;
*{{Debian}} Packages: http://www.marlow.dk/madwifi&lt;br /&gt;
*{{Debian}} Packages: http://www.users.tpg.com.au/sigm/debian/pkg-madwifi/&lt;br /&gt;
*{{Fedora}} Packages(1): http://rpm.livna.org&lt;br /&gt;
*{{Fedora}} Packages(2): http://www.atrpms.net/name/madwifi/&lt;br /&gt;
*{{Gentoo}} ebuild: {{cmduser|emerge net-wireless/madwifi-driver net-wireless/madwifi-tools}}&lt;br /&gt;
*{{SUSE}} Packages http://www.madwifi.org/suse/&lt;br /&gt;
*{{Ubuntu}} Package: {{cmduser|sudo apt-get install linux-restricted-modules-`uname -r`}}&lt;br /&gt;
*[http://madwifi.org/wiki/UserDocs/GettingMadwifi MadWifi packages and source] for these and other distributions&lt;br /&gt;
&lt;br /&gt;
== Source ==&lt;br /&gt;
Detailed instructions can be found [http://madwifi.org/wiki/UserDocs/GettingMadwifi on the MadWiFi Wiki].&lt;br /&gt;
&lt;br /&gt;
* [http://snapshots.madwifi.org/ Daily Snapshots]&lt;br /&gt;
* madwifi-ng:&lt;br /&gt;
:{{cmduser|svn checkout http://svn.madwifi.org/trunk madwifi-ng}}&lt;br /&gt;
* madwifi-old:&lt;br /&gt;
:{{cmduser|svn checkout http://svn.madwifi.org/branches/madwifi-old madwifi-old}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
*Make sure that you've got sysctl support and the net/radio enabled (wireless extensions) in your kernel. Install the driver with make &amp;amp; make install&lt;br /&gt;
* further more you like to install the wireless tools from [http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html wireless  tools]. Make sure the versions fit together by&lt;br /&gt;
:{{cmduser|iwconfig --version}}&lt;br /&gt;
&lt;br /&gt;
Setting up [[wpa_supplicant]] with wpa-psk.&lt;br /&gt;
&lt;br /&gt;
You can enable the wireless LAN status LED on your Thinkpad by following [http://madwifi.org/wiki/UserDocs/EnableLEDs these instructions] (tested on Thinkpad x60s).&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
Release 0.9.3[http://madwifi.org/wiki/Releases/0.9.3] available&lt;br /&gt;
&lt;br /&gt;
Release notes&lt;br /&gt;
    * switch to newer HAL, v0.9.18.0&lt;br /&gt;
    * ensure compilation against recent kernel versions up to 2.6.20&lt;br /&gt;
    * ensure compatibility back to kernel 2.4.22, drop support for 2.4.21 and older&lt;br /&gt;
    * allow compilation without support of features such as fast frames, turbo mode, etc.&lt;br /&gt;
    * support for some PCI Express cards fixed&lt;br /&gt;
    * some security-related issues have been patched&lt;br /&gt;
    * interoperation with wpa_supplicant and hostapd improved&lt;br /&gt;
    * real channel noise instead of fixed -95dBm noise floor presented&lt;br /&gt;
    * lots of bugs fixed, for different architectures and various modes of operation&lt;br /&gt;
    * further improvements for build system&lt;br /&gt;
&lt;br /&gt;
== Free Software HAL ==&lt;br /&gt;
The &amp;quot;official&amp;quot; madwifi driver consists of a BSD/GPL wrapper with an unmodifiable HAL (Hardware Abstraction Layer). This HAL is not binary firmware as with the Intel wireless chips, but a piece of code that needs to run in the Linux kernel.  It consists of header files for which no permisison to modify is granted, and pre-compiled object files.&lt;br /&gt;
The vendor's position is that the Linux community simply needs to accept this sourceless HAL, since in principle &lt;br /&gt;
the Atheros chip could be tuned to any frequency, and thus produce RF interference with systems operating in those frequencies.&lt;br /&gt;
&lt;br /&gt;
This binary HAL is unacceptable to the Linux kernel developers, and the Atheros driver in this state will never become part of the official kernel. Some OpenBSD developers, facing the same issue, reverse-engineered the binary HAL and have produced an open source driver ([[ath5k]]), which has now been picked up by the madwifi team as the future direction. At the same time the madwifi driver has been labeled 'legacy' to reinforce this point.&lt;br /&gt;
&lt;br /&gt;
== Problems with system-config-network and Fedora Core 5 ==&lt;br /&gt;
If you use the livna repository to install madwifi for Fedora Core 5, it doesn't correctly update the modprobe configuration files.  A [https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=187640 bug] has been filed.  The quick fix is to move the lines that were in&lt;br /&gt;
/etc/modprobe.d/madwifi into /etc/modprobe.conf and system-config-network now can configure the card.&lt;br /&gt;
&lt;br /&gt;
== Much easier on Fedora Core 6 ==&lt;br /&gt;
&lt;br /&gt;
I'm using FC6 w/KDE on an X22 and wireless was very easy using madwifi from Livna and a Linksys WPC55AG PC card.&lt;br /&gt;
I had already installed knetworkmanager, klaptop and configured working radeonfb and &lt;br /&gt;
working S3 suspend.&lt;br /&gt;
I then simply used yum to install madwifi, including a kernel upgrade, enabled the knetworkmanager services and rebooted.&lt;br /&gt;
After restarting, knetworkmanager found the Atheros card and my AP. I just had to choose the connection and was online in seconds.&lt;br /&gt;
&lt;br /&gt;
== Problems on Fedora Core 9 ==&lt;br /&gt;
When installing madwifi 0.9.4 on my new machine (from source), ath_pci would load fine, apparently, but I could only see the wlan0 interface via iwconfig, and no attempt to create an ath0 interface or start it (via ifconfig) would work.  I finally found the problem ([http://forums.fedoraforum.org/forum/showthread.php?p=990516 described in this email trail]) which indicates the new ath5k module is the problem.  &lt;br /&gt;
&lt;br /&gt;
As directed, I fixed it by editing '''/etc/modprobe.d''' and creating a file called '''madwifi''' with the following in it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
alias wlan0 ath_pci&lt;br /&gt;
blacklist ath5k&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Although this enables ath0, I have yet to get the wirelss to actually connect to anything.&lt;br /&gt;
&lt;br /&gt;
==Using Madwifi with SUSE Linux 10.1==&lt;br /&gt;
As of [[:Category:SUSE|SUSE Linux]] 10.1, the Madwifi packages are no longer included in the SUSE distribution because of the presence of closed source code. However, I was able to download, install, and configure Madwifi for my [[:Category:T40|IBM T40]] with the &lt;br /&gt;
[[IBM 11a/b/g Wireless LAN Mini PCI Adapter|IBM 11a/b/g Wireless Adapter (Atheros AR5212 802.11abg)]] as follows:&lt;br /&gt;
* Start yast2 and select Software--Installation Source. Add http://madwifi.org/suse/ as a source&lt;br /&gt;
* Install packages &amp;lt;tt&amp;gt;madwifi&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;madwifi-kmp-default&amp;lt;/tt&amp;gt; (the latter has the kernel module, replace &amp;lt;tt&amp;gt;default&amp;lt;/tt&amp;gt; with &amp;lt;tt&amp;gt;smp&amp;lt;/tt&amp;gt; or other non-default kernel package if you're not running the default Suse kernel package as determined by &amp;lt;tt&amp;gt;uname -r&amp;lt;/tt&amp;gt;)&lt;br /&gt;
* Reboot so the kernel modules can be loaded.&lt;br /&gt;
* Load the kernel modules by hand and see if the kernel recognizes your hardware:&lt;br /&gt;
&amp;lt;tt&amp;gt;modprobe aes; modprobe wlan_ccmp; modprobe ath_pci; lsmod |egrep 'Module|aes|wlan|ath'&amp;lt;/tt&amp;gt;&lt;br /&gt;
* If recognized, put the modprobe lines above in your &amp;lt;tt&amp;gt;/etc/init.d/boot.local&amp;lt;/tt&amp;gt; file.  Otherwise, check for Linux kernel/Madwifi incompatibilities and hardware issues.&lt;br /&gt;
* Start yast2 and go to Network Devices--&amp;gt;Network Card and add and configure your wireless card.  I recommmend checking the &amp;quot;Network Manager&amp;quot; box, as that allows dynamic GUI control over the wireless and Ethernet NICs.&lt;br /&gt;
* I have WPA-PSK enabled, so here's the fields I filled out: &amp;quot;User Controlled&amp;quot; device activation, DHCP Automatic Address Setup, &amp;quot;Managed&amp;quot; operating mode, &amp;quot;any&amp;quot; ESSID, &amp;quot;WPA-PSK&amp;quot; auth mode, key input type &amp;quot;passphrase&amp;quot; and I typed in my passphrase.  I left expert settings alone.&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [http://www.madwifi.org Official website]&lt;br /&gt;
* [http://madwifi.org/wiki/Compatibility Official hardware compatibility list]&lt;br /&gt;
* [http://www.madwifi.org/wiki MadWiFi Wiki]&lt;br /&gt;
* [http://team.vantronix.net/ar5k/ OpenSource Atheros HAL]&lt;br /&gt;
* [http://www.ath-driver.org/ OpenSource Atheros driver for Linux]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Drivers]]&lt;/div&gt;</summary>
		<author><name>Low</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Fedora_Core_5_on_a_ThinkPad_X40&amp;diff=40566</id>
		<title>Installing Fedora Core 5 on a ThinkPad X40</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Fedora_Core_5_on_a_ThinkPad_X40&amp;diff=40566"/>
		<updated>2009-01-10T13:19:41Z</updated>

		<summary type="html">&lt;p&gt;Low: /* External Sources */ fixed category Fedora Core to Fedora&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==External Sources==&lt;br /&gt;
*[http://www.catb.org/esr/faqs/Fedora-Core-on-Thinkpad-X40/ Fedora Core on Thinkpad X40 Customization HOWTO]&lt;br /&gt;
&lt;br /&gt;
[[Category:X40]] [[Category:Fedora]]&lt;/div&gt;</summary>
		<author><name>Low</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Template:X61t&amp;diff=40565</id>
		<title>Template:X61t</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Template:X61t&amp;diff=40565"/>
		<updated>2009-01-10T13:18:18Z</updated>

		<summary type="html">&lt;p&gt;Low: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[:Category:X61 Tablet|X61 Tablet]][[Category:X61 Tablet]]&lt;/div&gt;</summary>
		<author><name>Low</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_7.10_(Gutsy_Gibbon)_on_a_ThinkPad_X61&amp;diff=40564</id>
		<title>Installing Ubuntu 7.10 (Gutsy Gibbon) on a ThinkPad X61</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_7.10_(Gutsy_Gibbon)_on_a_ThinkPad_X61&amp;diff=40564"/>
		<updated>2009-01-10T13:13:10Z</updated>

		<summary type="html">&lt;p&gt;Low: fixed category Ubuntu&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Preface ==&lt;br /&gt;
&lt;br /&gt;
This pages applies to {{Ubuntu 7.10}} Tribe 3 and should be updated as soon as a newer release is available. &lt;br /&gt;
&lt;br /&gt;
If you do not own a Ultra-Bay docking station you should keep a small Windows partition to (eventually) run BIOS updates. External USB-CDROMs do '''not''' wok. I don't know of any way to update the BIOS without having Windows installed.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Some tutorials state you have to activate the SATA compatibility mode in the BIOS (Hit F1 when booting, choose Config -&amp;gt; Serial ATA -&amp;gt; Mode), but I did not touch that setting before installation and everything worked fine. &lt;br /&gt;
&lt;br /&gt;
I used the Desktop-Live D for installation which even activated Desktop effects by default.&lt;br /&gt;
&lt;br /&gt;
== Wireless ==&lt;br /&gt;
&lt;br /&gt;
The Intel a/b/g/n (IPW4965) card requires the iwlwifi drivers from Intel ([http://www.intellinuxwireless.org/]). I tried different versions, but they all crashed my machine when actually joining a network.&lt;br /&gt;
&lt;br /&gt;
Note: scanning (iwlist wlan0 scan) works fine &lt;br /&gt;
&lt;br /&gt;
== Sound ==&lt;br /&gt;
&lt;br /&gt;
== Brightness ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:X61]][[Category:X61s]]&lt;/div&gt;</summary>
		<author><name>Low</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_7.10_(Gutsy_Gibbon)_on_a_ThinkPad_X61&amp;diff=40563</id>
		<title>Installing Ubuntu 7.10 (Gutsy Gibbon) on a ThinkPad X61</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_7.10_(Gutsy_Gibbon)_on_a_ThinkPad_X61&amp;diff=40563"/>
		<updated>2009-01-10T13:11:15Z</updated>

		<summary type="html">&lt;p&gt;Low: added categories, fixed wanted &amp;quot;Category:X61,X61s&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Preface ==&lt;br /&gt;
&lt;br /&gt;
This pages applies to {{Ubuntu}} 7.10 Tribe 3 and should be updated as soon as a newer release is available. &lt;br /&gt;
&lt;br /&gt;
If you do not own a Ultra-Bay docking station you should keep a small Windows partition to (eventually) run BIOS updates. External USB-CDROMs do '''not''' wok. I don't know of any way to update the BIOS without having Windows installed.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Some tutorials state you have to activate the SATA compatibility mode in the BIOS (Hit F1 when booting, choose Config -&amp;gt; Serial ATA -&amp;gt; Mode), but I did not touch that setting before installation and everything worked fine. &lt;br /&gt;
&lt;br /&gt;
I used the Desktop-Live D for installation which even activated Desktop effects by default.&lt;br /&gt;
&lt;br /&gt;
== Wireless ==&lt;br /&gt;
&lt;br /&gt;
The Intel a/b/g/n (IPW4965) card requires the iwlwifi drivers from Intel ([http://www.intellinuxwireless.org/]). I tried different versions, but they all crashed my machine when actually joining a network.&lt;br /&gt;
&lt;br /&gt;
Note: scanning (iwlist wlan0 scan) works fine &lt;br /&gt;
&lt;br /&gt;
== Sound ==&lt;br /&gt;
&lt;br /&gt;
== Brightness ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:X61]][[Category:X61s]]&lt;/div&gt;</summary>
		<author><name>Low</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=User:Low&amp;diff=40562</id>
		<title>User:Low</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=User:Low&amp;diff=40562"/>
		<updated>2009-01-10T12:59:47Z</updated>

		<summary type="html">&lt;p&gt;Low: /* about the System */ added links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== about Low ==&lt;br /&gt;
I'm a linux noob, really. Though I spent 5 years maintaining a huge website, I had little exposure to the system itself. At work I'm 50% on HP-UX, also as a user. I learn as I progress.&lt;br /&gt;
== about the System ==&lt;br /&gt;
'''[[:Category:R60|R60]]''' [[9461-DXG]]&lt;br /&gt;
&lt;br /&gt;
[[Intel Core 2 Duo (Merom)|Intel(R) Core(TM)2 CPU T5600 @ 1.83GHz]]&lt;br /&gt;
&lt;br /&gt;
15&amp;quot; 1400x1050px w/[[ATI Mobility Radeon X1400|ATI X1400]]&lt;br /&gt;
 &lt;br /&gt;
'''[[:Category:Slackware|Slackware]] 12.1''' (pretty much 'vanilla' - only added the [[fglrx]] package for the ATI - and as you might have guessed: after reinstalling and recompiling the kernel about 20 times till I found out that for SATA you need some SCSI modules...)&lt;br /&gt;
&lt;br /&gt;
'''fvwm''' 2.5.26&lt;/div&gt;</summary>
		<author><name>Low</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_get_special_keys_to_work&amp;diff=40561</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=40561"/>
		<updated>2009-01-10T12:59:22Z</updated>

		<summary type="html">&lt;p&gt;Low: /* NumPad (KeyPad) keys access by a key combination */  added some links (templates)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
The following table gives an overview over the special keys found on ThinkPads and what is needed to make them work.&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
! key !! standard function{{footnote|1}} !! tools supporting key{{footnote|2}} !! configurability{{footnote|3}} !! remarks&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}} || - || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full || on release without completed key combination&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F1}} || - || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F2}} || lock screen || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full || in models from T/X/Z 60 onwards&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F3}} || blank screen || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F4}} || suspend to ram || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full || may generate ACPI event when not enabled in the ibm-acpi hotkey mask&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F5}} || switch bluetooth || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full || in models starting from 2002&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F6}} || - || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F7}} || toggle display || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]], [[#tpb configuration|tpb]] || additional actions || [[Sample Fn-F7 script]]&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F8}} || toggle trackpoint/touchpad || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]], [[#tpb configuration|tpb]] || additional actions ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F9}} || eject from dock || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F10}} || - || [[#ibm-acpi events|ibm-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F11}} || - || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F12}} || hibernate || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full || may generate ACPI event when not enabled in the ibm-acpi hotkey mask&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Home}} / {{key|Fn}}{{key|Pos1}} || brightness up || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]], [[#tpb configuration|tpb]], [[KMilo]] || additional actions ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|End}} || brightness down || [[thinkpad-acpi]], [[#tpb configuration|tpb]], [[KMilo]] || additional actions ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|PageUp}} || toggle thinklight || [[thinkpad-acpi]], [[#tpb configuration|tpb]], [[KMilo]] || additional actions ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Space}} || toggle zoom || [[thinkpad-acpi]], [[#tpb configuration|tpb]], [[KMilo]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Ins}} || - || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]]|| full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Del}} || - || [[#ibm-acpi events|ibm-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Backspace}} || - || [[#ibm-acpi events|ibm-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|NumLock}} || - || [[#xmodmap configuration|xmodmap]] || make working ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Windows}} || - || [[#xmodmap configuration|xmodmap]] || remapping ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Access IBM|#495988}} or {{ibmkey|ThinkPad|#494949}} or {{ibmkey|ThinkVantage|#495988}} || help application || [[thinkpad-acpi]],[[#tpb configuration|tpb]], [[KMilo]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Home|#494949}} || open web browser || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]], [[KMilo]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Search|#494949}} || open search application || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]], [[KMilo]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Mail|#494949}} || open mail application || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]], [[KMilo]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Favorites|#494949}} || open favorites || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Reload|#494949}} || reload web page || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Abort|#494949}} || abort loading page || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Backward|#494949}} || previous page || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full ||  ext. keyboards and ThinkPads starting from 2002&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Forward|#494949}} || next page || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full || ext. keyboards and ThinkPads starting from 2002&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume up|#494949}} || volume up || [[thinkpad-acpi]], [[#tpb configuration|tpb]], [[KMilo]] || additional actions ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume down|#494949}} || volume down || [[thinkpad-acpi]], [[#tpb configuration|tpb]], [[KMilo]] || additional actions ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume mute|#494949}} || mute volume || [[thinkpad-acpi]], [[#tpb configuration|tpb]], [[KMilo]] || additional actions ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Play/Pause|#494949}} || start/pause playback  || [[#xmodmap configuration|xmodmap]] || full || {{X60s}} (Fn+Arrow Down)&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Stop|#494949}} || stop playback || [[#xmodmap configuration|xmodmap]] || full || {{X60s}} (Fn+Arrow Up)&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Next|#494949}} || play next || [[#xmodmap configuration|xmodmap]] || full || {{X60s}} (Fn+Arrow Right)&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Previous|#494949}} || play previous || [[#xmodmap configuration|xmodmap]] || full || {{X60s}} (Fn+Arrow Left)&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Power|#494949}} || shutdown || [[#ibm-acpi events|ibm-acpi]],[[thinkpad-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 events|ibm-acpi]], [[thinkpad-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| Ultrabay lid || announce ultrabay change || [[#ibm-acpi events|ibm-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| Dock eject || eject from dock || [[#ibm-acpi events|ibm-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet power|#494949}} || shutdown || [[#ibm-acpi events|ibm-acpi]] || full || triggered on pressing 3secs, but notebook goes off on 5sec press&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet orientation|#494949}} || rotates screen || [[#Mapping keys with setkeycodes|setkeycodes]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet shortcut|#494949}} || shortcut menu || [[#Mapping keys with setkeycodes|setkeycodes]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Esc|#494949}} || esc key || [[#Mapping keys with setkeycodes|setkeycodes]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Enter|#494949}} || enter key || [[#mapping keys with setkeycodes|setkeycodes]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Up|#494949}} || up key || [[#Mapping keys with setkeycodes|setkeycodes]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Down|#494949}} || down key || [[#Mapping keys with setkeycodes|setkeycodes]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet (unlabeled)|#494949}} || down key || [[#Mapping keys with setkeycodes|setkeycodes]] || full ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For completeness, note that the WiFi enable/disable switch is located (on the X61 and other models that have it) just under the front edge of the base of the machine.  You should see a small horizontal slider switch.  Enable by sliding it rightwards, disable by sliding it leftwards.&lt;br /&gt;
&lt;br /&gt;
Tablet buttons vary with model.  See [[Tablet Hardware Buttons]].&lt;br /&gt;
&lt;br /&gt;
==Triggering key events==&lt;br /&gt;
===ibm-acpi/thinkpad-acpi events===&lt;br /&gt;
Some of the following events require a {{cmdroot|echo enable,0xffff &amp;gt;/proc/acpi/ibm/hotkey}} (when using ibm-acpi) in order to make acpi able to get information on them. Since the newer thinkpad-acpi has a larger number of bits that can be set in the mask, you might try {{cmdroot|echo enable,0xffffffff &amp;gt;/proc/acpi/ibm/hotkey}} if you are using this driver. These events can be used to [[How to configure acpid|configure acpid]].&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
|+ events triggered by [[ibm-acpi]] for {{path|/etc/acpi/events}} files. May vary on different models.&lt;br /&gt;
! key !! event&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F1}} || ibm/hotkey HKEY 00000080 00001001&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F2}} || ibm/hotkey HKEY 00000080 00001002&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F3}} || ibm/hotkey HKEY 00000080 00001003&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F4}} || ibm/hotkey HKEY 00000080 00001004&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F5}} || ibm/hotkey HKEY 00000080 00001005&lt;br /&gt;
|- &lt;br /&gt;
| {{key|Fn}}{{key|F6}} || ibm/hotkey HKEY 00000080 00001006&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F7}} || ibm/hotkey HKEY 00000080 00001007&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F8}} || ibm/hotkey HKEY 00000080 00001008&lt;br /&gt;
|- &lt;br /&gt;
| {{key|Fn}}{{key|F9}} || ibm/hotkey HKEY 00000080 00001009 &lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F10}} || ibm/hotkey HKEY 00000080 0000100a&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F11}} || ibm/hotkey HKEY 00000080 0000100b &lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F12}} || ibm/hotkey HKEY 00000080 0000100c&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Backspace}} || ibm/hotkey HKEY 00000080 0000100d&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Ins}} || ibm/hotkey HKEY 00000080 0000100e &lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Del}} || ibm/hotkey HKEY 00000080 0000100f &lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Home}}/{{key|Fn}}{{key|Pos1}} || ibm/hotkey HKEY 00000080 00001010&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|End}} || ibm/hotkey HKEY 00000080 00001011&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|PgUp}} || ibm/hotkey HKEY 00000080 00001012&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Space}} || ibm/hotkey HKEY 00000080 00001014&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume up|#494949}}|| ibm/hotkey HKEY 00000080 00001015&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume down|#494949}} || ibm/hotkey HKEY 00000080 00001016&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume mute|#494949}} || ibm/hotkey HKEY 00000080 00001017&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Access IBM|#495988}} or {{ibmkey|ThinkPad|#494949}} or {{ibmkey|ThinkVantage|#495988}} || ibm/hotkey HKEY 00000080 00001018&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;
| Dock eject || ibm/dock GDCK 00000003 00000001 &lt;br /&gt;
|-&lt;br /&gt;
| Wireless switch || ibm/hotkey HKEY 00000080 00007000 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
By disassembling and editing the DSDT, more events can be added.  HKEY events are triggered by calls to the MKHQ function, e.g. &amp;lt;tt&amp;gt;\_SB.PCI0.LPC.EC.HKEY.MHKQ(0Ã—1007)&amp;lt;/tt&amp;gt; will trigger &amp;quot;ibm/hotkey HKEY 00000080 00001007&amp;quot;.  Most of these can be found in &amp;lt;tt&amp;gt;_Qxx&amp;lt;/tt&amp;gt; methods within the DSDT, which are executed on embedded controller events, e.g. _Q10 is triggered by pressing Fn-F7.  You can add a call to MKHQ into an existing &amp;lt;tt&amp;gt;_Qxx&amp;lt;/tt&amp;gt; method to get it recognized by ibm-acpi as well as creating new &amp;lt;tt&amp;gt;_Qxx&amp;lt;/tt&amp;gt; methods, which if you're lucky will correspond to an EC event that IBM never used (e.g. A 770 will send Fn-Home/End/PgUp/PgDn to ibm-acpi if hacked in this fashion). For example, [http://www.wormnet.eu/ibm-g40/morebuttons.dsl this is a modified block of DSDT for a G40].&lt;br /&gt;
&lt;br /&gt;
=== ACPI events from the &amp;lt;tt&amp;gt;button&amp;lt;/tt&amp;gt; module===&lt;br /&gt;
&lt;br /&gt;
A few keys can generate ACPI events that result from the &amp;lt;tt&amp;gt;button&amp;lt;/tt&amp;gt; kernel module, as long as they are masked off in the &amp;lt;tt&amp;gt;ibm-acpi&amp;lt;/tt&amp;gt;/&amp;lt;tt&amp;gt;thinkpad-acpi&amp;lt;/tt&amp;gt; hotkey's mask or the hotkey function of the latter module is disabled.&lt;br /&gt;
&lt;br /&gt;
If you want the ThinkPad's BIOS and ACPI methods to know about these keys being pressed, you probably want to leave them masked out from ibm-acpi, and use their non-HKEY events listed below, instead.&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
|+ events triggered by ACPI when hotkey is masked out or disabled. &lt;br /&gt;
! key !! event !! T60 event&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Power|#494949}} || button/power PWRF 00000080 xxxxxxxx || button/power PWRF 00000080 00000001&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F4}} || button/sleep SLPB 00000080 00000001 || button/sleep SLPB 00000080 00000001&lt;br /&gt;
|-&lt;br /&gt;
| Display lid || button/lid LID 00000080 xxxxxxxx || button/lid LID 00000080 00000001&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===tpb configuration===&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
|+ configuration keywords for [[tpb]] (to put in {{path|/etc/tpbrc}})&lt;br /&gt;
! key !! config keyword&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Access IBM|#495988}} or {{ibmkey|ThinkPad|#494949}} || THINKPAD&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Home|#494949}} || HOME&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Search|#494949}} || SEARCH&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Mail|#494949}} || MAIL&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Favorites|#494949}} || FAVORITES&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Reload|#494949}} || RELOAD&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Abort|#494949}} || ABORT&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Backward|#494949}} || BACKWARD&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Forward|#494949}} || FORWARD&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}} || FN&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Space}} || CALLBACK (zoom on/off)&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|PageUp}} || CALLBACK (thinklight on/off)&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F7}} || CALLBACK (display lcd/crt/both)&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F8}} || CALLBACK (expand on/off)&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Home}} / {{key|Fn}}{{key|Pos1}} || CALLBACK (brightness &amp;lt;percent&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|End}} || CALLBACK (brightness &amp;lt;percent&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume up|#494949}} || CALLBACK (volume &amp;lt;percent&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume down|#494949}} || CALLBACK (volume &amp;lt;percent&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume mute|#494949}} || 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 &amp;lt;tt&amp;gt;XEVENTS OFF&amp;lt;/tt&amp;gt; in your {{path|/etc/tpbrc}}. &lt;br /&gt;
You can use an appropriate executable to [[How to inject fake keystrokes|inject fake keystrokes]].&lt;br /&gt;
&lt;br /&gt;
For Debian users, tpb is started from {{path|/etc/X11/Xsession.d/90tpb}}.&lt;br /&gt;
&lt;br /&gt;
'''Sound Button configuration'''&lt;br /&gt;
&lt;br /&gt;
''Note: Tested on T60p with Ubuntu 6.06 LTS''&lt;br /&gt;
&lt;br /&gt;
Most Thinkpads have a hardware sound mixer, thus the volumes buttons should work without configuration. However, this change is not reflected in the software mixer. tpb has a switch to enable software mixer support via OSS. The manual recommends this only for devices without a hardware mixer, but it also works for other hadware mixer enabled devices, even with the ALSA system. Just put MIXER ON in your {{path|/etc/tpbrc}} file and you can see the effect immediately in any ALSA mixer (e.g. kmix). For this to work you need write permissions to {{path|/dev/nvram}}.&lt;br /&gt;
&lt;br /&gt;
''Note: Tested on X21 with Ubuntu 6.06 LTS''&lt;br /&gt;
&lt;br /&gt;
On the ThinkPad X21 (and maybe some other older models) ACPI causes problems with tpb.  On an X21 using acpi the volume buttons would work occasionally, and the OSD for tpb functions would rarely work.  If a volume buttons was pressed too often, sometimes the computer would enter a low power (unplugged state) and would require a reboot.  The solution is to use APM instead of ACPI.  Instructions can be found in [[How_to_make_APM_work]].&lt;br /&gt;
&lt;br /&gt;
===KMilo configuration===&lt;br /&gt;
The programs to be executed by [[KMilo]] are configured via the KDE Control Center (&amp;lt;tt&amp;gt;kcontrol&amp;lt;/tt&amp;gt;), under &amp;lt;tt&amp;gt;System Administration --&amp;gt; IBM Thinkpad Laptop&amp;lt;/tt&amp;gt;. Note that you can use appropriate commands to [[How to inject fake keystrokes|inject fake keystrokes]].&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;
To discover the keycode that a certain keypress produces, use the tool {{cmduser|xev}} &lt;br /&gt;
&lt;br /&gt;
Usually you should write your keycode-keysym associations into the file {{path|~/.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 {{path|~/.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;
Load the assocation using the command&lt;br /&gt;
&lt;br /&gt;
{{cmduser|xmodmap ~/.Xmodmap}} &lt;br /&gt;
&lt;br /&gt;
(some configurations do this automatically upon X startup). &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;
{| {{prettytable}}&lt;br /&gt;
|+ keycodes and recommended keysyms&lt;br /&gt;
! key !! keycode !! keysym&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Access IBM|#495988}} or {{ibmkey|ThinkPad|#494949}} || 159 || XF86LaunchA&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Backward|#494949}} || 234 || XF86Back or F19&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Forward|#494949}} || 233 || XF86Forward or F20&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Play/Pause|#494949}} || 162 || XF86AudioPlay&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Stop|#494949}} || 164 || XF86AudioStop&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Next|#494949}} || 153 || XF86AudioNext&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Previous|#494949}} || 144 || XF86AudioPrev&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| {{ibmkey|Home|#494949}} || 178 || XF86HomePage&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Search|#494949}} || 229 || XF86Search&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Mail|#494949}} || 236 || XF86Mail&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Favorites|#494949}} || 230 || XF86AddFavorite or XF86Favorites&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Reload|#494949}} || 231 || XF86Reload&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Abort|#494949}} || 232 || XF86Stop&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}} || 227 || F35&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: You can also use xkeycaps (an X tool to display and edit the X keyboard mapping) to generate proper .Xmodmap.&lt;br /&gt;
&lt;br /&gt;
Note: if you are running [[tpb]] you might need to add the line &amp;lt;tt&amp;gt;XEVENTS=off&amp;lt;/tt&amp;gt; into your tpbrc to stop it from grabbing the key events and allow them to get through to X instead. See [[http://www.thinkwiki.org/wiki/Tpb]] for more detailed instruction on how to use tpb and xmodmap.&lt;br /&gt;
&lt;br /&gt;
Note: XF86Forward and XF86Back do not work correctly in Firefox. You may want to map them to F19 and F20 instead if you use Firefox.&lt;br /&gt;
&lt;br /&gt;
Note: The &amp;quot;XF86AudioPlay&amp;quot; etc. just works with a few programs. To make it work with more multimedia programs you have map the key to use something like [http://www.kde-apps.org/content/show.php/ReMoot?content=63140 ReMoot]. ReMoot is a command line wrapper that control 18 of the most common multimedia applications. &lt;br /&gt;
&lt;br /&gt;
=====Enabling the Windows and Menu Keys=====&lt;br /&gt;
On some systems the Windows and Menu keys may not be recognized.  You can enable then by&lt;br /&gt;
making the following changes:&lt;br /&gt;
&lt;br /&gt;
        keycode 115 = F13&lt;br /&gt;
        keycode 227 = F35&lt;br /&gt;
&lt;br /&gt;
F13 and F35 are used for the Windows and and Menu keys respectively.  Labelling keycpode 227 as &amp;quot;Menu&amp;quot; may conflict with the right-mouse-click event.&lt;br /&gt;
&lt;br /&gt;
=====Using Caps Lock as Super L (Windows key)=====&lt;br /&gt;
You can easily use Caps Lock as Win key by adding the following in your ~/.Xmodmap:&lt;br /&gt;
        ! No Caps Lock&lt;br /&gt;
        clear lock&lt;br /&gt;
        ! Caps Lock as Win key&lt;br /&gt;
        add mod4 = Caps_Lock&lt;br /&gt;
=====NumLock=====&lt;br /&gt;
On the ThinkPad {{600}}, {{T20}}, {{T21}}, {{T22}}, {{T30}}, {{X20}}, {{X21}},  {{X31}}, {{X40}}, {{T42p}}, {{T43}}, {{R51}}, {{R52}} and possibly other models, X does not recognize the keycode for {{key|NumLk}} = {{key|Shift}}+{{key|ScrLk}}. To fix this, add the following to {{path|~/.Xmodmap}} in your home directory or {{path|/etc/X11/Xmodmap}} and run &amp;lt;tt&amp;gt;xmodmap&amp;lt;/tt&amp;gt;, ex: &amp;lt;tt&amp;gt;xmodmap ~/.Xmodmap&amp;lt;/tt&amp;gt;:&lt;br /&gt;
 keycode 77 = Num_Lock&lt;br /&gt;
&lt;br /&gt;
This configuration also enables the respective LED.&lt;br /&gt;
&lt;br /&gt;
Please note, pressing the {{key|Shift}}+{{key|ScrLk}} key combination, without first following the above configuration, will start an accessibility feature, which will allow the numeric keypad to maneuver the mouse pointer.  Starting this accessibility feature and subsequently running xmodmap, as described above, results in the accessibility feature and the numeric lock LED functioning simultaneously.  As such, the above configuration should be completed before the accessibility feature is started in order to produce numbers.&lt;br /&gt;
======T60 (and possibly others)======&lt;br /&gt;
It seems that on the T60, PrtSc, ScrLk and Pause all generate the correct keycodes, however Fn-PrtSc (labelled as SysRq) generates keycode 64 (Alt_L) followed by the expected 111 (Sys_Req) on down and the same thing in the opposite order on release. Fn-ScrLk (labelled as NmLk) does indeed toggle the Numlock, but only seems to register as an X event the first time it is engaged. The above solution does not appear to work. This is perhaps because the Numlock toggle is built into the firmware rather than controlled by the kernel. Finally, Fn-Pause (labelled as Break) generates keycode 37 (Control_L) followed by the expected keycode 110 (Break) on down and the same thing in reverse order on release.&lt;br /&gt;
=====NumPad (KeyPad) keys access by a key combination=====&lt;br /&gt;
The current state is that you have to switch NumLock '''on''' via {{key|Fn}}+{{key|ScrLk}} and then e.g. type {{key|u}} to get a {{key|KP_4}} (NumPad 4). To get back to normal keyboard, you have to type {{key|Fn}}+{{key|ScrLk}} again.&lt;br /&gt;
&lt;br /&gt;
Some people (including me) are missing on recent Thinkpads the option to have Fn as a modifier key to access the NumPad instead, i.e. and e.g. {{key|Fn}}+{{key|u}} gives you {{key|KP_4}}.&lt;br /&gt;
&lt;br /&gt;
There is currently no way to make this work in a simple way (pleeeease correct me if I am wrong!), though there is a work-around. Instead of using {{key|Fn}} for accessing the NumPad, {{key|CapsLock}} can get this function by being mapped as Mode_switch (the {{key|AltGr}} on international keyboards). The {{key|Fn}} can be remapped to be Caps_Lock - while at the same time retaining its function to access the special laptop functions (e.g. {{key|Fn}}+{{key|F4}} for sleep}}, by using .Xmodmap.&lt;br /&gt;
&lt;br /&gt;
So on my {{R60}} running fvwm@{{Slackware}} 12.1 the .Xmodmap would look like this:&lt;br /&gt;
&lt;br /&gt;
 ! Make the forward and back buttons work&lt;br /&gt;
    keycode 233 = XF86Forward&lt;br /&gt;
    keycode 234 = XF86Back&lt;br /&gt;
 ! Make the WIN key to Super modifier&lt;br /&gt;
    keycode 115 = Super_L&lt;br /&gt;
 ! Set the Caps_Lock physical key to Mode_switch (like AltGr on intl. keyboards)&lt;br /&gt;
    keycode 66 = Mode_switch&lt;br /&gt;
 ! Set the Fn key to work as Caps_Lock now. The special key combos like Fn-F4 for &amp;quot;sleep&amp;quot; still work then&lt;br /&gt;
    keycode 227 = Caps_Lock&lt;br /&gt;
    clear lock&lt;br /&gt;
    add lock = Caps_Lock&lt;br /&gt;
 ! Now we activate those new keys. Find some free mod slots (xmodmap) and put them there.&lt;br /&gt;
    clear mod4&lt;br /&gt;
    clear mod5&lt;br /&gt;
    add mod4 = Super_L&lt;br /&gt;
    add mod3 = Mode_switch&lt;br /&gt;
 ! It's time to add the keypad keys to the third position of the key definition (pure shift mode_switch shift+mode_switch)&lt;br /&gt;
    keycode 16 = 7 ampersand KP_7&lt;br /&gt;
    keycode 17 = 8 asterisk KP_8&lt;br /&gt;
    keycode 18 = 9 parenleft KP_9&lt;br /&gt;
      keycode 19 = 0 parenright KP_Divide&lt;br /&gt;
    keycode 30 = u U KP_4&lt;br /&gt;
    keycode 31 = i I KP_5&lt;br /&gt;
    keycode 32 = o O KP_6&lt;br /&gt;
      keycode 33 = p P KP_Multiply&lt;br /&gt;
    keycode 44 = j J KP_1&lt;br /&gt;
    keycode 45 = k K KP_2&lt;br /&gt;
    keycode 46 = l L KP_3&lt;br /&gt;
      keycode 47 = semicolon colon KP_Subtract&lt;br /&gt;
    keycode 58 = m M KP_0&lt;br /&gt;
 ! ... I have to use the coma key, too, on the keypad...so I set it to be F20 (which is not existing on normal keyboards and thus is free... check for side effects in programmes accepting F12+ keys!)&lt;br /&gt;
    keycode 59 = comma less F20 &lt;br /&gt;
    keycode 60 = period greater KP_Decimal    &lt;br /&gt;
      keycode  61 = slash question KP_Add&lt;br /&gt;
&lt;br /&gt;
{{WARN|Your keycodes might be different as well as your '''mod''#''''' settings.}}&lt;br /&gt;
Use {{cmduser|xmodmap}} and {{cmduser|xmodmap -pke}} to check your ModMap, and the tool {{cmduser|xev}} to obtain your exact key codes.&lt;br /&gt;
&lt;br /&gt;
===Mapping keys with setkeycodes===&lt;br /&gt;
You can use the setkeycodes command to remap certain keys. I.e. you can use {{cmdroot|setkeycodes 6e 109 6d 104 69 28 6b 1}} to map the Tablets Up and Down keys to the standard PageUp and PageDown keys and Tablet Escape and Enter to their respective keys.&lt;br /&gt;
&lt;br /&gt;
The following table shows the scancodes generated by the ThinkPad keys.  They vary with model - see [[Tablet Hardware Buttons]].&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
|+ scancodes&lt;br /&gt;
! key !! scancode&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet orientation|#494949}} || 0x6c&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Shortcut|#494949}} || 0x68&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Esc|#494949}} || 0x6b&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Enter|#494949}} || 0x69&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Up|#494949}} || 0x6d&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Down|#494949}} || 0x6e&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet (unlabeled)|#494949}} || 0x67&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===acpi_fakekey===&lt;br /&gt;
You can turn acpi events into user-level xevents by putting &amp;lt;tt&amp;gt;acpi_fakekey&amp;lt;/tt&amp;gt; commands into the acpi action scripts. There are several layers involved in using acpi keys in this way, so I'll go through the example of using the ThinkVantage button to open xmms.&lt;br /&gt;
&lt;br /&gt;
My ThinkVantage button generates an '''acpi event''' &amp;quot;ibm/hotkey HKEY 00000080 00001018&amp;quot;, so we have the event file &amp;lt;tt&amp;gt;/etc/acpi/events/ThinkVantage&amp;lt;/tt&amp;gt; for it which executes the script &amp;lt;tt&amp;gt;/etc/acpi/actions/fakekey-macro.sh&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
event=ibm/hotkey HKEY 00000080 00001018&lt;br /&gt;
action=/etc/acpi/actions/fakekey-macro.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In turn, the executable &amp;lt;tt&amp;gt;/etc/acpi/actions/fakekey-macro.sh&amp;lt;/tt&amp;gt; script calls acpi_fakekey with the '''key number''' defined in &amp;lt;tt&amp;gt;/usr/share/acpi-support/key-constants&amp;lt;/tt&amp;gt; as $KEY_MACRO which is 112 (you could just as well choose an other key number, just make sure that it doesn't belong to something else like the &amp;quot;j&amp;quot; key or something). &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
. /usr/share/acpi-support/key-constants&lt;br /&gt;
acpi_fakekey $KEY_MACRO &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
I have no idea how this actually corresponds to which xevent is generated, so I can find out out by running the program &amp;lt;tt&amp;gt;xev&amp;lt;/tt&amp;gt; and hitting the ThinkVantage button while the mouse is in the &amp;lt;tt&amp;gt;xev&amp;lt;/tt&amp;gt; window (remember to &amp;lt;tt&amp;gt;/etc/init.d/acpid restart&amp;lt;/tt&amp;gt; first if you just created the &amp;lt;tt&amp;gt;/etc/acpi/events/ThinkVantage&amp;lt;/tt&amp;gt; file). I get something popping up in the terminal where I ran xev that looks like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
KeyPress event, serial 30, synthetic NO, window 0x2800001,&lt;br /&gt;
    root 0x6a, subw 0x0, time 2000522842, (138,83), root:(781,500),&lt;br /&gt;
    state 0x0, keycode 239 (keysym 0x0, NoSymbol), same_screen YES,&lt;br /&gt;
    XLookupString gives 0 bytes: &lt;br /&gt;
    XmbLookupString gives 0 bytes: &lt;br /&gt;
    XFilterEvent returns: False&lt;br /&gt;
&lt;br /&gt;
KeyRelease event, serial 30, synthetic NO, window 0x2800001,&lt;br /&gt;
    root 0x6a, subw 0x0, time 2000522842, (138,83), root:(781,500),&lt;br /&gt;
    state 0x0, keycode 239 (keysym 0x0, NoSymbol), same_screen YES,&lt;br /&gt;
    XLookupString gives 0 bytes: &lt;br /&gt;
    XFilterEvent returns: False&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This tells me that the &amp;lt;tt&amp;gt;acpi_fakekey 112&amp;lt;/tt&amp;gt; as executed by hitting the ThinkVantage button generates KeyPress event followed by a KeyRelease event with '''keycode''' 239 and that this keycode has been assigned no corresponding '''keysym'''. Thus, I am free to assign the keycode to any keysym I want. You can find a list of available keysyms in &amp;lt;tt&amp;gt;/usr/share/X11/XKeysymDB&amp;lt;/tt&amp;gt;. Again try and pick one that is not likely to have already been taken by something, such as &amp;lt;tt&amp;gt;XF86LaunchA&amp;lt;/tt&amp;gt;. To assign this keysym to keycode 239, you can either edit ~/.Xmodmap on an individual user basis, or edit the systemwide &amp;lt;tt&amp;gt;/etc/X11/Xmodmap&amp;lt;/tt&amp;gt; file to contain the line&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
keycode 239 = XF86LaunchA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you choose to go with the former, you may need to run &amp;lt;tt&amp;gt;xmodmap ~/.Xmodmap&amp;lt;/tt&amp;gt; for every login session in order to read in your ~/.Xmodmap file if your window manager does not do it for you. Regardless of which option you choose, you can run &amp;lt;tt&amp;gt;xmodmap &amp;lt;file&amp;gt;&amp;lt;/tt&amp;gt; to read in the updated Xmodmap file without logging out and logging back in.&lt;br /&gt;
&lt;br /&gt;
You should now find that hitting the ThinkVantage button creates the following output from &amp;lt;tt&amp;gt;xev&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
KeyPress event, serial 55, synthetic NO, window 0x2800001,&lt;br /&gt;
    root 0x6a, subw 0x0, time 2001286078, (0,106), root:(643,523),&lt;br /&gt;
    state 0x0, keycode 239 (keysym 0x1008ff4a, XF86LaunchA), same_screen YES,&lt;br /&gt;
    XLookupString gives 0 bytes: &lt;br /&gt;
    XmbLookupString gives 0 bytes: &lt;br /&gt;
    XFilterEvent returns: False&lt;br /&gt;
&lt;br /&gt;
KeyRelease event, serial 55, synthetic NO, window 0x2800001,&lt;br /&gt;
    root 0x6a, subw 0x0, time 2001286078, (0,106), root:(643,523),&lt;br /&gt;
    state 0x0, keycode 239 (keysym 0x1008ff4a, XF86LaunchA), same_screen YES,&lt;br /&gt;
    XLookupString gives 0 bytes: &lt;br /&gt;
    XFilterEvent returns: False&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note the change of &amp;lt;tt&amp;gt;(keysym 0x0, NoSymbol)&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;(keysym 0x1008ff4a, XF86LaunchA)&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You're now ready to map &amp;lt;tt&amp;gt;XF86LaunchA&amp;lt;/tt&amp;gt; to executing xmms. This is highly dependent on what keygrabber you decide to use. For openbox, I edit my &amp;lt;tt&amp;gt;~/.config/openbox/rc.xml&amp;lt;/tt&amp;gt; file and add the following entry in the  &amp;lt;keyboard&amp;gt; section:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;lt;keybind key=&amp;quot;XF86LaunchA&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;action name=&amp;quot;Execute&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;startupnotify&amp;gt;&lt;br /&gt;
          &amp;lt;enabled&amp;gt;true&amp;lt;/enabled&amp;gt;&lt;br /&gt;
        &amp;lt;/startupnotify&amp;gt;&lt;br /&gt;
        &amp;lt;command&amp;gt;&lt;br /&gt;
	  xmms&lt;br /&gt;
	&amp;lt;/command&amp;gt;&lt;br /&gt;
      &amp;lt;/action&amp;gt;&lt;br /&gt;
    &amp;lt;/keybind&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
After, right clicking on the desktop and selecting the &amp;quot;Reconfigure&amp;quot; menu option, you should then have xmms pop up when you hit the ThinkVantage key.&lt;br /&gt;
&lt;br /&gt;
==Example Applications==&lt;br /&gt;
===Web Browsers===&lt;br /&gt;
====Firefox (&amp;lt;3.0)====&lt;br /&gt;
&lt;br /&gt;
There are various ways to assign actions to the browser keys. The easiest way is to install [http://mozilla.dorando.at/keyconfig.xpi keyconfig.xpi] from http://mozilla.dorando.at, which adds a menu entry Tools-&amp;gt;Keyconfig. Then you can assign any action you want to the F19/F20 keys (you still need to create {{path|~/.Xmodmap}} as explained above).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The remaining discussion gives you various more complicated ways to achieve the same thing. &lt;br /&gt;
To have firefox make use of the browser keys you need to modify one of its files{{footnote|4}}.&lt;br /&gt;
To do this you will first need to extract it from the {{path|browser.jar}} archive. Do...&lt;br /&gt;
&lt;br /&gt;
Step 1:  Edit .Xmodmap and add entries for F19 and F20 as explained above.&lt;br /&gt;
&lt;br /&gt;
Step 2:&lt;br /&gt;
&lt;br /&gt;
Note: &amp;lt;firefox-directory&amp;gt; is probably /usr/lib/firefox. Use your version so, if you have 3.0.1 or 3.0.2 use /usr/lib/firefox-3.0.1&lt;br /&gt;
&lt;br /&gt;
:{{cmdroot|cd &amp;lt;firefox-directory&amp;gt;/chrome}}&amp;lt;br /&amp;gt;&lt;br /&gt;
:{{cmdroot|unzip browser.jar}}&lt;br /&gt;
&lt;br /&gt;
The file of interest is {{path|content/browser/browser.xul}}. Edit it {and don't forget to make a backup copy first}...&lt;br /&gt;
:{{cmdroot|vi content/browser/browser.xul}}&lt;br /&gt;
&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;goBackKb&amp;quot; keycode=&amp;quot;VK_F19&amp;quot; command=&amp;quot;Browser:Back&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;key id=&amp;quot;goForwardKb&amp;quot; keycode=&amp;quot;VK_F20&amp;quot; command=&amp;quot;Browser:Forward&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Command you need for Next Tab &lt;br /&gt;
 &amp;lt;key id=&amp;quot;goBackTabKb&amp;quot; keycode=&amp;quot;VK_F19&amp;quot; oncommand=&amp;quot;gBrowser.mTabContainer.advanceSelectedTab(-1)&amp;quot; /&amp;gt;&lt;br /&gt;
For the Previous Tab &lt;br /&gt;
 &amp;lt;key id=&amp;quot;goForwardTabKb&amp;quot; keycode=&amp;quot;VK_F20&amp;quot; oncommand=&amp;quot;gBrowser.mTabContainer.advanceSelectedTab(1)&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now save the file and repackage the {{path|browser.jar}} archive...&lt;br /&gt;
:{{cmdroot|zip -rD0 browser.jar content/browser/}}&lt;br /&gt;
&lt;br /&gt;
That's it.&lt;br /&gt;
&lt;br /&gt;
Step 3:  Restart Firefox.&lt;br /&gt;
&lt;br /&gt;
{{HINT|Outdated: Another interesting Page on Firefox is http://dqd.com/~mayoff/notes/thinkpad/dqdnavkeys/ It uses different key mappings (F19 resp. F20) but a ready [http://dqd.com/~mayoff/notes/thinkpad/dqdnavkeys/dqdnavkeys-1.2.xpi .xpi] is provided which is pretty comfortable. However, this xpi file does not install on Firefox 1.5. or later.}}&lt;br /&gt;
&lt;br /&gt;
{{HINT| You can also use the [http://extensionroom.mozdev.org/more-info/keyconfig keyconfig] extension to configure custom keys.  This extension works with Firefox 1.5 and also with Firefox 2.0. The Command you need for Next Tab is gBrowser.mTabContainer.advanceSelectedTab(1,true); For Previous Tab its gBrowser.mTabContainer.advanceSelectedTab(-1,true); You can alternatively install the [http://www.pqrs.org/~tekezo/firefox/extensions/functions_for_keyconfig/index.html functions for keyconfig] and set the variable f4kc_NextTab to F20 and f4kc_PrevTab to F19.}}.&lt;br /&gt;
&lt;br /&gt;
====Firefox 3.0====&lt;br /&gt;
Thankfully the people at Mozilla decided to include the expected functionality for the XF86Back and XF86Forward keysyms in the new release so all you need to do is&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;# printf 'keycode 234 = XF86Back\nkeycode 233 = XF86Forward' &amp;gt;&amp;gt; /etc/X11/Xmodmap&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
And to make this take effect immediately (i.e., without having to log out and log in again), as a regular user run:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;{{cmduser|Xmodmap /etc/X11/Xmodmap}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Hardy Heron, the xmodmap command is all lowercase. Also, the /etc/X11/Xmodmap file is not being read on boot. I've added the command to my .bashrc to have it called on startup.&lt;br /&gt;
&lt;br /&gt;
====Konqueror====&lt;br /&gt;
KDE allows you set key mappings for KDE applications (Go to KMenu &amp;gt; System &amp;gt; Control Center &amp;gt; Regional &amp;amp; Accessibility &amp;gt; Keyboard Shortcuts). By default (at least in KDE 3.5), XF86Back and XF86Forward are set as alternatives to Alt-Left and Alt-Right, and are mapped to KDE Back and Forward navigation actions.  &lt;br /&gt;
&lt;br /&gt;
If you use Konqueror as your only browser, you only need to set up {{path|~/.Xmodmap}} as described [[#xmodmap configuration|above]] to assign ThinkPad back/forward keys to the symbols XF86Back/XF86Forward. This also make these keys work for other KDE applications such as Quanta Plus, KPackage and so on (not all KDE applications honor this setting, e.g. KDE help system doesn't).&lt;br /&gt;
&lt;br /&gt;
If you want to use Firefox, however, the above settings do not work. You will have to map ThinkPad back/forward keys to F19/F20 as described [[#Firefox|above]], and change KDE navigation key settings to use F19/F20 instead of the default.&lt;br /&gt;
&lt;br /&gt;
====Opera====&lt;br /&gt;
However this isn't a simple configration file, you can set your browser manually.&amp;lt;br /&amp;gt;&lt;br /&gt;
Go to &amp;lt;i&amp;gt;Tool &amp;gt; Settings &amp;gt; Mouse and keyboard &amp;gt; Keyboard settings &amp;gt; Edit &amp;gt; Browser Window&amp;lt;/i&amp;gt;. There add F19 - Back and F20 - Forward. Now you can surf using your TP keys ;-)&lt;br /&gt;
&lt;br /&gt;
====Epiphany====&lt;br /&gt;
To get the keys work in epiphany, you could use the extension from [http://crashman.homelinux.org/~andre/public/epiphany%20extensions/thinkpad%20browserkeys/ here]&lt;br /&gt;
You just need to edit your Xmodmap like described for Firefox &amp;lt; 3.0 (bind the keys on F19 and F20)&lt;br /&gt;
&lt;br /&gt;
===Open an application===&lt;br /&gt;
&lt;br /&gt;
To configure the ThinkVantage button to open a terminal window in Gnome:&lt;br /&gt;
&lt;br /&gt;
Step 1:&lt;br /&gt;
Use xev to find the keycode generated by the button on your machine.  In my case is is 159.&lt;br /&gt;
&lt;br /&gt;
Step 2:&lt;br /&gt;
Create an entry in .Xmodmap like so&lt;br /&gt;
&lt;br /&gt;
keycode 159 = XF86LaunchA&lt;br /&gt;
&lt;br /&gt;
replacing 159 by the keycode found in step 1.  Load the map using&lt;br /&gt;
&lt;br /&gt;
:{{cmd|xmodmap ~/.Xmodmap}}&lt;br /&gt;
&lt;br /&gt;
Step 3:&lt;br /&gt;
Configure the required function (e.g. open terminal window) in System-&amp;gt;Preferences-&amp;gt;Keyboard shortcuts&lt;br /&gt;
&lt;br /&gt;
===Window Managers===&lt;br /&gt;
====fvwm====&lt;br /&gt;
To get the {{ibmkey|Forward|#494949}} and {{ibmkey|Backward|#494949}} keys to cycle through pages in the virtual desktop, add this to your {{path|~/.fvwmrc}}:&lt;br /&gt;
 Key    XF86Back     A      A   Scroll     -100000   0&lt;br /&gt;
 Key    XF86Forward  A      A   Scroll     +100000   0&lt;br /&gt;
If you use multiple virtual desktops, you could instead use the keys to flip between them by using GotoDesk.&lt;br /&gt;
&lt;br /&gt;
====fluxbox====&lt;br /&gt;
To get the keys to cycle through pages in the virtual desktop, add this to your {{path|~/.fluxbox/keys}}:&lt;br /&gt;
 None F19 :PrevWorkspace&lt;br /&gt;
 None F20 :NextWorkspace&lt;br /&gt;
&lt;br /&gt;
====pekwm configuration====&lt;br /&gt;
You can make the two browser keys switch workspaces in pekwm, by adding the following two lines to the {{path|~/.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;br /&gt;
&lt;br /&gt;
====pwm====&lt;br /&gt;
Another example how to use these two keys to switch between pwm tabs. These two lines should be added to {{path|~/.pwm/keys-default.conf}} or {{path|/etc/pwm/keys-default.conf}}:&lt;br /&gt;
 kbind &amp;quot;Back&amp;quot;, &amp;quot;switch_rot&amp;quot;, -1&lt;br /&gt;
 kbind &amp;quot;Forward&amp;quot;, &amp;quot;switch_rot&amp;quot;, 1&lt;br /&gt;
&lt;br /&gt;
====IceWM====&lt;br /&gt;
To make IceWM cycle workspaces using the {{ibmkey|Forward|#494949}} and {{ibmkey|Backward|#494949}} keys, change these two options in {{path|~/.icewm/preferences}} (Provided you assigned keysyms F19 and F20 with xmodmap):&lt;br /&gt;
 # &amp;quot;Previous workspace&amp;quot; shortcut&lt;br /&gt;
 KeySysWorkspacePrev=&amp;quot;F19&amp;quot;&lt;br /&gt;
 # &amp;quot;Next workspace&amp;quot; shortcut&lt;br /&gt;
 KeySysWorkspaceNext=&amp;quot;F20&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Gnome/metacity ====&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.ubuntu.com/Keybindings Ubuntu guide].&lt;br /&gt;
&lt;br /&gt;
===Other Uses===&lt;br /&gt;
====Console tools configuraton====&lt;br /&gt;
To make the {{ibmkey|Forward|#494949}} and {{ibmkey|Backward|#494949}} keys useful in console, add this to your keymap ({{path|/etc/console/boottime.kmap.gz}} in {{Debian}}):&lt;br /&gt;
 keycode 158 = Decr_Console&lt;br /&gt;
 keycode 159 = Incr_Console&lt;br /&gt;
&lt;br /&gt;
Alternatively you can load this script (perhaps on system startup) to enable Backward/Forward button console (VT) switch:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 echo keycode 158 = Decr_Console | loadkeys&lt;br /&gt;
 echo keycode 159 = Incr_Console | loadkeys&lt;br /&gt;
&lt;br /&gt;
It should work with any distro.&lt;br /&gt;
&lt;br /&gt;
====Cycling through tabs====&lt;br /&gt;
In Gnome and Xfce4, Ctrl-PageUp/Ctrl-PageDown move to the previous/following open tab in all applications that have tabbed user interfaces (terminal emulator, web browser, ...). To make use of the {{ibmkey|Forward|#494949}} and {{ibmkey|Backward|#494949}} keys for this task, there're two possibilities.&lt;br /&gt;
&lt;br /&gt;
For both ways, you should map the keycodes 233 and 234 to XF86Back and XF86Forward as described in [[#xmodmap_configuration|xmodmap configuration]].&lt;br /&gt;
&lt;br /&gt;
=====Using xautomation=====&lt;br /&gt;
xautomation can be found [http://hoopajoo.net/projects/xautomation.html here].&lt;br /&gt;
&lt;br /&gt;
Create two files with permissions 755:&lt;br /&gt;
&lt;br /&gt;
{{path|/usr/local/bin/tp_back}}:&lt;br /&gt;
&amp;lt;bash&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
/usr/bin/xte 'keydown Control_L' 'keydown Page_Up' 'keyup Page_Up' 'keyup Control_L'&lt;br /&gt;
&amp;lt;/bash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{path|/usr/local/bin/tp_forward}}:&lt;br /&gt;
&amp;lt;bash&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
/usr/bin/xte 'keydown Control_L' 'keydown Page_Down' 'keyup Page_Down' 'keyup Control_L'&lt;br /&gt;
&amp;lt;/bash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use your desktop's keyboard shortcut editor to assign XF86Back as a shortcut for tp_back and XF86Forward as a shortcut for tp_forward.&lt;br /&gt;
&lt;br /&gt;
This should work in all distros and with all window managers (you might have to use other key combinations than Ctrl-PageUp and Ctrl-PageDown).&lt;br /&gt;
&lt;br /&gt;
=====Redirecting XF86Back/XF86Forward=====&lt;br /&gt;
Create {{path|/etc/X11/xkb/compat/thinkpad}}:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// $XFree86$&lt;br /&gt;
//  XFree86 special keysyms&lt;br /&gt;
default partial xkb_compatibility &amp;quot;basic&amp;quot;  {&lt;br /&gt;
    interpret.repeat= True;&lt;br /&gt;
&lt;br /&gt;
    interpret  XF86Back {&lt;br /&gt;
        action = Redirect(Key=&amp;lt;PGUP&amp;gt;, modifiers=Control);&lt;br /&gt;
    };&lt;br /&gt;
    interpret  XF86Forward {&lt;br /&gt;
        action = Redirect(Key=&amp;lt;PGDN&amp;gt;, modifiers=Control);&lt;br /&gt;
    };&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit {{path|/etc/X11/xkb/compat/complete}} and add &amp;lt;tt&amp;gt;'''augment &amp;quot;thinkpad&amp;quot;'''&amp;lt;/tt&amp;gt; so that it looks similar to the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// $XKeyboardConfig: xkbdesc/compat/complete,v 1.3 2005/10/17 00:42:11 svu Exp $&lt;br /&gt;
// $Xorg: complete,v 1.3 2000/08/17 19:54:34 cpqbld Exp $&lt;br /&gt;
default xkb_compatibility &amp;quot;complete&amp;quot;  {&lt;br /&gt;
    include &amp;quot;basic&amp;quot;&lt;br /&gt;
    augment &amp;quot;iso9995&amp;quot;&lt;br /&gt;
    augment &amp;quot;mousekeys&amp;quot;&lt;br /&gt;
    augment &amp;quot;accessx(full)&amp;quot;&lt;br /&gt;
    augment &amp;quot;misc&amp;quot;&lt;br /&gt;
    augment &amp;quot;xfree86&amp;quot;&lt;br /&gt;
    augment &amp;quot;level5&amp;quot;&lt;br /&gt;
    augment &amp;quot;thinkpad&amp;quot;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==External Sources==&lt;br /&gt;
*[http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-51537 IBMs page on configuring the ThinkPad buttons (ThinkPad, Access IBM, Mail, Search, and Home buttons) under Linux]&lt;br /&gt;
*[http://dqd.com/~mayoff/notes/thinkpad/dqdnavkeys/ Rob Mayoffs page on using IBM Keyboard Navigation Keys in Linux Mozilla and Firefox]&lt;br /&gt;
*[http://snarfed.org/space/thinkpad+keys+in+firefox Ryan Barretts blog article about using the browser keys in Firefox]&lt;br /&gt;
*[http://chaotika.org/~bluesceada/?page=soft&amp;amp;sub=thinkpad#acpibutn DennisG's help to get the ibm-acpi buttons do useful things] on a {{Z61e}} and possibly {{Z61m}}, {{Z61t}} and {{Z61p}}&lt;br /&gt;
&lt;br /&gt;
{{footnotes|&lt;br /&gt;
#Note that the associated functionality for Fn-F* key combinations is not consistent amongst all ThinkPads. We are maintaining [[Default meanings of special keys|a table of associated meanings]].&lt;br /&gt;
#if there are more than one tool listed, one is sufficient&lt;br /&gt;
#'full' means you can completely reassign any action to be triggered by the key, 'additional actions' means you can trigger actions in addition to the standard function of the key, which can not be changed.&lt;br /&gt;
#Thanks go to Ryan Barrett for writing the [http://snarfed.org/space/thinkpad+keys+in+firefox little howto] on [http://snarfed.org/space/start his blog].&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Low</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Intel_Core_2_Duo_(Penryn)&amp;diff=40549</id>
		<title>Intel Core 2 Duo (Penryn)</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Intel_Core_2_Duo_(Penryn)&amp;diff=40549"/>
		<updated>2009-01-10T10:06:44Z</updated>

		<summary type="html">&lt;p&gt;Low: fixed link to Merom&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;&amp;quot; | __TOC__&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Intel 2 Core is the successor of the [[Intel Core 2 Duo (Merom)]] processor. Unlike the Merom, Penryn uses the new 45um process which makes it cooler and uses less power.&lt;br /&gt;
&lt;br /&gt;
=Features=&lt;br /&gt;
*Dual Core&lt;br /&gt;
*EM64T&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Vanderpool#Intel_Virtualization_Technology_.28Intel_VT.29 Intel Virtualization Technology ]&lt;br /&gt;
*XD-Bit&lt;br /&gt;
*[[SIMD|MMX]], [[SIMD|SSE]], [[SIMD|SSE2]], [[SIMD|SSE3]], [[SIMD|SSSE3]], [[SIMD|SSE4.1]], XD Bit, iAMT2, Intel VT instruction sets&lt;br /&gt;
*800 or 1066 MHz FSB&lt;br /&gt;
*45 nm fabrication process&lt;br /&gt;
*3-6 MB L2-Cache&lt;br /&gt;
*[[SpeedStep|Enhanced Intel SpeedStep (EIST)]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Available Types and ThinkPads featuring them=&lt;br /&gt;
==Standard Voltage==&lt;br /&gt;
{| border=1 cellspacing=0 cellpadding=2&lt;br /&gt;
|- style=&amp;quot;background:#ffdead;white-space:nowrap;&amp;quot;&lt;br /&gt;
! Nr. || colspan=2 | Frequency (MHz) || L2 Cache || FSB (MHz)|| VT || colspan=2 | core Voltage (V) || colspan=2 | TDP (W) || ThinkPad Models&lt;br /&gt;
|- style=&amp;quot;background:#ffdead;&amp;quot;&lt;br /&gt;
! !!max. !! min. !! !! !! !! high !! low !! high freq !! low freq !! &lt;br /&gt;
|-&lt;br /&gt;
| T8300 || 2400 || 800 || 3MB || 800 || yes || 1.25 || 1 ? || ? || ? || {{X61}}, {{T61}}&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
[[Intel_Core_Solo_(Yonah)|Intel Core Solo (Yonah)]]&lt;br /&gt;
&lt;br /&gt;
[[Intel Core Duo (Yonah)]]&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
*[http://www.intel.com/products/processor_number/chart/core2duo.htm  Intel - Processor Numbers and Features]&lt;br /&gt;
*[http://en.wikipedia.org/wiki/List_of_Intel_Core_2_microprocessors#Mobile_processors Wikipedia - Intel Core 2 mobile microprocessors]&lt;br /&gt;
&lt;br /&gt;
[[Category:Components]]&lt;/div&gt;</summary>
		<author><name>Low</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Template:SL_Series&amp;diff=40543</id>
		<title>Template:SL Series</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Template:SL_Series&amp;diff=40543"/>
		<updated>2009-01-10T09:53:52Z</updated>

		<summary type="html">&lt;p&gt;Low: â†Created page with 'SL SeriesCategory:SL_Series'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[:Category:SL_Series|SL Series]][[Category:SL_Series]]&lt;/div&gt;</summary>
		<author><name>Low</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=ThinkPad_Advanced_Dock&amp;diff=40536</id>
		<title>ThinkPad Advanced Dock</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=ThinkPad_Advanced_Dock&amp;diff=40536"/>
		<updated>2009-01-10T09:27:17Z</updated>

		<summary type="html">&lt;p&gt;Low: Added R60 to the &amp;quot;supported TPs&amp;quot; list&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; | __TOC__&lt;br /&gt;
[[image:thinkpad-advanced-dock.gif|ThinkPad Advanced Dock]]&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; | &amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
== ThinkPad Advanced Dock ==&lt;br /&gt;
The ThinkPad Advanced Dock (Model # 250310U) contains basic pass-through connections for notebook ports, including power pass-through. It comes with an integrated power supply. Besides all the pass-through ports the ThinkPad Advanced Dock comes with an UltraBay, PCI Express slot, 6-in-1 media card reader, On/Off switch, key lock and a slot for a cable lock.&lt;br /&gt;
&lt;br /&gt;
=== Fix for Poweroff on Docking ===&lt;br /&gt;
http://www-307.ibm.com/pc/support/site.wss/MIGR-67382.html&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Passthrough ports:&lt;br /&gt;
** Ethernet (RJ45)&lt;br /&gt;
** Modem (RJ11)&lt;br /&gt;
** [[VGA Port|VGA]]&lt;br /&gt;
** DVI-D&lt;br /&gt;
** [[Serial Port|Serial (DB9-M)]]&lt;br /&gt;
** [[Parallel Port|Parallel (DB25-F)]]&lt;br /&gt;
** [[PS/2 Port|Combined PS/2 Mouse + Keyboard]]&lt;br /&gt;
** Audio Microphone-in&lt;br /&gt;
** Audio Headphone-out&lt;br /&gt;
** Digital Audio (S/PDIF)&lt;br /&gt;
* USB (5-ports)&lt;br /&gt;
* [[UltraBay|Ultrabay Enhanced]]&lt;br /&gt;
* PCI-Express slot &lt;br /&gt;
{{NOTE|&lt;br /&gt;
Only 1x speed, but 16x graphics cards will work. Speeds of the interface will be between PCI and AGP bus speeds&lt;br /&gt;
standard length - i.e. about an inch longer than the connector. Only thin cards will fit.  Many performance video cards with heat sink/fans are too thick.&lt;br /&gt;
&lt;br /&gt;
Validated Cards:&lt;br /&gt;
* &amp;lt;Insert Cards here&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
* 6-in-1 media card reader&lt;br /&gt;
** [[xD Card slot|xD-Picture]]&lt;br /&gt;
** [[SD Card slot|SD]]&lt;br /&gt;
** [[CF Card slot|Compact Flash]]&lt;br /&gt;
** [[SD Card slot|MultiMedia Card]]&lt;br /&gt;
** [[SmartMedia Card slot|SmartMedia]]&lt;br /&gt;
** [[MS Card slot|Sony Memory Stick]]&lt;br /&gt;
* Kensington Lock connector&lt;br /&gt;
* Key lock&lt;br /&gt;
* Power button&lt;br /&gt;
* Integrated power supply&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-61393 ThinkPad Advanced Dock - Publications]&lt;br /&gt;
&lt;br /&gt;
==IBM part numbers==&lt;br /&gt;
* order part number: P/N 250410U&lt;br /&gt;
* FRU part number: 26R9061&lt;br /&gt;
&lt;br /&gt;
== Supported ThinkPads ==&lt;br /&gt;
* ThinkPad {{T500}}, {{T400}}, {{T61}}, {{T61p}}, {{T60}}, {{T60p}}, {{W500}}, {{R500}}, {{R400}}, {{R60}}, {{R61}}, {{Z61}}, {{Z60}}, {{Z60m}}, {{Z60t}}, {{Z61p}}&lt;/div&gt;</summary>
		<author><name>Low</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Category:X200&amp;diff=40426</id>
		<title>Category:X200</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Category:X200&amp;diff=40426"/>
		<updated>2008-12-30T10:21:58Z</updated>

		<summary type="html">&lt;p&gt;Low: /* Notes */ grammar fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
=== ThinkPad X200 ===&lt;br /&gt;
This page gives an overview of all ThinkPad X200 related topics.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
==== Standard Features ====&lt;br /&gt;
* One of the following processors:&lt;br /&gt;
** [[Intel Core 2 Duo]] P8400, 2.26GHz, 3MB L2, 1066MHz FSB&lt;br /&gt;
** [[Intel Core 2 Duo]] P8600, 2.40GHz, 3MB L2, 1066MHz FSB&lt;br /&gt;
* Intel Graphics Media Accelerator 4500 MHD onboard graphics&lt;br /&gt;
** 12&amp;quot; CCFL with 1280×800 (WXGA, 200 nit)&lt;br /&gt;
* Support for up to 4GB DDR3-RAM [[PC3-8500]]&lt;br /&gt;
** As of 27 Aug 2008, 4GB option is most available and '''only''' if you select upgrade to Windows Vista Business 64&lt;br /&gt;
* One of the following hard drives:&lt;br /&gt;
** 80,160,250 GB SATA 2.5&amp;quot; 5400/7200RPM&lt;br /&gt;
** 320 GB 5400RPM&lt;br /&gt;
** 200 GB SATA 2.5&amp;quot; 7200RPM with [[Full Disk Encryption (FDE)]]&lt;br /&gt;
** 64,128 GB SATA 1.8&amp;quot; SSD&lt;br /&gt;
* ThinkPad X200 Ultrabase&lt;br /&gt;
** DVD-ROM, CD-RW/DVD-ROM, DVD Burner, Blu-ray&lt;br /&gt;
* One of the following expansion slots:&lt;br /&gt;
** 5-1 Media card Reader with Modem&lt;br /&gt;
** 3-1 Media card Reader without Modem (to save weight): SD, MMC, and another?&lt;br /&gt;
* [[Ethernet Controllers#Intel Gigabit (10/100/1000)|Intel Gigabit Ethernet Controller]]&lt;br /&gt;
* [[MiniPCI Express slot]] 1 with one of the following:&lt;br /&gt;
** [[ThinkPad 11b/g Wireless LAN Mini-PCI Express Adapter III]] (Atheros AR242x chipset)&lt;br /&gt;
** [[Intel Wifi Link 5100 (AGN)]]&lt;br /&gt;
** [[Intel Wifi Link 5300 (AGN)]]&lt;br /&gt;
* [[MiniPCI Express slot]] 2 with one of the following:&lt;br /&gt;
** Integrated WWAN with [[GPS]]&lt;br /&gt;
**: ''I believe this is a category, which includes the AT&amp;amp;T and Verizon cards below, rather than a distinct option.  Unconfirmed.  [[User:Mitchell|Mitchell]] 21:54, 28 October 2008 (CET)''&lt;br /&gt;
** [[Ericsson_F3507g_Mobile_Broadband_Module|Integrated Ultra Wide Band (UWB) for AT&amp;amp;T]]&lt;br /&gt;
** Integrated Ultra Wide Band (UWB) for Verizon&lt;br /&gt;
** WiMAX (late 2008)&lt;br /&gt;
** [[Intel® Turbo Memory hard drive cache]] 2GB&lt;br /&gt;
* Optional Features&lt;br /&gt;
** Integrated camera&lt;br /&gt;
** Integrated digital microphone&lt;br /&gt;
** Security cable slot&lt;br /&gt;
** [[Integrated Fingerprint Reader]]&lt;br /&gt;
* [[ThinkPad_Bluetooth_with_Enhanced_Data_Rate_(BDC-2)|Bluetooth]]&lt;br /&gt;
* [[Embedded Security Subsystem|IBM Embedded Security Subsystem 2.0]]&lt;br /&gt;
* [[Active Protection System|IBM Active Protection System]]&lt;br /&gt;
* TrackPoint '''only'''&lt;br /&gt;
* One of the following batteries&lt;br /&gt;
** 4-cell battery, 29 Wh (14.4 V, 2.0 Ah).  up to 3.3 hr, 1.34kg&lt;br /&gt;
** 4-cell *tablet, 29 Wh (14.4 V, 2.0 Ah).&lt;br /&gt;
** 6-cell battery, 56 Wh (10.8 V, 5.2 Ah).  up to 6.5 hr, 1.47kg (slightly elevates the back)&lt;br /&gt;
** 8-cell *tablet, 66 Wh (14.4 V, 4.6 Ah)&lt;br /&gt;
** 9-cell battery, 85 Wh (10.8 V, 7.8 Ah).  up to 9.8 hr, 1.63kg (protrudes out back 22.8cm/.9in)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Resources ====&lt;br /&gt;
* [http://shop.lenovo.com/ISS_Static/merchandising/US/PDFs/x200_datasheet.pdf X200 Technical Specifications (pdf)]&lt;br /&gt;
* [http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=lenovo&amp;amp;lndocid=MIGR-70149 Hardware Maintenance Manual (HMM) - ThinkPad X200, August 2008 Edition] ''(from [http://www.lenovo.com/us/en/ lenovo] / Support / User's guides &amp;amp; manuals)''&lt;br /&gt;
&lt;br /&gt;
==== Reviews ====&lt;br /&gt;
* [http://www.notebookreview.com/default.asp?newsID=4497 Notebookreview.com] 2008-07-15&lt;br /&gt;
* [http://www.laptopmag.com/review/laptops/lenovo-thinkpad-x200.aspx Laptopmag.com] 2007-07-14&lt;br /&gt;
* [http://reviews.cnet.com/laptops/lenovo-thinkpad-x200/4505-3121_7-33184078.html Cnet.com] 2008-08-14&lt;br /&gt;
&lt;br /&gt;
==== Notes ====&lt;br /&gt;
Sometimes even basic information is hard to find.  Here's a place for it.&lt;br /&gt;
* Lenovo is having fulfillment problems (2008 Q4).  Take estimated ship dates with a grain of salt.  Ordering from Lenovo seems to be working better than resellers.  Some resellers have yet to receive their first unit.  One person I know received an X200 within days (direct, replacing stolen machine), another has been waiting for ~2 months.&lt;br /&gt;
* The '''X200T does ''not'' support [http://en.wikipedia.org/wiki/Multi-touch Multi-touch]!'''.  &amp;quot;MultiTouch&amp;quot; is Lenovo's misleading way of saying you can use your finger, in addition to a pen.  The X200T uses Wacom's no-longer-cutting-edge non-multitouch screen.  Only one contact point is available in hardware.&lt;br /&gt;
*: Though, hypothetically, you could get two points from a MultiTouch screen, one from finger contact, and one from a stylus hovering over but not touching the screen - they are available in linux as separate devices.  It's not clear it's ever been done.&lt;br /&gt;
* [[GPS]] - If you have an optional WWAN card (AT&amp;amp;T or Verizon), you have GPS.  ''unconfirmed''&lt;br /&gt;
* The 5300 normally has 3 x 3 antennas.  Adding the webcam reduces this to 2 x 2.  ''unconfirmed''&lt;br /&gt;
*: Any other conflicts?  Bluetooth, etc?&lt;br /&gt;
* X200T configured with SSD do '''not''' include the [[Active Protection System]] accelerometer.  Despite alternate uses (theft deterrence).  Confirmed by Lenovo US sales phone, 2008-10. [[User:Mitchell|Mitchell]] 21:54, 28 October 2008 (CET)&lt;br /&gt;
* X200 configured with SSD include the [[Active Protection System]] accelerometer (at least 7454-CTO models shipped in Q4 2008). [[User:Vminko|Vminko]] 02:41, 30 December 2008 (CET)&lt;br /&gt;
* The [http://www-01.ibm.com/common/ssi/cgi-bin/ssialias?infotype=AN&amp;amp;subtype=CA&amp;amp;htmlfid=897/ENUS108-588&amp;amp;appname=lenovous&amp;amp;language=en X200 Tablet Sleeve] supports 4 and 8 cell batteries, but not 9 cell.  ''from announcement''&lt;br /&gt;
* The X200 does not have a touchpad.  For folks who really want one, a somewhat messy possibility ''might'' be [http://www.ergonomictouchpad.com/ergonomic_touchpad.php www.ergonomictouchpad.com] (never used - no endorsement) which looks vaguely like a [http://www.cirque.com/cpages/?page=17 Cirque TSM9925 Touchpad] with velcro and wire added.&lt;br /&gt;
* There can be a ''big'' cost difference between preconfigured units from VARs, and custom configured units from shop.lenovo.com, as of 2008-10-31 ([http://alltp.blogspot.com/2008/10/heckuva-deal-on-lenovo-x200-tablet-pc.html examples]).&lt;br /&gt;
*: But shipping delays may be even greater than when ordering directly from Lenovo (2008 Q4).&lt;br /&gt;
&lt;br /&gt;
[[Category:X Series]]&lt;/div&gt;</summary>
		<author><name>Low</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Talk:Harddrive_Upgrade&amp;diff=40372</id>
		<title>Talk:Harddrive Upgrade</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Talk:Harddrive_Upgrade&amp;diff=40372"/>
		<updated>2008-12-24T15:34:21Z</updated>

		<summary type="html">&lt;p&gt;Low: Why are Seagate Momentus drives recommended?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Why are Seagate Momentus drives recommended?&lt;br /&gt;
--[[User:Low|Low]] 16:34, 24 December 2008 (CET)&lt;/div&gt;</summary>
		<author><name>Low</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Category_talk:R61i&amp;diff=40367</id>
		<title>Category talk:R61i</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Category_talk:R61i&amp;diff=40367"/>
		<updated>2008-12-24T07:34:36Z</updated>

		<summary type="html">&lt;p&gt;Low: /* 4.2.2 Hotkeys that generated an event but did not work ootb */ - Hinto xmodmap&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 4.2 Hotkeys ==&lt;br /&gt;
&lt;br /&gt;
I got some of the Fn+Cursor-keys to work by doing some work within /etc/X11/xkb/symbols; it worked fine for me in the first set up (Ubuntu 8.04 amd64) though it kind of stopped working when I re-installed to 8.10 x86. What's working for me at the moment is the Play/Pause hotkey (globally; associated in amarok's global shortcuts) and the Previous/Next Track/Stop keys (only with amarok focussed).&lt;br /&gt;
&lt;br /&gt;
Here's a couple of pieces which still need assembling for a fully functional piece of advice:&lt;br /&gt;
&lt;br /&gt;
I created the file /etc/X11/xkb/symbols/lenovo-thinkpad-r61i-hotkeys with this content:&lt;br /&gt;
&lt;br /&gt;
   // Layout for Lenovo Thinkpad R61i's multimedia keys&lt;br /&gt;
   //&lt;br /&gt;
   // $XFree86: xc/programs/xkbcomp/symbols/lenovo-thinkpad-r61i-hotkeys,v 0.1 2008/11/14 19:00:34 Pumba Exp $&lt;br /&gt;
   &lt;br /&gt;
   default partial&lt;br /&gt;
   &lt;br /&gt;
   xkb_symbols &amp;quot;audio&amp;quot; {&lt;br /&gt;
   &lt;br /&gt;
   key &amp;lt;I20&amp;gt;    { [ XF86AudioMute ] };&lt;br /&gt;
   key &amp;lt;I2E&amp;gt;    { [ XF86AudioLowerVolume ] };&lt;br /&gt;
   key &amp;lt;I30&amp;gt;    { [ XF86AudioRaiseVolume ] };&lt;br /&gt;
   &lt;br /&gt;
   // Play, Pause&lt;br /&gt;
   key &amp;lt;I22&amp;gt;    { [ XF86AudioPlay ] };&lt;br /&gt;
   &lt;br /&gt;
   // Previous track&lt;br /&gt;
   key &amp;lt;I10&amp;gt;    { [ XF86AudioPrev ] };&lt;br /&gt;
   &lt;br /&gt;
   // Next track&lt;br /&gt;
   key &amp;lt;I19&amp;gt;    { [ XF86AudioNext ] };&lt;br /&gt;
   &lt;br /&gt;
   // Stop&lt;br /&gt;
   key &amp;lt;I24&amp;gt;    { [ XF86AudioStop ] };&lt;br /&gt;
   &lt;br /&gt;
   };&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then I edited &amp;quot;my&amp;quot; language's file in /etc/X11/xkb/symbols (the one that looks like your country code, probably) to include the lines I just wrote:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   [...]&lt;br /&gt;
   &lt;br /&gt;
   default&lt;br /&gt;
   &lt;br /&gt;
   xkb_symbols &amp;quot;basic&amp;quot; {&lt;br /&gt;
   &lt;br /&gt;
   &lt;br /&gt;
   include &amp;quot;latin(type4)&amp;quot;&lt;br /&gt;
   include &amp;quot;lenovo-thinkpad-r61i-hotkeys(audio)&amp;quot;&lt;br /&gt;
   &lt;br /&gt;
   [...]&lt;br /&gt;
   &lt;br /&gt;
   };&lt;br /&gt;
&lt;br /&gt;
If I could only remember how I figured out the &amp;quot;key &amp;lt;I#&amp;gt;&amp;quot; part... It had something to do with xev and comparing with some other files...&lt;br /&gt;
&lt;br /&gt;
=== 4.2.1 Hotkeys that worked out-of-the-box ===&lt;br /&gt;
&lt;br /&gt;
anyway, here's the keys that worked ootb for me:&lt;br /&gt;
&lt;br /&gt;
{{key|Fn}}+{{key|Page Up}} -- small light on the edge of the screen. Seems to be built into the hardware&lt;br /&gt;
&lt;br /&gt;
{{key|Fn}}+{{key|Pos 1}}&lt;br /&gt;
&lt;br /&gt;
{{key|Fn}}+{{key|End}} -- increase/dim screen brightness (KDE)&lt;br /&gt;
&lt;br /&gt;
{{key|Fn}}+{{key|Roll}} -- Num lock/enables &amp;quot;numeric keypad&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{key|Fn}}+{{key|F5 }} -- Bluetooth (plus Wireless?)&lt;br /&gt;
&lt;br /&gt;
{{key|Fn}}+{{key|F12}} -- Suspend to RAM&lt;br /&gt;
&lt;br /&gt;
=== 4.2.2 Hotkeys that generated an event but did not work ootb ===&lt;br /&gt;
&lt;br /&gt;
{{key|Fn}}+{{key|F2}} -- Lock Screen (generates event: XF86AudioMute)&lt;br /&gt;
&lt;br /&gt;
{{key|Fn}}+{{key|F4}} -- Sleep (generates event: XF86Sleep)&lt;br /&gt;
&lt;br /&gt;
{{key|Fn}} -- when being held for &amp;quot;a moment&amp;quot;: generates event &amp;quot;XF86WakeUp&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
{{HELP|What does the xev output &amp;quot;XKeysymToKeycode&amp;quot; mean? Why does it sometimes return a different keycode than the key pressed actually generated? And is there any way of changing this?}}&lt;br /&gt;
{{HINT|Does that have anything to do with a remapping of keys via xmodmap? Check $ xmodmap -pke  for details. Cheers, Low}}&lt;/div&gt;</summary>
		<author><name>Low</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=List_of_DMI_IDs&amp;diff=40253</id>
		<title>List of DMI IDs</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=List_of_DMI_IDs&amp;diff=40253"/>
		<updated>2008-12-15T18:32:13Z</updated>

		<summary type="html">&lt;p&gt;Low: /* R series */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;&amp;quot; | __TOC__&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
This page maintains a database of [http://en.wikipedia.org/wiki/Desktop_Management_Interface DMI] information which can be used to identify ThinkPad models. It is intended as an aid for driver development.&lt;br /&gt;
{{HELP|We need more information about older models, especially those released before 2004. Please [[#Adding_entries|add your model]] to the database.}}&lt;br /&gt;
{{NOTE|If your ThinkPad is not using the [[BIOS Upgrade Downloads|latest BIOS]], and you would be willing to [[BIOS Upgrade|upgrade your BIOS]], please add your ThinkPad to this table twice: '''before''' and '''after''' the BIOS upgrade.  This information helps us a great deal, so your contribution would be very appreciated.}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==DMI ID database==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 80%&amp;quot;&amp;gt;&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Model&lt;br /&gt;
! &amp;lt;tt&amp;gt;system-&amp;lt;br /&amp;gt;manufa&amp;lt;br /&amp;gt;cturer&amp;lt;/tt&amp;gt;&lt;br /&gt;
! &amp;lt;tt&amp;gt;system-&amp;lt;br /&amp;gt;product-&amp;lt;br /&amp;gt;name&amp;lt;/tt&amp;gt;&lt;br /&gt;
! &amp;lt;tt&amp;gt;system-&amp;lt;br /&amp;gt;version&amp;lt;/tt&amp;gt;&lt;br /&gt;
! &amp;lt;tt&amp;gt;baseboard-&amp;lt;br /&amp;gt;manufa&amp;lt;br /&amp;gt;cturer&amp;lt;/tt&amp;gt;&lt;br /&gt;
! &amp;lt;tt&amp;gt;baseboard-&amp;lt;br /&amp;gt;product-&amp;lt;br /&amp;gt;name&amp;lt;/tt&amp;gt;&lt;br /&gt;
! &amp;lt;tt&amp;gt;baseboard-&amp;lt;br /&amp;gt;version&amp;lt;/tt&amp;gt;&lt;br /&gt;
! &amp;lt;tt&amp;gt;chassis-&amp;lt;br /&amp;gt;manufa&amp;lt;br /&amp;gt;cturer&amp;lt;/tt&amp;gt;&lt;br /&gt;
! &amp;lt;tt&amp;gt;chassis-&amp;lt;br /&amp;gt;version&amp;lt;/tt&amp;gt;&lt;br /&gt;
! &amp;lt;tt&amp;gt;bios-&amp;lt;br /&amp;gt;vendor&amp;lt;/tt&amp;gt;&lt;br /&gt;
! &amp;lt;tt&amp;gt;bios-&amp;lt;br /&amp;gt;version&amp;lt;/tt&amp;gt;&lt;br /&gt;
! &amp;lt;tt&amp;gt;bios-&amp;lt;br /&amp;gt;release-&amp;lt;br /&amp;gt;date&amp;lt;/tt&amp;gt;&lt;br /&gt;
! Embedded controller&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
! colspan=14 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
====Numbered series====&lt;br /&gt;
|-&lt;br /&gt;
| {{600E}} 2645-5AU&lt;br /&gt;
|| IBM || 26455AU || Not Available || IBM || 26455AU || Not Available || IBM || Not Available || IBM || INET36WW || 11/20/1999&lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{600X}} 2645-5FU&lt;br /&gt;
|| IBM || 26455FU || Not Available || IBM || 26455FU || Not Available || IBM || Not Available || IBM || INET55WW || 11/30/1999&lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=14 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====A series====&lt;br /&gt;
|-&lt;br /&gt;
| {{A21m}} 2628-FSG&lt;br /&gt;
|| IBM || 2628FSG || Not Available || IBM || 2628FSG || Not Available || IBM || Not Available || IBM || KXET24WW (1.02b) || 12/19/2000 &lt;br /&gt;
|| &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{A21m}} 2628-FSG&lt;br /&gt;
|| IBM || 2628FSG || Not Available || IBM || 2628FSG || Not Available || IBM || Not Available || IBM || KXET36WW (1.09 ) || 05/08/2003 &lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{A21m}} 2628-GTU&lt;br /&gt;
|| IBM || 2628GTU || Not Available || IBM || 2628GTU || Not Available || IBM || Not Available || IBM || KXET29WW (1.03d) || 03/21/2001 &lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{A22p}} 2629-USG&lt;br /&gt;
|| IBM || 2629USG || Not Available || IBM || 2629USG || Not Available || IBM || Not Available || IBM || KYET36WW (1.09a) || 10/17/2002 &lt;br /&gt;
||&lt;br /&gt;
|| {{WARN|Outdated BIOS}}&lt;br /&gt;
|-&lt;br /&gt;
| {{A31}} 2652-PBU&lt;br /&gt;
|| IBM || 2652PBU || Not Available || IBM || 2652PBU || Not Available || IBM || Not Available || IBM || 1NET15WW (1.09 ) || 04/06/2005&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1NHT04WW-1.01    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{A31p}} 2653H6U&lt;br /&gt;
|| IBM || 2653H6U || Not Available || IBM || 2653H6U || Not Available || IBM || Not Available || IBM || 1GET31WW (1.03 ) || 07/23/2002&lt;br /&gt;
||&lt;br /&gt;
|| {{WARN|Missing EC string, extremely outdated BIOS}}{{HELP|We need a report to know if the latest BIOS fixes the missing EC string}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=14 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====G series====&lt;br /&gt;
|-&lt;br /&gt;
| {{G41}} 2881-75M&lt;br /&gt;
|| IBM || 288175M || ThinkPad G41 || IBM || 288175M || Not Available || IBM || Not Available || IBM || 1XET47WW (1.06 ) || 01/14/2005&lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=14 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
====R series====&lt;br /&gt;
|-&lt;br /&gt;
| {{R40}} 2681-5UU&lt;br /&gt;
|| IBM || 26815UU || Not Available || IBM || 26815UU || Not Available || IBM || Not Available || IBM || 1OET57WW (1.23 ) || 03/23/2005 &lt;br /&gt;
||&lt;br /&gt;
|| {{WARN|Outdated BIOS}}&lt;br /&gt;
|-&lt;br /&gt;
| {{R40}} 2681-HSG&lt;br /&gt;
|| IBM || 2681HSG || Not Available || IBM || 2681HSG || Not Available || IBM || Not Available || IBM || 1OET61WW (1.27 ) || 06/29/2006&lt;br /&gt;
||&lt;br /&gt;
|| {{WARN|Outdated BIOS}}&lt;br /&gt;
|-&lt;br /&gt;
| {{R40}} 2722-B3G&lt;br /&gt;
|| IBM || 2722B3G || Not Available || IBM || 2722B3G || Not Available || IBM || Not Available || IBM || 1PET62WW (1.30 ) || 09/29/2005&lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R40}} 2897-B4U&lt;br /&gt;
|| IBM || 2897B4U || Not Available || IBM || 2897B4U || Not Available || IBM || Not Available || IBM || 1PET52WW (1.20 ) || 03/03/2004&lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R40e}} 2684-L8G&lt;br /&gt;
|| IBM || 2897B4U || Not Available || IBM || 2897B4U || Not Available || IBM || Not Available || IBM || 1SET62WW (1.30 ) || 07/09/2004&lt;br /&gt;
||&lt;br /&gt;
|| {{WARN|Outdated BIOS}}&lt;br /&gt;
|-&lt;br /&gt;
| {{R50}} 1829-7QG&lt;br /&gt;
|| IBM || 0123456 || ThinkPad R50  || IBM || 0123456 || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|{{R50e}} 1834-JAG&lt;br /&gt;
|| IBM || 1834JAG || ThinkPad R50e || IBM || 1834JAG || Not Available || IBM || Not Available || IBM || 1WET82WW (2.02 ) || 02/21/2005&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0022, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1VHT28WW-1.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|{{R50p}} 1832-2AG&lt;br /&gt;
|| IBM || 18322AG || ThinkPad R50p || IBM || 18322AG || Not Available || IBM || Not Available || IBM || 1RETC2WW (3.03 ) || 04/07/2004 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 bytes  String 1: IBM ThinkPad Embedded Controller -[1RHT66WW-3.00a   ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R51}} 1829-DRG&lt;br /&gt;
|| IBM || 1829DRG || ThinkPad R51 || IBM || 1829DRG || Not Available || IBM || Not Available || IBM || 1RETC2WW (3.03 ) || 04/07/2004&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1RHT66WW-3.00a   ]-&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R51}} 1829-9MG&lt;br /&gt;
|| IBM || 18299MG || ThinkPad R51 || IBM || 18299MG || Not Available || IBM || Not Available || IBM || 1RETDOWW (3.20 ) || 02/27/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;     String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R51}} 1829-L7G&lt;br /&gt;
|| IBM || 1829L7G || ThinkPad R51 || IBM || 1829L7G || Not Available || IBM || Not Available || IBM || 1RETDNWW (3.19 ) || 10/13/2005&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;     String 1: IBM ThinkPad Embedded Controller -[1RHT70WW-3.03    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|- &lt;br /&gt;
| {{R51}} [[1830-DG4]]&lt;br /&gt;
|| IBM || 1830DG4 || ThinkPad R51 || IBM || 1830DG4 || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R51}} [[1830-DG4]]&lt;br /&gt;
|| IBM || 1830DG4 || ThinkPad R51 || IBM || 1830DG4 || Not Available || IBM || Not Available || IBM || 1RETDRWW (3.23 ) || 06/18/2007&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R51}} 1836-GEU&lt;br /&gt;
|| IBM || 1836GEU || ThinkPad R51 || IBM || 1836GEU || Not Available || IBM || Not Available || IBM || 1RETDLWW  (3.17 ) || 07/27/2005&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 bytes. String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R51}} 2883-ELU&lt;br /&gt;
|| IBM || 2883ELU || ThinkPad R51 || IBM || 2883ELU || Not Available || IBM || Not Available || IBM || 1VET69WW (1.27 ) || 03/03/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;     String 1: IBM ThinkPad Embedded Controller -[1VHT28WW-1.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R52}} 1846-AQG&lt;br /&gt;
|| IBM || 1846AQG || ThinkPad H || IBM || 1846AQG || Not Available || IBM || Not Available || IBM || 76ET58WW (1.18 ) || 07/19/2005 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 bytes	String 1: IBM ThinkPad Embedded Controller -[76HT14WW-1.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| {{NOTE|Weird system version, this bug is known fixed in latest BIOS}}&lt;br /&gt;
|-&lt;br /&gt;
| {{R52}} 1846-AQG&lt;br /&gt;
|| IBM || 1846AQG || ThinkPad R52p || IBM || 1846AQG || Not Available || IBM || Not Available || IBM || 76ET68WW (1.28 ) || 11/15/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[76HT16WW-1.06    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R52}} 1846-AQG&lt;br /&gt;
|| IBM || 1846AQG || ThinkPad R52p || IBM || 1846AQG || Not Available || IBM || Not Available || IBM || 76ET69WW (1.29 ) || 12/06/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[76HT16WW-1.06    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R52}} 1847-CTO&lt;br /&gt;
|| IBM || 1847W15 || ThinkPad R52 || IBM || 1847W15 || Not Available || IBM || Not Available || IBM || 76ET69WW (1.29 ) || 12/06/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[76HT16WW-1.06    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R52}} 1847-W62&lt;br /&gt;
|| IBM || 1847W62 || ThinkPad .    || IBM || 1847W62 || Not Available || IBM || Not Available || IBM || 76ET58WW (1.18 ) || 07/19/2005 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[76HT14WW-1.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| {{NOTE|Weird system version, this bug is known fixed in latest BIOS}}&lt;br /&gt;
|-&lt;br /&gt;
| {{R52}} 1847-W62&lt;br /&gt;
|| IBM || 1847W62 || ThinkPad R52  || IBM || 1847W62 || Not Available || IBM || Not Available || IBM || 76ET65WW (1.25 ) || 05/18/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[76HT16WW-1.06    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R52}} 1858-6MM&lt;br /&gt;
|| IBM || 18586MM || ThinkPad R52 || IBM || 18586MM || Not Available || IBM || Not Available || IBM || 70ET40WW (1.04 ) || 06/02/2005&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 bytes  String 1: IBM ThinkPad Embedded Controller -[70HT26WW-1.03    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R52}} 1858-6SM&lt;br /&gt;
|| IBM || 18586SM || ThinkPad R52 || IBM || 18586SM || Not Available || IBM || Not Available || IBM || 70ET57WW (1.17 ) || 07/15/2005 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[70HT26WW-1.03    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R52}} 1846-4CG&lt;br /&gt;
|| IBM || 18464CG || ThinkPad R52 || IBM || 18464CG || Not Available || IBM || Not Available || IBM || 76ET65WW (1.25 ) || 05/18/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[76HT15WW-1.05    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R52}} 1846-4CG&lt;br /&gt;
|| IBM || 18464CG || ThinkPad R52 || IBM || 18464CG || Not Available || IBM || Not Available || IBM || 76ET58WW (1.18 ) || 07/19/2005&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[76HT16WW-1.06    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R52}} 1846-B5G&lt;br /&gt;
|| IBM || 1846B5G || ThinkPad H    || IBM || 1846B5G || Not Available || IBM || Not Available || IBM || 76ET58WW (1.18 ) || 07/19/2005 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 bytes  String 1: IBM ThinkPad Embedded Controller -[76HT14WW-1.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R60e}} 0657-4TG&lt;br /&gt;
|| LENOVO || 06574TG || ThinkPad R60e || LENOVO || 06574TG || Not Available || LENOVO || Not Available || LENOVO || 7EET18WW (1.04 ) || 07/28/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 bytes  String 1: IBM ThinkPad Embedded Controller -[7EHT13WW-1.05    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R60}} 9456-6FG&lt;br /&gt;
|| LENOVO || 94566FG || ThinkPad R60 || LENOVO || 94566FG || Not Available || LENOVO || Not Available || LENOVO || 7CET50WW (1.05 ) || 07/28/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7CHT19WW-1.07    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R60}} 9456-6FG&lt;br /&gt;
|| LENOVO || 94566FG || ThinkPad R60 || LENOVO || 94566FG || Not Available || LENOVO || Not Available || LENOVO || 7CETB7WW (2.07 ) || 11/13/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7CHT21WW-1.09    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R60}} 9461-54G&lt;br /&gt;
|| LENOVO || 946154G || ThinkPad R60 || LENOVO || 946154G || Not Available || LENOVO || Not Available || LENOVO || 7CET50WW (1.05 ) || 07/28/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7CHT19WW-1.07    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R60}} 9461-54G&lt;br /&gt;
|| LENOVO || 946154G || ThinkPad R60 || LENOVO || 946154G || Not Available || LENOVO || Not Available || LENOVO || 7CETC1WW (2.11 ) || 01/09/2007 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7CHT21WW-1.09    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| {{NOTE|With this bios version the brightness control buttons don't work for kernel &amp;lt; 2.6.20}}&lt;br /&gt;
|-&lt;br /&gt;
| {{R60}} 9460MR2&lt;br /&gt;
|| LENOVO || 9460MR2 || ThinkPad R60 || LENOVO || 9460MR2 || Not Available || LENOVO || Not Available || LENOVO || 7CETC6WW (2.16 ) || 04/18/2007 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 bytes  String 1: IBM ThinkPad Embedded Controller -[7CHT21WW-1.09    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R60}} 9461-DXG&lt;br /&gt;
|| LENOVO || 9461DXG || ThinkPad R60 || LENOVO || 9461DXG || Not Available || LENOVO || Not Available || LENOVO || 7CETB6WW (2.06 ) || 10/16/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7CHT21WW-1.09    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R60}} 9461-DXG&lt;br /&gt;
|| LENOVO || 9461DXG || ThinkPad R60 || LENOVO || 9461DXG || Not Available || LENOVO || Not Available || LENOVO || 7CETD2WW (2.22 ) || 05/28/2008 || &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7CHT22WW-1.10    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R60}} 9462-GAG&lt;br /&gt;
|| LENOVO || 9462GAG || ThinkPad R60 || LENOVO || 9462GAG || Not Available || LENOVO || Not Available || LENOVO || 7CETB5WW (2.05 ) || 10/13/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7CHT21WW-1.09    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R61}} 8918-5QG&lt;br /&gt;
|| LENOVO || 89185QG || ThinkPad R61 || LENOVO || 89185QG || Not Available || LENOVO || Not Available || LENOVO || 7KETA7WW (2.07 ) || 12/06/2007&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R61}} 8919-W4P&lt;br /&gt;
|| LENOVO || 8919W4P || ThinkPad R61 || LENOVO || 8919W4P || Not Available || LENOVO || Not Available || LENOVO || 7KET76WW (1.26 ) || 10/18/2007&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7KHT22WW-1.06    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| {{NOTE|According to the sticker on the bottom of the notebook as well as according to Lenovo web it is 8919-CTO subtype}}&lt;br /&gt;
|-&lt;br /&gt;
| {{R61}} 8919-W6X&lt;br /&gt;
|| LENOVO || 8919W6X || ThinkPad R61 || LENOVO || 8919W6X || Not Available || LENOVO || Not Available || LENOVO || 7KET71WW (1.21 ) || 08/22/2007 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7KHT22WW-1.06    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|| LENOVO || 8919W6X || ThinkPad R61 || LENOVO || 8919W6X || Not Available || LENOVO || Not Available || LENOVO || 7KETB9WW (2.19 ) || 06/05/2008 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R61}} 8919-DFG&lt;br /&gt;
|| LENOVO || 8918DFG || ThinkPad R61 || LENOVO || 8918DFG || Not Available || LENOVO || Not Available || LENOVO || 7KETA9WW (2.09 ) || 12/27/2007&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| {{R61}} 8943-DMG&lt;br /&gt;
|| LENOVO || 8943DMG || ThinkPad R61 || LENOVO || 8943DMG || Not Available || LENOVO || Not Available || LENOVO || 7QET34WW (1.16 ) || 03/24/2008&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7QHT15WW-1.00    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R61}} 7733-1ES&lt;br /&gt;
|| LENOVO || 77331ES || ThinkPad R61 || LENOVO || 77331ES || Not Available || LENOVO || Not Available || LENOVO || 7LETB0WW (2.10 ) || 01/21/2008&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R61}} 7733-1ES&lt;br /&gt;
|| LENOVO || 77331ES || ThinkPad R61 || LENOVO || 77331ES || Not Available || LENOVO || Not Available || LENOVO || 7LETB4WW (2.14 ) || 03/24/2008 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R61i}} 7650-D7G&lt;br /&gt;
|| LENOVO || 7650D7G || ThinkPad R61e || LENOVO || 7650D7G || Not Available || LENOVO || Not Available || LENOVO || 7PETB0WW (2.10 ) || 01/21/2008 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R400}} 7439-A85&lt;br /&gt;
|| LENOVO || 7439A85 || ThinkPad R400 || LENOVO || 7439A85 || Not Available || LENOVO || Not Available || LENOVO || 7UET45WW (1.15 ) || 09/08/2008&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7VHT12WW-1.01    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=14 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====S series====&lt;br /&gt;
|-&lt;br /&gt;
| {{s30}} 2639-4WJ&lt;br /&gt;
|| IBM || 26394WJ || Not Available || IBM || 2609BS1 || Not Available || IBM || Not Available || IBM || 18ET45WW (1.45) || 07/10/2001&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=14 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====SL series====&lt;br /&gt;
|-&lt;br /&gt;
| {{SL500}} 2746-3ZG&lt;br /&gt;
|| LENOVO.                        || 27463ZG || ThinkPad SL500 || LENOVO                        || BOXSTER    || LENOVO 6AET42WW || LENOVO                        || LENOVO 6AET42WW || LENOVO || 6AET42WW || 08/04/2008 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| {{WARN|IdeaPad EC and BIOS.  This is an IdeaPad in disguise.}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=14 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====T series====&lt;br /&gt;
|-&lt;br /&gt;
| {{T20}} 2647-UC2&lt;br /&gt;
|| IBM || 2647UC2 || Not Available || IBM || 2647UC2 || Not Available || IBM || Not Available || IBM || IYET45WW (1.08a) || 12/21/1999&lt;br /&gt;
||&lt;br /&gt;
|| {{WARN|Very outdated BIOS}}&lt;br /&gt;
|-&lt;br /&gt;
| {{T21}} 2647-8AU&lt;br /&gt;
|| IBM || 26478AU || Not Available || IBM || 26478AU || Not Available || IBM || Not Available || IBM || KZET34WW (1.16 ) || 04/28/2004&lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T22}} 2647-4EG&lt;br /&gt;
|| IBM || 26474EG || Not Available || IBM || 26474EG || Not Available || IBM || Not Available || IBM || 16ET31WW (1.11 ) || 03/20/2003 &lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T22}} 2647-8EU&lt;br /&gt;
|| IBM || 26478EU || Not Available || IBM || 26478EU || Not Available || IBM || Not Available || IBM || 16ET32WW (1.12 ) || 04/27/2004&lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|- &lt;br /&gt;
| {{T23}} 2647-4NU&lt;br /&gt;
|| IBM || 26474NU || Not Available || IBM || 26474NU || Not Available || IBM || Not Available || IBM || 1AET62WW (1.18 ) || 07/06/2004&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0024, DMI type 11, 5 bytes  String 1: IBM ThinkPad Embedded Controller -[1AHT23WW-1.06a   ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T23}} 2647-8MG&lt;br /&gt;
|| IBM || 26478MG || Not Available || IBM || 26478MG || Not Available || IBM || Not Available || IBM || 1AET56WW (1.13 ) || 07/02/2002&lt;br /&gt;
||&lt;br /&gt;
|| {{NOTE|Missing EC string, this bug is known to be fixed in latest BIOS}}&lt;br /&gt;
|-&lt;br /&gt;
| {{T23}} 2647-8MG&lt;br /&gt;
|| IBM || 26478MG || Not Available || IBM || 26478MG || Not Available || IBM || Not Available || IBM || 1AET62WW (1.18 ) || 07/06/2004&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0024, DMI type 11, 5 bytes  String 1: IBM ThinkPad Embedded Controller -[1AHT23WW-1.06a]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T30}} 2366-85G&lt;br /&gt;
|| IBM || 236685G || Not Available || IBM || 236685G || Not Available || IBM || Not Available || IBM || 1IET69WW (2.08 ) || 06/11/2004 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;     String 1: IBM ThinkPad Embedded Controller -[1IHT18WW-1.05    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T30}} 2366-GU1&lt;br /&gt;
|| IBM || 2366GU1 || Not Available || IBM || 2366GU1 || Not Available || IBM || Not Available || IBM || 1IET69WW (2.08 ) || 06/11/2004&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0024, DMI type 11, 5 bytes  String 1: IBM ThinkPad Embedded Controller -[1IHT19WW-1.06    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T30}} 2366-JBU&lt;br /&gt;
|| IBM || 2366JBU || Not Available || IBM || 2366JBU || Not Available || IBM || Not Available || IBM || 1IET71WW (2.10 ) || 06/16/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0024, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1IHT20WW-1.07    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T40}} 2378-D2U&lt;br /&gt;
|| IBM || 2378D2U || ThinkPad T40 || IBM || 2378D2U || Not Available || IBM || Not Available || IBM || 1RETC2WW (3.03 ) || 04/07/2004&lt;br /&gt;
|| &lt;br /&gt;
|| {{NOTE|Missing EC string, this bug is known to be fixed in latest BIOS}}&lt;br /&gt;
|-&lt;br /&gt;
| {{T40p}} 2373-G1G&lt;br /&gt;
|| IBM || 2373G1G || ThinkPad T40p || IBM || 2373G1G || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;     String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T41}} 2373-W63&lt;br /&gt;
|| IBM || 2373W63 || ThinkPad T41  || IBM || 2373W63 || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T41}} 2373-XNX&lt;br /&gt;
|| IBM || 2373XNX || ThinkPad T41  || IBM || 2373XNX || Not Available || IBM || Not Available || IBM || 1RETDOWW (3.20 ) || 02/27/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;     String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T41}} 2373-2FG&lt;br /&gt;
|| IBM || 23732FG || ThinkPad T41 || IBM || 23732FG || Not Available || IBM || Not Available || IBM || 1RET84WW (2.11 ) || 10/30/2003&lt;br /&gt;
||&lt;br /&gt;
|| {{NOTE|Missing EC string, this bug is known to be fixed in latest BIOS}}&lt;br /&gt;
|-&lt;br /&gt;
| {{T41}} 2374-312&lt;br /&gt;
|| IBM || 2374312 || ThinkPad T41  || IBM || 2374312 || Not Available || IBM || Not Available || IBM || 1RETDRWW (3.23 ) || 06/18/2007 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T41}} 2379-DJU&lt;br /&gt;
|| IBM || 2379DJU || ThinkPad T41  || IBM || 2379DJU || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T41p}} 2373-GHG &lt;br /&gt;
|| IBM || 2373GHG || ThinkPad T41p || IBM || 2373GHG || Not Available || IBM || Not Available || IBM || 1RETDIWW (3.14 ) || 01/20/2005&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T41p}} 2373-GEG&lt;br /&gt;
|| IBM || 2373GEG || ThinkPad T41p || IBM || 2373GEG || Not Available || IBM || Not Available || IBM || 1RETDNWW (3.19 ) || 10/13/2005&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt; Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T41p}} 2373-GJJ&lt;br /&gt;
|| IBM || 2373GJJ || ThinkPad T41p || IBM || 2373GJJ || Not Available || IBM || Not Available || IBM || 1RETDOWW (3.20 ) || 02/27/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T42}} 2373-FWG&lt;br /&gt;
|| IBM || 2373FWG || ThinkPad T42 || IBM || 2373FWG || Not Available || IBM || Not Available || IBM || 1RETDHWW (3.13 ) || 10/29/2004&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;     String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T42}} 2373-M1G&lt;br /&gt;
|| IBM || 2373M1G || ThinkPad T42 || IBM || 2373M1G || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;     String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|- &lt;br /&gt;
| {{T42}} 2374-WEH&lt;br /&gt;
|| IBM || 2374WEH || ThinkPad T42 || IBM || 2374WEH || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T42}} 2378-FVU&lt;br /&gt;
|| IBM || 2378FVU || ThinkPad T42 || IBM || 2378FVU || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T42p}} 2373-KXU&lt;br /&gt;
|| IBM || 2373KXU || ThinkPad T42p || IBM || 2373KXU || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T42p}} 2373-KUU&lt;br /&gt;
|| IBM || 2373KUU || ThinkPad T42p || IBM || 2373KUU || Not Available || IBM || Not Available || IBM || 1RETDMWW (3.18 ) || 09/15/2005&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;     String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T42p}} 2373-GYG&lt;br /&gt;
|| IBM || 2373GYG || ThinkPad T42p || IBM || 2373GYG || Not Available || IBM || Not Available || IBM || 1RETDOWW (3.20 ) || 02/27/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;     String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T42p}} 2374-CP5&lt;br /&gt;
|| IBM || 2374CP5 || ThinkPad T42p || IBM || 2374CP5 || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T42p}} 2379-DYU&lt;br /&gt;
|| IBM || 2379DYU || ThinkPad T42p || IBM || 2379DYU || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 bytes  String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T42p}} 2372-Q2G&lt;br /&gt;
|| IBM || 2373Q2G || ThinkPad T42p || IBM || 2373Q2G || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T43}} 1871-4AG&lt;br /&gt;
|| IBM || 18714AG || ThinkPad T43 || IBM || 18714AG || Not Available || IBM || Not Available || IBM || 70ET64WW (1.24 ) || 02/13/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[70HT27WW-1.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T43}} 1871-F1G&lt;br /&gt;
|| IBM || 1871F1G || ThinkPad T43 || IBM || 1871F1G || Not Available || IBM || Not Available || IBM || 70ET61WW (1.21 ) || 11/01/2005&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[70HT26WW-1.03    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T43}} 2686-DGU&lt;br /&gt;
|| IBM || 2686DGU || ThinkPad T43 || IBM || 2686DGU || Not Available || IBM || Not Available || IBM || 1YET62WW (1.27 ) || 05/18/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 bytes  String 1: IBM ThinkPad Embedded Controller -[1YHT29WW-1.06    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T43}} 2669-WE5&lt;br /&gt;
|| IBM || 2669WE5 || ThinkPad T43 || IBM || 2669WE5 || Not Available || IBM || Not Available || IBM || 1YET56WW (1.21 ) || 07/06/2005 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;String 1: IBM ThinkPad Embedded Controller -[1YHT26WW-1.03    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| {{NOTE|User reports this is really a 2669-CEU with 1GB RAM + BlueTooth, and not a 2669-WE5 (unverified if this makes sense)}}&lt;br /&gt;
|-&lt;br /&gt;
| {{T43p}} 2668-G2G&lt;br /&gt;
|| IBM || 2668G2G || ThinkPad T43p || IBM || 2668G2G || Not Available || IBM || Not Available || IBM || 1YET47WW (1.08 ) || 06/09/2005 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;     String 1: IBM ThinkPad Embedded Controller -[1YHT26WW-1.03    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T43p}} 2687-D5U&lt;br /&gt;
|| IBM || 2687D5U || ThinkPad T43p || IBM || 2687D5U || Not Available || IBM || Not Available || IBM || 1YET59WW (1.24 ) || 11/07/2005&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1YHT26WW-1.03    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T60}} 1951-24G&lt;br /&gt;
|| LENOVO || 195124G || ThinkPad T60 || LENOVO || 195124G || Not Available || LENOVO || Not Available || LENOVO || 79ET65WW (1.09a) || 07/27/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[79HT48WW-1.05b   ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T60}} 1952-W5R&lt;br /&gt;
|| LENOVO || 1952W5R || ThinkPad T60 || LENOVO || 1952W5R || Not Available || LENOVO || Not Available || LENOVO || 79ET61WW (1.06 ) || 05/24/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[79HT45WW-1.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T60}} 1952-W5R&lt;br /&gt;
|| LENOVO || 1952W5R || ThinkPad T60 || LENOVO || 1952W5R || Not Available || LENOVO || Not Available || LENOVO || 79ETD2WW (2.12 ) || 04/12/2007&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[79HT50WW-1.07    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T60}} 2007-49G&lt;br /&gt;
|| LENOVO || 200749G || ThinkPad T60 || LENOVO || 200749G || Not Available || LENOVO || Not Available || LENOVO || 79ET62WW (1.07 ) || 06/12/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;     String 1: IBM ThinkPad Embedded Controller -[79HT45WW-1.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T60}} 2007-77G&lt;br /&gt;
|| LENOVO || 200777G || ThinkPad T60 || LENOVO || 200777G || Not Available || LENOVO || Not Available || LENOVO || 79ETD1WW (2.11 ) || 03/15/2007&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[79HT50WW-1.07    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T60}} 1951-CA2&lt;br /&gt;
|| LENOVO || 1951CA2 || ThinkPad T60 || LENOVO || 1951CA2 || Not Available || LENOVO || Not Available || LENOVO || 79ETD9WW (2.19 ) || 09/19/2007&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[79HT50WW-1.07    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T60}} 2007-BF3&lt;br /&gt;
|| LENOVO || 2007BF3 || ThinkPad T60 || LENOVO || 2007BF3 || Not Available || LENOVO || Not Available || LENOVO || 79ETD7WW (2.17 ) || 08/23/2007&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[79HT50WW-1.07    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T60p}} 2007-83U&lt;br /&gt;
|| LENOVO || 200783U || ThinkPad T60p || LENOVO || 200783U || Not Available || LENOVO || Not Available || LENOVO || 79ET60WW (1.05a) || 04/18/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;     String 1: IBM ThinkPad Embedded Controller -[79HT43WW-1.02    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T60p}} 2007-93G&lt;br /&gt;
|| LENOVO || 200793G || ThinkPad T60p || LENOVO || 200793G || Not Available || LENOVO || Not Available || LENOVO || 79ET62WW (1.07 ) || 06/12/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 bytes  String 1: IBM ThinkPad Embedded Controller -[79HT45WW-1.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T60p}} 2007-93U&lt;br /&gt;
|| LENOVO || 200793U || ThinkPad T60p || LENOVO || 200793U || Not Available || LENOVO || Not Available || LENOVO || 79ET66WW (1.10 ) || 08/02/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[79HT48WW-1.05b   ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T60p}} 2007-93U&lt;br /&gt;
|| LENOVO || 200793U || ThinkPad T60p || LENOVO || 200793U || Not Available || LENOVO || Not Available || LENOVO || 79ET67WW (1.11 ) || 08/29/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[79HT48WW-1.05b   ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T60p}} 2007-93U&lt;br /&gt;
|| LENOVO || 200793U || ThinkPad T60p || LENOVO || 200793U || Not Available || LENOVO || Not Available || LENOVO || 79ETC3WW (2.03 ) || 11/10/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[79HT50WW-1.07    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T60p}} 2007-ZK4&lt;br /&gt;
|| LENOVO || 2007ZK4 || ThinkPad T60p || LENOVO || 2007ZK4 || Not Available || LENOVO || Not Available || LENOVO || 79ETD3WW (2.13 ) || 04/30/2007&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[79HT50WW-1.07    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T60p}} 2613-ESU&lt;br /&gt;
|| LENOVO || 2613ESU || ThinkPad T60p || LENOVO || 2613ESU || Not Available || LENOVO || Not Available || LENOVO || 79ET67WW (1.11 ) || 08/29/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[79HT48WW-1.05b   ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T60p}} 2623-DDU&lt;br /&gt;
|| LENOVO || 2623DDU || ThinkPad T60p || LENOVO || 2623DDU || Not Available || LENOVO || Not Available || LENOVO || 79ETC3WW (2.03 ) || 11/10/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[79HT50WW-1.07    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T61}} 6457-W2C&lt;br /&gt;
|| LENOVO || 6457W2C || ThinkPad T61 || LENOVO || 6457W2C || Not Available || LENOVO || Not Available || LENOVO || 7LETB0WW (2.10 ) || 01/21/2008 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T61}} 6465-CTO&lt;br /&gt;
|| LENOVO || 6465CTO || ThinkPad T61 || LENOVO || 6465CTO || Not Available || LENOVO || Not Available || LENOVO || 7LETB2WW (2.12 ) || 02/20/2008&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T61}} 7662-XDU&lt;br /&gt;
|| LENOVO || 7662XDU || ThinkPad T61 || LENOVO || 7662XDU || 7662XDU|| LENOVO || Not Available || LENOVO || 7LET37WW (1.07 ) || 04/17/2007 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 bytes   String 1: IBM ThinkPad Embedded Controller -[7KHT19WW-1.03    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| {{WARN|BIOS and EC firmware have different IDs}}&lt;br /&gt;
|-&lt;br /&gt;
| {{T61}} 7661-A56&lt;br /&gt;
|| LENOVO || 7661A56 || ThinkPad T61 || LENOVO || 7661A56 || Not Available || LENOVO || Not Available || LENOVO || 7LET39WW (1.09 ) || 05/14/2007 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7KHT21WW-1.05    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T61}} 8897-CTO&lt;br /&gt;
|| LENOVO || 8897CTO || ThinkPad T61 || LENOVO || 8897CTO || Not Available || LENOVO || Not Available || LENOVO || 7LET52WW (1.22 ) || 08/27/2007&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7KHT22WW-1.06    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T61}} 8897-CTO&lt;br /&gt;
|| LENOVO || 8897CTO || ThinkPad T61 || LENOVO || 8897CTO || Not Available || LENOVO || Not Available || LENOVO || 7LET56WW (1.26 ) || 10/18/2007 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7KHT22WW-1.06    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| &lt;br /&gt;
|- &lt;br /&gt;
| {{T61p}} 6459-A12&lt;br /&gt;
|| LENOVO || 6459A12 || ThinkPad T61p || LENOVO || 6459A12 || Not Available || LENOVO || Not Available || LENOVO || 7LET56WW (1.26 ) || 10/18/2007&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7KHT22WW-1.06    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T500}} 2055-45G&lt;br /&gt;
|| LENOVO || 205545G || ThinkPad T500 || LENOVO || 205545G || Not Available || LENOVO || Not Available || LENOVO || 6FET49WW (1.19 ) || 10/17/2008&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7VHT12WW-1.01    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| &lt;br /&gt;
|- &lt;br /&gt;
! colspan=14 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====X series====&lt;br /&gt;
|-&lt;br /&gt;
| {{X20}} 266231G&lt;br /&gt;
|| IBM || 266231G || Not Available || IBM || 266231G || Not Available || IBM || Not Available || IBM || IZET9DWW (2.25 ) || 04/17/2003&lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|| 266232G || IBM || 266232G || Not Available || IBM || 266232G || Not Available || IBM || Not Available || IBM || IZET9AWW (2.22 ) || 09/11/2002&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X23}} 2662EBG&lt;br /&gt;
|| IBM || 2662EBG || Not Available || IBM || 2662EBG || Not Available || IBM || Not Available || IBM || 1DET70WW (1.32 ) || 06/10/2003&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X24}} 2662-MPU&lt;br /&gt;
|| IBM || 62MPUFX || Not Available || IBM || 62MPUFX || Not Available || IBM || Not Available || IBM || 1DET67WW (1.29 ) || 12/18/2002&lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X30}} 2672-42G&lt;br /&gt;
|| IBM || 267242G || Not Available || IBM || 267242G || Not Available || IBM || Not Available || IBM || 1KET48WW (1.09 ) || 06/16/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1KHT18WW-1.06    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|- &lt;br /&gt;
| {{X30}} 2672-4HU&lt;br /&gt;
|| IBM || 26724HU || Not Available || IBM || 26724HU || Not Available || IBM || Not Available || IBM || 1KET48WW (1.09 ) || 06/16/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1KHT18WW-1.06    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X30}} 2672-PG3&lt;br /&gt;
|| IBM || 2672PG3 || Not Available || IBM || 2672PG3 || Not Available || IBM || Not Available || IBM || 1KET48WW (1.09 ) || 06/16/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1KHT18WW-1.06    ]-&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X31}} 2672-JXU&lt;br /&gt;
|| IBM || 2672JXU || ThinkPad X31 || IBM || 2672JXU || Not Available || IBM || Not Available || IBM || 1QET97WW (3.02 ) || 09/22/2005 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1QHT23WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X31}} 2672-FG2&lt;br /&gt;
|| IBM || 2672FG2 || ThinkPad X31 || IBM || 2672FG2 || Not Available || IBM || Not Available || IBM || 1QET73WW (2.11 ) || 02/13/2004 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[1QHT16WW-1.03    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X31}} 2672-FG2&lt;br /&gt;
|| IBM || 2672FG2 || ThinkPad X31 || IBM || 2672FG2 || Not Available || IBM || Not Available || IBM || 1QET97WW (3.02 ) || 09/22/2005 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[1QHT23WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X32}} 2884-A3U&lt;br /&gt;
|| IBM || 2884A3U || ThinkPad X32 || IBM || 2884A3U || Not Available || IBM || Not Available || IBM || 1QET94WW (3.00d) || 01/23/2005&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1QHT22WW-1.07b   ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X32}} 2673-M4U&lt;br /&gt;
|| IBM || 2673M4U || ThinkPad X32 || IBM || 2673M4U || Not Available || IBM || Not Available || IBM || 1QET97WW (3.02 ) || 09/22/2005&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1QHT23WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X40}} 2386-H4G&lt;br /&gt;
|| IBM || 2386H4G || ThinkPad X40 || IBM || 2386H4G || Not Available || IBM || Not Available || IBM || 1UET92WW (1.42 ) || 09/16/2004 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0024, DMI type 11, 5 bytes  String 1: IBM ThinkPad Embedded Controller -[1UHT82WW-1.32    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X40}} 2371-Y29&lt;br /&gt;
|| IBM || 2371Y29 || ThinkPad X40 || IBM || 2371Y29 || Not Available || IBM || Not Available || IBM || 1UETD3WW (2.08 ) || 12/21/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0024, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1UHTA6WW-1.56    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X41}} 2525-HU1&lt;br /&gt;
|| IBM || 2525HU1 || ThinkPad X41 || IBM || 2525HU1 || Not Available || IBM || Not Available || IBM || 74ET48WW (1.17a) || 06/07/2005&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0025, DMI type 11, 5 bytes  String 1: IBM ThinkPad Embedded Controller -[74HT25WW-1.00    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X41t}} 1869-CLG&lt;br /&gt;
|| IBM || 1869CLG || ThinkPad X41 Tablet || IBM || 1869CLG || Not Available || IBM || Not Available || IBM || 75ET56WW (2.02 ) || 03/14/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0025, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[75HT19WW-1.01    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X60}} 1709-47U&lt;br /&gt;
|| LENOVO || 170947U || ThinkPad X60 || LENOVO || 170947U || Not Available || LENOVO || Not Available || LENOVO || 7BET44WW (1.04 ) || 03/13/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;     String 1: IBM ThinkPad Embedded Controller -[7BHT29WW-1.02    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X60}} 1709-GDJ&lt;br /&gt;
|| LENOVO || 1709GDJ || ThinkPad X60 || LENOVO || 1709GDJ || Not Available || LENOVO || Not Available || LENOVO || 7BETC2WW (2.03 ) || 10/16/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7BHT36WW-1.09    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X60}} 1706-B69&lt;br /&gt;
|| LENOVO || 1706B69 || ThinkPad X60 || LENOVO || 1706B69 || Not Available || LENOVO || Not Available || LENOVO || 7BETC8WW (2.09 ) || 03/14/2007 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7BHT37WW-1.10    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X60s}} 1702-55G&lt;br /&gt;
|| LENOVO || 170255G || ThinkPad X60s || LENOVO || 170255G || Not Available || LENOVO || Not Available || LENOVO || 7BET44WW (1.04 ) || 03/13/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;     String 1: IBM ThinkPad Embedded Controller -[7BHT29WW-1.02    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X60s}} 1702-5FG&lt;br /&gt;
|| LENOVO || 17025FG || ThinkPad X60s || LENOVO || 17025FG || Not Available || LENOVO || Not Available || LENOVO || 7BET49WW (1.09 ) || 07/27/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7BHT34WW-1.07    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X60s}} 1704-56G&lt;br /&gt;
|| LENOVO || 170456G || ThinkPad X60s || LENOVO || 170456G || Not Available || LENOVO || Not Available || LENOVO || 7BET43WW (1.03 ) || 02/13/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 bytes  String 1: IBM ThinkPad Embedded Controller -[7BHT28WW-1.01    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X60s}} 1704-5UG&lt;br /&gt;
|| LENOVO || 17045UG || ThinkPad X60s || LENOVO || 17045UG || Not Available || LENOVO || Not Available || LENOVO || 7BETD2WW (2.13 ) || 08/10/2007&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7BHT40WW-1.13    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X60t}} 6365-CTO&lt;br /&gt;
|| LENOVO || 6365CTO || ThinkPad X60 Tablet || LENOVO || 6365CTO || Not Available || LENOVO || Not Available || LENOVO || 7JET25WW (1.10 ) || 08/17/2007 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0023, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7JHT13WW-1.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X60t}} 6363-J3G&lt;br /&gt;
|| LENOVO || 6363J3G || ThinkPad X60 Tablet || LENOVO || 6363J3G || Not Available || LENOVO || Not Available || LENOVO || 7JET28WW (1.13 ) || 03/31/2008&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0023, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7JHT13WW-1.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| A mean bitch to set up, nothing really worked out of the box :(&lt;br /&gt;
|-&lt;br /&gt;
| {{X60t}} 6363A7G&lt;br /&gt;
|| LENOVO || 6363A7G || ThinkPad X60 Tablet || LENOVO || 6363A7G || Not Available || LENOVO || Not Available || LENOVO || 7JET19WW (1.04 ) || 12/14/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0023, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7JHT12WW-1.03    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X61}} 7675-4KU&lt;br /&gt;
|| LENOVO || 76754KU || ThinkPad X61 || LENOVO || 76754KU || Not Available || LENOVO || Not Available || LENOVO || 7NET30WW (1.11 ) || 11/15/2007&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x001F, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7MHT24WW-1.02    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X61}} 7675-7KU&lt;br /&gt;
|| LENOVO || 76757KU || ThinkPad X61 || LENOVO || 76757KU || Not Available || LENOVO || Not Available || LENOVO || 7NETB1WW (2.11 ) || 03/24/2008&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x001F, DMI type 11, 5 bytes   IBM ThinkPad Embedded Controller -[7MHT25WW-1.03    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X61t}} 7762-95G&lt;br /&gt;
|| LENOVO || 776295G || ThinkPad X61 Tablet || LENOVO || 776295G || Not Available || LENOVO || Not Available || LENOVO || 7SET22WW (1.08 ) || 11/15/2007 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x001F, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7RHT16WW-1.02    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X61t}} 7764-CTO&lt;br /&gt;
|| LENOVO || 7764CTO || ThinkPad X61 Tablet || LENOVO || 7764CTO || Not Available || LENOVO || Not Available || LENOVO || 7SET18WW (1.04 ) || 07/03/2007&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x001F, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7RHT16WW-1.02    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X200}} Tablet 7449-F9U&lt;br /&gt;
|| LENOVO || 7449F9U || ThinkPad X200 Tablet || LENOVO || 7449F9U || Not Available || LENOVO || Not Available || LENOVO || 7WET24WW (1.02 ) || 09/09/2008 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x001D, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7WHT14WW-1.01    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X300}} 6478-14G&lt;br /&gt;
|| LENOVO || 647814G || ThinkPad X300 || LENOVO || 647814G || Not Available || LENOVO || Not Available || LENOVO || 7TET23WW (1.00d) || 01/17/2008 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0022, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7THT15WW-1.00c   ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X300}} 6478-18M&lt;br /&gt;
|| LENOVO || 647818M || ThinkPad X300 || LENOVO || 647818M || Not Available || LENOVO || Not Available || LENOVO || 7TET26WW (1.02a) || 02/27/2008 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0022, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7THT15WW-1.00c   ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X301}} 2777-CTO&lt;br /&gt;
|| LENOVO || 2777CTO || ThinkPad X301 || LENOVO || 2777CTO || Not Available || LENOVO || Not Available || LENOVO || 6EET19WW (1.00g) || 07/30/2008 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[6EHT07WW-1.00b   ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=14 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====Z series====&lt;br /&gt;
|-&lt;br /&gt;
| {{Z60t}} 2511-FEU&lt;br /&gt;
|| IBM || 2511FEU || ThinkPad Z60t || IBM || 2511FEU || Not Available || IBM || Not Available || IBM || 77ET42WW (1.05 ) || 11/19/2005&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;     String 1: IBM ThinkPad Embedded Controller -[77HT28WW-1.02    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Z60t}} 2511-FFG&lt;br /&gt;
|| IBM || 2511FFG || ThinkPad Z60t || IBM || 2511FFG || Not Available || IBM || Not Available || IBM || 77ET64WW (1.24 ) || 02/27/2007 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[77HT57WW-1.17    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|- &lt;br /&gt;
| {{Z60m}} 2529-ETG&lt;br /&gt;
|| IBM || 2529ETG || ThinkPad Z60m || IBM || 2529ETG || Not Available || IBM || Not Available || IBM || 77ET59WW (1.19 ) || 04/24/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 bytes  String 1: IBM ThinkPad Embedded Controller -[77HT54WW-1.14    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Z60m}} 2529-ETG&lt;br /&gt;
|| IBM || 2529ETG || ThinkPad Z60m || IBM || 2529ETG || Not Available || IBM || Not Available || IBM || 77ET64WW (1.24 ) || 02/27/2007 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[77HT58WW-1.18    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Z60m}} 2529-FBG&lt;br /&gt;
|| IBM || 2529FBG || ThinkPad Z60m || IBM || 2529FBG || Not Available || IBM || Not Available || IBM || 77ET62WW (1.22 ) || 11/21/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[77HT58WW-1.18    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|- &lt;br /&gt;
| {{Z60m}} 2529-FKG&lt;br /&gt;
|| IBM || 2529FKG || ThinkPad Z60m || IBM || 2529FKG || Not Available || IBM || Not Available || IBM || 77ET42WW (1.05 ) || 11/19/2005&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;String 1: IBM ThinkPad Embedded Controller -[77HT28WW-1.02    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Z61m}} 9453-A11&lt;br /&gt;
|| LENOVO || 9453A11 || ThinkPad Z61m || LENOVO || 9453A11 || Not Available || LENOVO || Not Available || LENOVO || 7FET48WW (1.08 ) || 05/26/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;String 1: IBM ThinkPad Embedded Controller -[7FHT21WW-1.03    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Z61m}} 9452-8QG&lt;br /&gt;
|| LENOVO || 94528QG || ThinkPad Z61m || LENOVO || 94528QG || Not Available || LENOVO || Not Available || LENOVO || 7FETA4WW (2.22 ) || 10/19/2007&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7FHT26WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| &lt;br /&gt;
|- &lt;br /&gt;
| {{Z61m}} 9452-W5Q&lt;br /&gt;
|| LENOVO || 9452W5Q || ThinkPad Z61m || LENOVO || 9452W5Q || Not Available || LENOVO || Not Available || LENOVO || 7FETA6WW (2.24 ) || 03/13/2008&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7FHT26WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| {{Z61m}} 9543-A11&lt;br /&gt;
|| LENOVO || 9453A11 || ThinkPad Z61m || LENOVO || 9453A11 || Not Available || LENOVO || Not Available || LENOVO || 7FET53WW (1.13 ) || 07/27/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7FHT23WW-1.05    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Z61m}} 9543-A11&lt;br /&gt;
|| LENOVO || 9453A11 || ThinkPad Z61m || LENOVO || 9453A11 || Not Available || LENOVO || Not Available || LENOVO || 7FET93WW (2.11 ) || 11/10/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7FHT26WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Z61m}} 9453-A11&lt;br /&gt;
|| LENOVO || 9453A11 || ThinkPad Z61m || LENOVO || 9453A11 || Not Available || LENOVO || Not Available || LENOVO || 7FET53WW (1.13 ) || 07/27/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7FHT23WW-1.05    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Z61p}} 9453-A12&lt;br /&gt;
|| LENOVO || 9453A12 || ThinkPad Z61p || LENOVO || 9453A12 || Not Available || LENOVO || Not Available || LENOVO || 7FET45WW (1.05 ) || 04/20/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 bytes  String 1: IBM ThinkPad Embedded Controller -[7FHT19WW-1.01    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Z61p}} 9450-3AU&lt;br /&gt;
|| LENOVO || 94503AU || ThinkPad Z61p || LENOVO || 94503AU || Not Available || LENOVO || Not Available || LENOVO || 7FET53WW (1.13 ) || 07/27/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7FHT23WW-1.05    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Z61t}} 9440-2CU&lt;br /&gt;
|| LENOVO || 94402CU || ThinkPad Z61t || LENOVO || 94402CU || Not Available || LENOVO || Not Available || LENOVO || 7FET50WW (1.10 ) || 06/20/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7FHT22WW-1.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Z61t}} 9443-4GG&lt;br /&gt;
|| LENOVO || 94434GG || ThinkPad Z61t || LENOVO || 94434GG || Not Available || LENOVO || Not Available || LENOVO || 7FET96WW (2.14 ) || 12/25/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7FHT26WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Z61t}} 9440-CTO&lt;br /&gt;
|| LENOVO || 9440CTO || ThinkPad Z61t || LENOVO || 9440CTO || Not Available || LENOVO || Not Available || LENOVO || 7FET99WW (2.17 ) || 04/17/2007 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7FHT26WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Z61t}} 9440-CTO&lt;br /&gt;
|| LENOVO || 9440CTO || ThinkPad Z61t || LENOVO || 9440CTO || Not Available || LENOVO || Not Available || LENOVO || 7FETA0WW (2.18 ) || 05/17/2007 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7FHT26WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Z61t}} 9440-CTO&lt;br /&gt;
|| LENOVO || 9440CTO || ThinkPad Z61t || LENOVO || 9440CTO || Not Available || LENOVO || Not Available || LENOVO || 7FETA7WW (2.25 ) || 06/03/2008 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7FHT26WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=14 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====Lenovo 3000 series====&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:Lenovo 3000| Lenovo 3000]] N200 TY2BAFR&lt;br /&gt;
|| LENOVO || 0769BAG || 3000 N200 || LENOVO || IEL10 || REFERENCE || No Enclosure || N/A || LENOVO || 68ET24WW || 08/15/2007 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| {{WARN|Non-ThinkPad EC firmware and BIOS}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Adding entries==&lt;br /&gt;
&lt;br /&gt;
Click the &amp;quot;Edit&amp;quot; link on the appropriate series above and add an entry of the following form:&lt;br /&gt;
:&amp;lt;tt&amp;gt;| &amp;lt;/tt&amp;gt;&amp;lt;i&amp;gt;description of your model&amp;lt;/i&amp;gt;&lt;br /&gt;
:&amp;lt;i&amp;gt;data line 1&amp;lt;/i&amp;gt;&lt;br /&gt;
:&amp;lt;i&amp;gt;data line 2&amp;lt;/i&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;||&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;|-&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the two data lines are generated by the following &amp;lt;tt&amp;gt;bash&amp;lt;/tt&amp;gt; command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for X in system-{manufacturer,product-name,version} \&lt;br /&gt;
  baseboard-{manufacturer,product-name,version} \&lt;br /&gt;
  chassis-{manufacturer,version} bios-{vendor,version,release-date}; do \&lt;br /&gt;
  echo -n &amp;quot;|| `sudo /usr/sbin/dmidecode -s $X` &amp;quot;; done; \&lt;br /&gt;
  sudo /usr/sbin/dmidecode | perl -0777 -ne \&lt;br /&gt;
  'm/\n(.*).\n.*\n(.*Embedded Cont.*)\n/i; print &amp;quot;\n|| &amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;nowiki&amp;gt;$1$2&amp;lt;/nowiki&amp;gt;\n&amp;quot;'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
While at it, you may also want to test [[tp_smapi]] and update its [[tp_smapi#Model-specific_status|model-specific status table]].&lt;br /&gt;
&lt;br /&gt;
==Software using ThinkPad DMI IDs==&lt;br /&gt;
* [[HDAPS]] driver whitelist&lt;br /&gt;
* [[tp_smapi]] driver whitelist&lt;br /&gt;
* [[ibm-acpi]]/thinkpad-acpi driver quirk list&lt;/div&gt;</summary>
		<author><name>Low</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_save_memory&amp;diff=40210</id>
		<title>How to save memory</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_save_memory&amp;diff=40210"/>
		<updated>2008-12-11T19:30:15Z</updated>

		<summary type="html">&lt;p&gt;Low: /* Adjusting filesystems */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;&amp;quot; | __TOC__&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |This page is meant as a collection of information on how to save memory to make Linux work reasonable on older systems with limited amount of RAM.&lt;br /&gt;
&lt;br /&gt;
Most distributions nowadays don't take much care about it anymore, so there are a lot of things you can do to save memory. To get a smoothly working Linux environment on a low memory machine you will need to consciously choose a lot of aspects of your system, most importantly the graphical environment, desktop environment and applications. This page provides detailed information about these various optimization possibilities.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Alternative graphical environments==&lt;br /&gt;
{{Todo|...}}&lt;br /&gt;
&lt;br /&gt;
==Streamlining the desktop environment==&lt;br /&gt;
The common desktop environments GNOME and KDE are focused more on features, integration, and beauty rather than on saving resources. Understandable, but running Linux on an older ThinkPad with limited RAM requires a focus on limiting resource usage. The good thing about Linux is that a lot of things stay adjustable and customizable. So lets see what we can do about desktops.&lt;br /&gt;
&lt;br /&gt;
One of the most important things is to decide for one graphical widget library and stick with that when you are choosing your desktop environment and applications. Having several toolkits in use means more libraries being loaded and hence more memory being used by those. Possibilities are:&lt;br /&gt;
* [http://www.fltk.org/ FLTK]&lt;br /&gt;
* [http://www.fox-toolkit.org/ FOX toolkit]&lt;br /&gt;
* [http://www.gnustep.org GNUstep toolkit]&lt;br /&gt;
* [http://www.gtk.org/ GTK] (not recommended, use GTK 2 if possible)&lt;br /&gt;
* [http://www.gtk.org/ GTK 2]&lt;br /&gt;
* [http://www.lesstif.org/ Lesstif] / [http://www.openmotif.org/ OpenMotif]&lt;br /&gt;
* [http://www.trolltech.com/products/qt/index.html QT]&lt;br /&gt;
* [http://www.windowmaker.org/development-wings.html WINGs] (kind of a lightweight GNUstep toolkit, provided by the WindowMaker developers)&lt;br /&gt;
* [http://www.x.org/ X Toolkit]&lt;br /&gt;
&lt;br /&gt;
Of those, at current state, there are enough applications for the X Toolkit, GTK, GTK 2 and QT to provide you with a solution for every task you should want.&lt;br /&gt;
&lt;br /&gt;
===GNOME===&lt;br /&gt;
It's like with humans, the worst feature is in most cases also the best one. For GNOME it is probably the many little parts it consists of. Makes it hard to install, but enables one to customize the installation. So, the first thing you should do to streamline GNOME is not to launch it. Sound stupid? Well, lets have a look.&lt;br /&gt;
&lt;br /&gt;
GNOME is basically a set of libraries built around the GTK+ libs and extending its functionality. Add some nice little applications, a session manager, a panel, beautiful icons, and some other stuff and you have GNOME as you know it. Reversing those additions is what you can do to use GNOME applications on a machine that this desktop environment would normally take your nerves on.&lt;br /&gt;
&lt;br /&gt;
The GNOME panel, the session manager, the desktop manager and the window manager are all parts of GNOME that eat a lot of memory for something that others can do in a maybe little less beautiful but much more resource saving way.&lt;br /&gt;
So first off configure your login manager not to launch gnome-session at login. If you are using GDM this is quite straight forward, you just need to add a different session script, launching your favorite window manager. See the list below and pick one, lets say i.e. WindowMaker. WindowMaker uses a desktop menu, a dock and a notification area to provide you with an organized way of launching applications and iconfying running ones. So we don't need a panel anymore. Also, think if you really need icons on your desktop. If you do, think about using something like ROX filer instead of nautilus for that. In any case, tell nautilus not to manage the desktop by default by unchecking the according setting within gconf-editor. To keep GNOME applications happy we would need to have gconf and gnome-settings-manager running at every session start. One way to do this is to either include them in your new session script. They both need to be running to make GNOME applications realize their settings properly.&lt;br /&gt;
&lt;br /&gt;
===KDE===&lt;br /&gt;
{{Todo|...}}&lt;br /&gt;
&lt;br /&gt;
===Alternative Desktop Environments===&lt;br /&gt;
First of all, it is important to notice that GNOME and KDE are not the only Desktop Environments around.&lt;br /&gt;
Other complete (featuring most of: window management, session management, desktop management, file management and panel) desktop environments are:&lt;br /&gt;
* [http://xfce.org/ XFCE] &amp;lt;tt&amp;gt;uses GTK 2&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [http://rox.sourceforge.net ROX Desktop]&lt;br /&gt;
* [http://ede.sourceforge.net Equinox Desktop Environment] &amp;lt;tt&amp;gt;uses eFLTK, a modified version of FLTK&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [http://www.nongnu.org/antiright/ AntiRight Desktop Environment] &amp;lt;tt&amp;gt;uses LessTif / OpenMotif&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [http://foxdesktop.sourceforge.net/ FOX Desktop Environment] &amp;lt;tt&amp;gt;uses FOX Toolkit&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [http://www.gnustep.org/ GNUstep] &amp;lt;tt&amp;gt;provides it's own toolkit&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But also, some Window Managers exceed the task of managing windows towards providing a functional workbench. See below for a list.&lt;br /&gt;
&lt;br /&gt;
===Building your own Desktop===&lt;br /&gt;
&lt;br /&gt;
====Window Manager====&lt;br /&gt;
If you want to build your own customized desktop, a good start is choosing the window manager of your liking.  A list of window managers is at [http://xwinman.org].&lt;br /&gt;
&lt;br /&gt;
Here's a list of some of them:&lt;br /&gt;
*including basic Desktop Environment functionality&lt;br /&gt;
**the [[Wikipedia:NextStep|NextStep]] alike ones&lt;br /&gt;
***[http://www.windowmaker.org/ WindowMaker] &amp;lt;tt&amp;gt;(probably the most widespread NextStep like WM)&amp;lt;/tt&amp;gt;&lt;br /&gt;
***[http://www.afterstep.org/ AfterStep] &amp;lt;tt&amp;gt;(another one of those)&amp;lt;/tt&amp;gt;&lt;br /&gt;
**the Blackbox-like ones&lt;br /&gt;
***[http://blackboxwm.sourceforge.net/ BlackBox]&lt;br /&gt;
***[http://fluxbox.sourceforge.net/ FluxBox] &amp;lt;tt&amp;gt;(tabbed windows, lighweight)&amp;lt;/tt&amp;gt;&lt;br /&gt;
***[http://www.icculus.org/openbox/ OpenBox] &amp;lt;tt&amp;gt;(written from scratch to be fully ICCCM and EWMH compliant, fast and light-weight)&amp;lt;/tt&amp;gt;&lt;br /&gt;
**others&lt;br /&gt;
***[http://www.icewm.org/ IceWM] &amp;lt;tt&amp;gt;(lightweight, widespread)&amp;lt;/tt&amp;gt;&lt;br /&gt;
***[http://enlightenment.sourceforge.net/ Enlightenment] &amp;lt;tt&amp;gt;(lots of features and eye candy)&amp;lt;/tt&amp;gt;&lt;br /&gt;
***[http://www.pekwm.org PekWM] &amp;lt;tt&amp;gt;(kind of a one man show, but feature rich and extremely customizable)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*pure WindowManagers &lt;br /&gt;
**[http://golem.sourceforge.net/ Golem]&lt;br /&gt;
**[http://home.earthlink.net/~lab1701/larswm/ LarsWM] &amp;lt;tt&amp;gt;(unique tiling Window Manager)&amp;lt;/tt&amp;gt;&lt;br /&gt;
**[http://www.nongnu.org/ratpoison/ ratpoison] &amp;lt;tt&amp;gt;(modeled after gnu screen)&amp;lt;/tt&amp;gt;&lt;br /&gt;
**[http://fvwm.org/ fvwm] &amp;lt;tt&amp;gt;(small but powerful)&amp;lt;/tt&amp;gt;&lt;br /&gt;
**[http://www.jfc.org.uk/software/lwm.html lwm] &amp;lt;tt&amp;gt;(very small, and fast)&amp;lt;/tt&amp;gt;&lt;br /&gt;
**[http://www.all-day-breakfast.com/wm2/ wm2] &amp;lt;tt&amp;gt;really small Window Manager&amp;lt;/tt&amp;gt;&lt;br /&gt;
**[http://www.all-day-breakfast.com/wmx/ wmx] &amp;lt;tt&amp;gt;slightly more featureful version of wm2&amp;lt;/tt&amp;gt;&lt;br /&gt;
**[http://wmii.suckless.org wmii] &amp;lt;tt&amp;gt;keyboard driven approach, very small, dynamic window managing&amp;lt;/tt&amp;gt;&lt;br /&gt;
**[http://dwm.suckless.org dwm] &amp;lt;tt&amp;gt;keyboard-only driven approach, yet smaller than wmii, dynamic window managing&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Taskbar/Panel====&lt;br /&gt;
Another thing that especially users coming to Linux from the Windows world would probably like is a Panel or Taskbar.&lt;br /&gt;
&lt;br /&gt;
Here's a collection of independant low resource panels:&lt;br /&gt;
*[http://www.chatjunkies.org/fspanel/ F***ing Small Panel] &amp;lt;tt&amp;gt;(doesn't use any toolkit)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*[http://freshmeat.net/projects/hpanel/ HPanel] &amp;lt;tt&amp;gt;(doesn't use any toolkit)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*[http://fbpanel.sourceforge.net/ fbpanel] &amp;lt;tt&amp;gt;(depends on GTK 2)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*[http://jodrell.net/projects/perlpanel Perl Panel] &amp;lt;tt&amp;gt;(depends on GTK 2, gnomevfs, perl)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*[http://www.gkrellm.net/ GKrellM] &amp;lt;tt&amp;gt;(depends on GTK 2, flexible plugin based skinable vertical panel)&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Furthermore most of the windowmanagers allow you to have something like a panel/taskbar configured, and system tray applications like [http://stalonetray.sourceforge.net/ stalonetray] supply support for  persistent applications (i.e. those that on quit do not quit but minimize to a tray icon) like Skype.&lt;br /&gt;
&lt;br /&gt;
====Desktop Pinboard====&lt;br /&gt;
Then, the next thing you might be looking for is how to get icons onto your desktop. Usually this is done by the file manager who displays the content of a special directory as icons on the desktop. See the File Manager section to follow this approach.&lt;br /&gt;
&lt;br /&gt;
However, you might decide for a really lightwight file manager which doesn't offer this feature. In that case all hope is not lost, for there are also special programs specialized in desktop icon management. Such are:&lt;br /&gt;
* [http://idesk.sourceforge.net/ iDesk] &amp;lt;tt&amp;gt;(recent versions need imlib2 only)&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====File Manager====&lt;br /&gt;
File Managers are the fourth really important compontent of a desktop environment. There are plenty out their ranging from resource hugs to really lightweight and slim ones.&lt;br /&gt;
&lt;br /&gt;
File Managers come with three distinct general user interface approaches: the two pane gui, the spacial and the browser gui. The browser gui is the one the Windows Explorer starting from Windows 2000 uses as well as earlier versions of Nautilus. The spacial view is the one known from Windows 95 and more recent versions of Nautilus. The two pane view is know to many from Norten Commander, Directory Opus or your favorite FTP client.&lt;br /&gt;
&lt;br /&gt;
The following list provides an overview.&lt;br /&gt;
*FLTK&lt;br /&gt;
** [http://www.oksid.ch/flfm/ Fast Light File Manager] &amp;lt;tt&amp;gt;(spacial gui)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* FOX toolkit&lt;br /&gt;
** [http://roland65.free.fr/xfe/ X File Explorer] &amp;lt;tt&amp;gt;(browser and two pane gui)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*GTK&lt;br /&gt;
** [http://www.kaisersite.de/dfm/ Desktop File Manager] &amp;lt;tt&amp;gt;(spacial gui, incl. desktop icon management)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://www.uwyn.com/projects/fm/ FM] &amp;lt;tt&amp;gt;(spacial, MAC OS 9 like gui)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://radekc.regnet.cz/ Seksi Commander] &amp;lt;tt&amp;gt;(two pane gui)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*GTK 2&lt;br /&gt;
** [http://rox.sourceforge.net/ ROX Filer] &amp;lt;tt&amp;gt;(highly productive spacial gui, incl. panel and desktop icon management)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://blog.perldude.de/projects/filer/ Filer] &amp;lt;tt&amp;gt;(browser and two pane gui, requires Perl)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://xffm.sourceforge.net/ XFFM] &amp;lt;tt&amp;gt;(browser and spacial gui, requires some XFCE libs)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://logicaldesktop.sourceforge.net/ Logical Desktop] &amp;lt;tt&amp;gt;(browser gui, actually a very special approach)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://tuxcmd.sourceforge.net/ Tux Commander] &amp;lt;tt&amp;gt;(two pane gui)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://www.nongnu.org/gcmd/index.html Gnome Commander] &amp;lt;tt&amp;gt;(two pane gui)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://emelfm2.net/emelFM2/ emelFM2] &amp;lt;tt&amp;gt;(two pane gui with full customizable menu and toolbar, the best for power users)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://thunar.xfce.org/index.xhtml Thunar] &amp;lt;tt&amp;gt;(requires some XFCE libs)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://pcmanfm.sourceforge.net/ PCMan File Manager] &amp;lt;tt&amp;gt;(An extremly fast and lightweight file manager which features tabbed browsing and user-friendly interface. Requires GTK+ version 2.8.x)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* OpenMotif&lt;br /&gt;
** [http://www.musikwissenschaft.uni-mainz.de/~ag/xplore/xplore.php Xplore] &amp;lt;tt&amp;gt;(browser gui with productive 4 pane concept)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* QT 2&lt;br /&gt;
** [http://www.hi-net.cz/blaza/bfcommander/en/index.html BF-Commander] &amp;lt;tt&amp;gt;(two pane gui)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Qt3&lt;br /&gt;
** [http://www.beesoft.org/download_bsc.html Beesoft Commander] &amp;lt;tt&amp;gt; (fast &amp;amp; easy two panel file manager, like Norton Commander)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Tcl/Tk&lt;br /&gt;
** [http://users.tkk.fi/~mkivinie/X-Files/ X-Files] &amp;lt;tt&amp;gt;(two pane gui)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*X Toolkit&lt;br /&gt;
** [http://www.musikwissenschaft.uni-mainz.de/~ag/xfm/ X File Manager] &amp;lt;tt&amp;gt;(spacial gui)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://www.boomerangsworld.de/worker/ Worker] &amp;lt;tt&amp;gt;(two pane gui, highly productive and configurable)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://xnc.dubna.su/ X Northern Captain] &amp;lt;tt&amp;gt;(interesting flexible two pane gui)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*3D Filemanagers&lt;br /&gt;
** [http://www.determinate.net/webdata/seg/tdfsb.html TDFSB] &amp;lt;tt&amp;gt;(3D gui, the most impressing 3D file browser so far)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://www.forchheimer.se/bfm/ Brutal File Manager] &amp;lt;tt&amp;gt;(3D gui more for fun than productivity)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://turma.sourceforge.net/software/3dfile/ 3DFile] &amp;lt;tt&amp;gt;(3D gui)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://orbis.sourceforge.net/ Orbis] &amp;lt;tt&amp;gt;(3D gui)&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Choosing applications==&lt;br /&gt;
===Web Browser===&lt;br /&gt;
This is highly dependent on the way you use your browser, it's often worth it to try out all and just track general&lt;br /&gt;
memory usage. Remember that &amp;lt;tt&amp;gt;top&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ps&amp;lt;/tt&amp;gt; don't report correct memory usage, track totals only.&lt;br /&gt;
&lt;br /&gt;
====Firefox====&lt;br /&gt;
Firefox is graphical web browser. One can install features like AdBlock and FlashClicktoplay which will decrease memory  and&lt;br /&gt;
processor usage by hiding Flash and Java -adverts.&lt;br /&gt;
&lt;br /&gt;
====Opera====&lt;br /&gt;
Opera is graphical web browser. You can easily enable/disable plug-ins and java (press F12) and decrease memory usage.&lt;br /&gt;
Opera uses QT as toolkit, so you may shave off some Mbytes off memory usage by using dynamically linked version if you use KDE.&lt;br /&gt;
&lt;br /&gt;
====Konqueror====&lt;br /&gt;
Konqueror is graphical web browser. It's integrated with KDE and has several advanced features (esp. ca. KDE 3.5).&lt;br /&gt;
You may save some megabytes by using it instead of other browsers when using KDE.&lt;br /&gt;
It's not necessarily heavy even when used without running KDE.&lt;br /&gt;
&lt;br /&gt;
====Dillo====&lt;br /&gt;
Dillo is minimalistic and very small graphical web browser. &lt;br /&gt;
&lt;br /&gt;
====Elinks/Lynx====&lt;br /&gt;
elinks/lynx are both text mode web browsers. &amp;lt;tt&amp;gt;elinks&amp;lt;/tt&amp;gt; handles tables and formatting much nicer than &amp;lt;tt&amp;gt;lynx&amp;lt;/tt&amp;gt;.&lt;br /&gt;
Both go very easy on memory footprint.&lt;br /&gt;
&lt;br /&gt;
{{Todo|...}}&lt;br /&gt;
&lt;br /&gt;
==Disabling unneeded system deamons==&lt;br /&gt;
Another thing you can do to improve performance is to get rid of unneaded system daemons launched from your init scripts. Disable them by using the according configuration interface of your distro or by deleting links in the according runlevel directories (usually in &amp;lt;code&amp;gt;/etc/rc.d/&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Daemons you usually don't need:&lt;br /&gt;
* httpd &amp;lt;tt&amp;gt;(Apache web server)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* mysqld &amp;lt;tt&amp;gt;(MySQL database server)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* smbd &amp;lt;tt&amp;gt;(SMB windows filesharing server)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* pppd &amp;lt;tt&amp;gt;(PPP server for connections through modems and serial lines)&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Adjusting filesystems==&lt;br /&gt;
You can also try to optimize memory usage by making sure that you have as little as possible of your filesystem residing in RAM. To do this make sure that the following mount points are set to reside on your harddisk in {{path|/etc/fstab}}. {{Todo|how?}}&lt;br /&gt;
* /dev (not possible if you use udev)&lt;br /&gt;
* /tmp&lt;br /&gt;
&lt;br /&gt;
Also make sure that you mount filesystems with extensive usage with noatime parameter (mount -o remount,ro /...), which disabled access time writes every time you access some file. Note that many incremental backups needs atime to work, such backups will then behave like full backup everytime. This depends on backup systems.&lt;br /&gt;
&lt;br /&gt;
==Other tips==&lt;br /&gt;
===Disk space===&lt;br /&gt;
When using Debian/Ubuntu/other derivative, use &amp;lt;tt&amp;gt;aptitude&amp;lt;/tt&amp;gt; as package manager, and use it as soon as possible. Use it and only it to install and remove packages.&lt;br /&gt;
&lt;br /&gt;
One of its most useful features is that it tracks packages you install and marks packages installed via dependency as such, so when you remove a package that is no longer used, or package updates and doesn't use a library anymore, that dependency will get uninstalled.&lt;br /&gt;
&lt;br /&gt;
You can mark packages installed as automatically installed by hitting 'M' (uppercase m), it will be marked for deinstallation if it's not longer required.&lt;br /&gt;
&lt;br /&gt;
You could also install &amp;lt;tt&amp;gt;localepurge&amp;lt;/tt&amp;gt;, which will remove all unneeded locales and localized manpages for packages you install.&lt;br /&gt;
&lt;br /&gt;
===System clock===&lt;br /&gt;
&amp;lt;tt&amp;gt;ntpd&amp;lt;/tt&amp;gt; can occupy around 4MB of memory, which is a substantial proportion of many older systems' total. [http://chrony.sunsite.dk/ &amp;lt;tt&amp;gt;chrony&amp;lt;/tt&amp;gt;] is a pair of programs that replace the standard &amp;lt;tt&amp;gt;ntp&amp;lt;/tt&amp;gt; and require much less memory.&lt;/div&gt;</summary>
		<author><name>Low</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_save_memory&amp;diff=40209</id>
		<title>How to save memory</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_save_memory&amp;diff=40209"/>
		<updated>2008-12-11T19:26:44Z</updated>

		<summary type="html">&lt;p&gt;Low: /* Taskbar/Panel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;&amp;quot; | __TOC__&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |This page is meant as a collection of information on how to save memory to make Linux work reasonable on older systems with limited amount of RAM.&lt;br /&gt;
&lt;br /&gt;
Most distributions nowadays don't take much care about it anymore, so there are a lot of things you can do to save memory. To get a smoothly working Linux environment on a low memory machine you will need to consciously choose a lot of aspects of your system, most importantly the graphical environment, desktop environment and applications. This page provides detailed information about these various optimization possibilities.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Alternative graphical environments==&lt;br /&gt;
{{Todo|...}}&lt;br /&gt;
&lt;br /&gt;
==Streamlining the desktop environment==&lt;br /&gt;
The common desktop environments GNOME and KDE are focused more on features, integration, and beauty rather than on saving resources. Understandable, but running Linux on an older ThinkPad with limited RAM requires a focus on limiting resource usage. The good thing about Linux is that a lot of things stay adjustable and customizable. So lets see what we can do about desktops.&lt;br /&gt;
&lt;br /&gt;
One of the most important things is to decide for one graphical widget library and stick with that when you are choosing your desktop environment and applications. Having several toolkits in use means more libraries being loaded and hence more memory being used by those. Possibilities are:&lt;br /&gt;
* [http://www.fltk.org/ FLTK]&lt;br /&gt;
* [http://www.fox-toolkit.org/ FOX toolkit]&lt;br /&gt;
* [http://www.gnustep.org GNUstep toolkit]&lt;br /&gt;
* [http://www.gtk.org/ GTK] (not recommended, use GTK 2 if possible)&lt;br /&gt;
* [http://www.gtk.org/ GTK 2]&lt;br /&gt;
* [http://www.lesstif.org/ Lesstif] / [http://www.openmotif.org/ OpenMotif]&lt;br /&gt;
* [http://www.trolltech.com/products/qt/index.html QT]&lt;br /&gt;
* [http://www.windowmaker.org/development-wings.html WINGs] (kind of a lightweight GNUstep toolkit, provided by the WindowMaker developers)&lt;br /&gt;
* [http://www.x.org/ X Toolkit]&lt;br /&gt;
&lt;br /&gt;
Of those, at current state, there are enough applications for the X Toolkit, GTK, GTK 2 and QT to provide you with a solution for every task you should want.&lt;br /&gt;
&lt;br /&gt;
===GNOME===&lt;br /&gt;
It's like with humans, the worst feature is in most cases also the best one. For GNOME it is probably the many little parts it consists of. Makes it hard to install, but enables one to customize the installation. So, the first thing you should do to streamline GNOME is not to launch it. Sound stupid? Well, lets have a look.&lt;br /&gt;
&lt;br /&gt;
GNOME is basically a set of libraries built around the GTK+ libs and extending its functionality. Add some nice little applications, a session manager, a panel, beautiful icons, and some other stuff and you have GNOME as you know it. Reversing those additions is what you can do to use GNOME applications on a machine that this desktop environment would normally take your nerves on.&lt;br /&gt;
&lt;br /&gt;
The GNOME panel, the session manager, the desktop manager and the window manager are all parts of GNOME that eat a lot of memory for something that others can do in a maybe little less beautiful but much more resource saving way.&lt;br /&gt;
So first off configure your login manager not to launch gnome-session at login. If you are using GDM this is quite straight forward, you just need to add a different session script, launching your favorite window manager. See the list below and pick one, lets say i.e. WindowMaker. WindowMaker uses a desktop menu, a dock and a notification area to provide you with an organized way of launching applications and iconfying running ones. So we don't need a panel anymore. Also, think if you really need icons on your desktop. If you do, think about using something like ROX filer instead of nautilus for that. In any case, tell nautilus not to manage the desktop by default by unchecking the according setting within gconf-editor. To keep GNOME applications happy we would need to have gconf and gnome-settings-manager running at every session start. One way to do this is to either include them in your new session script. They both need to be running to make GNOME applications realize their settings properly.&lt;br /&gt;
&lt;br /&gt;
===KDE===&lt;br /&gt;
{{Todo|...}}&lt;br /&gt;
&lt;br /&gt;
===Alternative Desktop Environments===&lt;br /&gt;
First of all, it is important to notice that GNOME and KDE are not the only Desktop Environments around.&lt;br /&gt;
Other complete (featuring most of: window management, session management, desktop management, file management and panel) desktop environments are:&lt;br /&gt;
* [http://xfce.org/ XFCE] &amp;lt;tt&amp;gt;uses GTK 2&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [http://rox.sourceforge.net ROX Desktop]&lt;br /&gt;
* [http://ede.sourceforge.net Equinox Desktop Environment] &amp;lt;tt&amp;gt;uses eFLTK, a modified version of FLTK&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [http://www.nongnu.org/antiright/ AntiRight Desktop Environment] &amp;lt;tt&amp;gt;uses LessTif / OpenMotif&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [http://foxdesktop.sourceforge.net/ FOX Desktop Environment] &amp;lt;tt&amp;gt;uses FOX Toolkit&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [http://www.gnustep.org/ GNUstep] &amp;lt;tt&amp;gt;provides it's own toolkit&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But also, some Window Managers exceed the task of managing windows towards providing a functional workbench. See below for a list.&lt;br /&gt;
&lt;br /&gt;
===Building your own Desktop===&lt;br /&gt;
&lt;br /&gt;
====Window Manager====&lt;br /&gt;
If you want to build your own customized desktop, a good start is choosing the window manager of your liking.  A list of window managers is at [http://xwinman.org].&lt;br /&gt;
&lt;br /&gt;
Here's a list of some of them:&lt;br /&gt;
*including basic Desktop Environment functionality&lt;br /&gt;
**the [[Wikipedia:NextStep|NextStep]] alike ones&lt;br /&gt;
***[http://www.windowmaker.org/ WindowMaker] &amp;lt;tt&amp;gt;(probably the most widespread NextStep like WM)&amp;lt;/tt&amp;gt;&lt;br /&gt;
***[http://www.afterstep.org/ AfterStep] &amp;lt;tt&amp;gt;(another one of those)&amp;lt;/tt&amp;gt;&lt;br /&gt;
**the Blackbox-like ones&lt;br /&gt;
***[http://blackboxwm.sourceforge.net/ BlackBox]&lt;br /&gt;
***[http://fluxbox.sourceforge.net/ FluxBox] &amp;lt;tt&amp;gt;(tabbed windows, lighweight)&amp;lt;/tt&amp;gt;&lt;br /&gt;
***[http://www.icculus.org/openbox/ OpenBox] &amp;lt;tt&amp;gt;(written from scratch to be fully ICCCM and EWMH compliant, fast and light-weight)&amp;lt;/tt&amp;gt;&lt;br /&gt;
**others&lt;br /&gt;
***[http://www.icewm.org/ IceWM] &amp;lt;tt&amp;gt;(lightweight, widespread)&amp;lt;/tt&amp;gt;&lt;br /&gt;
***[http://enlightenment.sourceforge.net/ Enlightenment] &amp;lt;tt&amp;gt;(lots of features and eye candy)&amp;lt;/tt&amp;gt;&lt;br /&gt;
***[http://www.pekwm.org PekWM] &amp;lt;tt&amp;gt;(kind of a one man show, but feature rich and extremely customizable)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*pure WindowManagers &lt;br /&gt;
**[http://golem.sourceforge.net/ Golem]&lt;br /&gt;
**[http://home.earthlink.net/~lab1701/larswm/ LarsWM] &amp;lt;tt&amp;gt;(unique tiling Window Manager)&amp;lt;/tt&amp;gt;&lt;br /&gt;
**[http://www.nongnu.org/ratpoison/ ratpoison] &amp;lt;tt&amp;gt;(modeled after gnu screen)&amp;lt;/tt&amp;gt;&lt;br /&gt;
**[http://fvwm.org/ fvwm] &amp;lt;tt&amp;gt;(small but powerful)&amp;lt;/tt&amp;gt;&lt;br /&gt;
**[http://www.jfc.org.uk/software/lwm.html lwm] &amp;lt;tt&amp;gt;(very small, and fast)&amp;lt;/tt&amp;gt;&lt;br /&gt;
**[http://www.all-day-breakfast.com/wm2/ wm2] &amp;lt;tt&amp;gt;really small Window Manager&amp;lt;/tt&amp;gt;&lt;br /&gt;
**[http://www.all-day-breakfast.com/wmx/ wmx] &amp;lt;tt&amp;gt;slightly more featureful version of wm2&amp;lt;/tt&amp;gt;&lt;br /&gt;
**[http://wmii.suckless.org wmii] &amp;lt;tt&amp;gt;keyboard driven approach, very small, dynamic window managing&amp;lt;/tt&amp;gt;&lt;br /&gt;
**[http://dwm.suckless.org dwm] &amp;lt;tt&amp;gt;keyboard-only driven approach, yet smaller than wmii, dynamic window managing&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Taskbar/Panel====&lt;br /&gt;
Another thing that especially users coming to Linux from the Windows world would probably like is a Panel or Taskbar.&lt;br /&gt;
&lt;br /&gt;
Here's a collection of independant low resource panels:&lt;br /&gt;
*[http://www.chatjunkies.org/fspanel/ F***ing Small Panel] &amp;lt;tt&amp;gt;(doesn't use any toolkit)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*[http://freshmeat.net/projects/hpanel/ HPanel] &amp;lt;tt&amp;gt;(doesn't use any toolkit)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*[http://fbpanel.sourceforge.net/ fbpanel] &amp;lt;tt&amp;gt;(depends on GTK 2)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*[http://jodrell.net/projects/perlpanel Perl Panel] &amp;lt;tt&amp;gt;(depends on GTK 2, gnomevfs, perl)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*[http://www.gkrellm.net/ GKrellM] &amp;lt;tt&amp;gt;(depends on GTK 2, flexible plugin based skinable vertical panel)&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Furthermore most of the windowmanagers allow you to have something like a panel/taskbar configured, and system tray applications like [http://stalonetray.sourceforge.net/ stalonetray] supply support for  persistent applications (i.e. those that on quit do not quit but minimize to a tray icon) like Skype.&lt;br /&gt;
&lt;br /&gt;
====Desktop Pinboard====&lt;br /&gt;
Then, the next thing you might be looking for is how to get icons onto your desktop. Usually this is done by the file manager who displays the content of a special directory as icons on the desktop. See the File Manager section to follow this approach.&lt;br /&gt;
&lt;br /&gt;
However, you might decide for a really lightwight file manager which doesn't offer this feature. In that case all hope is not lost, for there are also special programs specialized in desktop icon management. Such are:&lt;br /&gt;
* [http://idesk.sourceforge.net/ iDesk] &amp;lt;tt&amp;gt;(recent versions need imlib2 only)&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====File Manager====&lt;br /&gt;
File Managers are the fourth really important compontent of a desktop environment. There are plenty out their ranging from resource hugs to really lightweight and slim ones.&lt;br /&gt;
&lt;br /&gt;
File Managers come with three distinct general user interface approaches: the two pane gui, the spacial and the browser gui. The browser gui is the one the Windows Explorer starting from Windows 2000 uses as well as earlier versions of Nautilus. The spacial view is the one known from Windows 95 and more recent versions of Nautilus. The two pane view is know to many from Norten Commander, Directory Opus or your favorite FTP client.&lt;br /&gt;
&lt;br /&gt;
The following list provides an overview.&lt;br /&gt;
*FLTK&lt;br /&gt;
** [http://www.oksid.ch/flfm/ Fast Light File Manager] &amp;lt;tt&amp;gt;(spacial gui)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* FOX toolkit&lt;br /&gt;
** [http://roland65.free.fr/xfe/ X File Explorer] &amp;lt;tt&amp;gt;(browser and two pane gui)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*GTK&lt;br /&gt;
** [http://www.kaisersite.de/dfm/ Desktop File Manager] &amp;lt;tt&amp;gt;(spacial gui, incl. desktop icon management)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://www.uwyn.com/projects/fm/ FM] &amp;lt;tt&amp;gt;(spacial, MAC OS 9 like gui)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://radekc.regnet.cz/ Seksi Commander] &amp;lt;tt&amp;gt;(two pane gui)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*GTK 2&lt;br /&gt;
** [http://rox.sourceforge.net/ ROX Filer] &amp;lt;tt&amp;gt;(highly productive spacial gui, incl. panel and desktop icon management)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://blog.perldude.de/projects/filer/ Filer] &amp;lt;tt&amp;gt;(browser and two pane gui, requires Perl)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://xffm.sourceforge.net/ XFFM] &amp;lt;tt&amp;gt;(browser and spacial gui, requires some XFCE libs)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://logicaldesktop.sourceforge.net/ Logical Desktop] &amp;lt;tt&amp;gt;(browser gui, actually a very special approach)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://tuxcmd.sourceforge.net/ Tux Commander] &amp;lt;tt&amp;gt;(two pane gui)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://www.nongnu.org/gcmd/index.html Gnome Commander] &amp;lt;tt&amp;gt;(two pane gui)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://emelfm2.net/emelFM2/ emelFM2] &amp;lt;tt&amp;gt;(two pane gui with full customizable menu and toolbar, the best for power users)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://thunar.xfce.org/index.xhtml Thunar] &amp;lt;tt&amp;gt;(requires some XFCE libs)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://pcmanfm.sourceforge.net/ PCMan File Manager] &amp;lt;tt&amp;gt;(An extremly fast and lightweight file manager which features tabbed browsing and user-friendly interface. Requires GTK+ version 2.8.x)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* OpenMotif&lt;br /&gt;
** [http://www.musikwissenschaft.uni-mainz.de/~ag/xplore/xplore.php Xplore] &amp;lt;tt&amp;gt;(browser gui with productive 4 pane concept)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* QT 2&lt;br /&gt;
** [http://www.hi-net.cz/blaza/bfcommander/en/index.html BF-Commander] &amp;lt;tt&amp;gt;(two pane gui)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Qt3&lt;br /&gt;
** [http://www.beesoft.org/download_bsc.html Beesoft Commander] &amp;lt;tt&amp;gt; (fast &amp;amp; easy two panel file manager, like Norton Commander)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Tcl/Tk&lt;br /&gt;
** [http://users.tkk.fi/~mkivinie/X-Files/ X-Files] &amp;lt;tt&amp;gt;(two pane gui)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*X Toolkit&lt;br /&gt;
** [http://www.musikwissenschaft.uni-mainz.de/~ag/xfm/ X File Manager] &amp;lt;tt&amp;gt;(spacial gui)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://www.boomerangsworld.de/worker/ Worker] &amp;lt;tt&amp;gt;(two pane gui, highly productive and configurable)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://xnc.dubna.su/ X Northern Captain] &amp;lt;tt&amp;gt;(interesting flexible two pane gui)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*3D Filemanagers&lt;br /&gt;
** [http://www.determinate.net/webdata/seg/tdfsb.html TDFSB] &amp;lt;tt&amp;gt;(3D gui, the most impressing 3D file browser so far)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://www.forchheimer.se/bfm/ Brutal File Manager] &amp;lt;tt&amp;gt;(3D gui more for fun than productivity)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://turma.sourceforge.net/software/3dfile/ 3DFile] &amp;lt;tt&amp;gt;(3D gui)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** [http://orbis.sourceforge.net/ Orbis] &amp;lt;tt&amp;gt;(3D gui)&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Choosing applications==&lt;br /&gt;
===Web Browser===&lt;br /&gt;
This is highly dependent on the way you use your browser, it's often worth it to try out all and just track general&lt;br /&gt;
memory usage. Remember that &amp;lt;tt&amp;gt;top&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ps&amp;lt;/tt&amp;gt; don't report correct memory usage, track totals only.&lt;br /&gt;
&lt;br /&gt;
====Firefox====&lt;br /&gt;
Firefox is graphical web browser. One can install features like AdBlock and FlashClicktoplay which will decrease memory  and&lt;br /&gt;
processor usage by hiding Flash and Java -adverts.&lt;br /&gt;
&lt;br /&gt;
====Opera====&lt;br /&gt;
Opera is graphical web browser. You can easily enable/disable plug-ins and java (press F12) and decrease memory usage.&lt;br /&gt;
Opera uses QT as toolkit, so you may shave off some Mbytes off memory usage by using dynamically linked version if you use KDE.&lt;br /&gt;
&lt;br /&gt;
====Konqueror====&lt;br /&gt;
Konqueror is graphical web browser. It's integrated with KDE and has several advanced features (esp. ca. KDE 3.5).&lt;br /&gt;
You may save some megabytes by using it instead of other browsers when using KDE.&lt;br /&gt;
It's not necessarily heavy even when used without running KDE.&lt;br /&gt;
&lt;br /&gt;
====Dillo====&lt;br /&gt;
Dillo is minimalistic and very small graphical web browser. &lt;br /&gt;
&lt;br /&gt;
====Elinks/Lynx====&lt;br /&gt;
elinks/lynx are both text mode web browsers. &amp;lt;tt&amp;gt;elinks&amp;lt;/tt&amp;gt; handles tables and formatting much nicer than &amp;lt;tt&amp;gt;lynx&amp;lt;/tt&amp;gt;.&lt;br /&gt;
Both go very easy on memory footprint.&lt;br /&gt;
&lt;br /&gt;
{{Todo|...}}&lt;br /&gt;
&lt;br /&gt;
==Disabling unneeded system deamons==&lt;br /&gt;
Another thing you can do to improve performance is to get rid of unneaded system daemons launched from your init scripts. Disable them by using the according configuration interface of your distro or by deleting links in the according runlevel directories (usually in &amp;lt;code&amp;gt;/etc/rc.d/&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Daemons you usually don't need:&lt;br /&gt;
* httpd &amp;lt;tt&amp;gt;(Apache web server)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* mysqld &amp;lt;tt&amp;gt;(MySQL database server)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* smbd &amp;lt;tt&amp;gt;(SMB windows filesharing server)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* pppd &amp;lt;tt&amp;gt;(PPP server for connections through modems and serial lines)&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Adjusting filesystems==&lt;br /&gt;
You can also try to optimize memory usage by making sure that you have as little as possible of your filesystem residing in RAM. To do this make sure that the following mount points are set to reside on your harddisk in {{path|/etc/fstab}}.&lt;br /&gt;
* /dev (not possible if you use udev)&lt;br /&gt;
* /tmp&lt;br /&gt;
&lt;br /&gt;
Also make sure that you mount filesystems with extensive usage with noatime parameter (mount -o remount,ro /...), which disabled access time writes every time you access some file. Note that many incremental backups needs atime to work, such backups will then behave like full backup everytime. This depends on backup systems.&lt;br /&gt;
&lt;br /&gt;
==Other tips==&lt;br /&gt;
===Disk space===&lt;br /&gt;
When using Debian/Ubuntu/other derivative, use &amp;lt;tt&amp;gt;aptitude&amp;lt;/tt&amp;gt; as package manager, and use it as soon as possible. Use it and only it to install and remove packages.&lt;br /&gt;
&lt;br /&gt;
One of its most useful features is that it tracks packages you install and marks packages installed via dependency as such, so when you remove a package that is no longer used, or package updates and doesn't use a library anymore, that dependency will get uninstalled.&lt;br /&gt;
&lt;br /&gt;
You can mark packages installed as automatically installed by hitting 'M' (uppercase m), it will be marked for deinstallation if it's not longer required.&lt;br /&gt;
&lt;br /&gt;
You could also install &amp;lt;tt&amp;gt;localepurge&amp;lt;/tt&amp;gt;, which will remove all unneeded locales and localized manpages for packages you install.&lt;br /&gt;
&lt;br /&gt;
===System clock===&lt;br /&gt;
&amp;lt;tt&amp;gt;ntpd&amp;lt;/tt&amp;gt; can occupy around 4MB of memory, which is a substantial proportion of many older systems' total. [http://chrony.sunsite.dk/ &amp;lt;tt&amp;gt;chrony&amp;lt;/tt&amp;gt;] is a pair of programs that replace the standard &amp;lt;tt&amp;gt;ntp&amp;lt;/tt&amp;gt; and require much less memory.&lt;/div&gt;</summary>
		<author><name>Low</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_get_special_keys_to_work&amp;diff=40207</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=40207"/>
		<updated>2008-12-11T15:16:33Z</updated>

		<summary type="html">&lt;p&gt;Low: /* NumPad (KeyPad) keys access by a key combination */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
The following table gives an overview over the special keys found on ThinkPads and what is needed to make them work.&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
! key !! standard function{{footnote|1}} !! tools supporting key{{footnote|2}} !! configurability{{footnote|3}} !! remarks&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}} || - || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full || on release without completed key combination&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F1}} || - || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F2}} || lock screen || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full || in models from T/X/Z 60 onwards&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F3}} || blank screen || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F4}} || suspend to ram || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full || may generate ACPI event when not enabled in the ibm-acpi hotkey mask&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F5}} || switch bluetooth || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full || in models starting from 2002&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F6}} || - || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F7}} || toggle display || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]], [[#tpb configuration|tpb]] || additional actions || [[Sample Fn-F7 script]]&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F8}} || toggle trackpoint/touchpad || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]], [[#tpb configuration|tpb]] || additional actions ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F9}} || eject from dock || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F10}} || - || [[#ibm-acpi events|ibm-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F11}} || - || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F12}} || hibernate || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full || may generate ACPI event when not enabled in the ibm-acpi hotkey mask&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Home}} / {{key|Fn}}{{key|Pos1}} || brightness up || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]], [[#tpb configuration|tpb]], [[KMilo]] || additional actions ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|End}} || brightness down || [[thinkpad-acpi]], [[#tpb configuration|tpb]], [[KMilo]] || additional actions ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|PageUp}} || toggle thinklight || [[thinkpad-acpi]], [[#tpb configuration|tpb]], [[KMilo]] || additional actions ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Space}} || toggle zoom || [[thinkpad-acpi]], [[#tpb configuration|tpb]], [[KMilo]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Ins}} || - || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]]|| full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Del}} || - || [[#ibm-acpi events|ibm-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Backspace}} || - || [[#ibm-acpi events|ibm-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|NumLock}} || - || [[#xmodmap configuration|xmodmap]] || make working ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Windows}} || - || [[#xmodmap configuration|xmodmap]] || remapping ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Access IBM|#495988}} or {{ibmkey|ThinkPad|#494949}} or {{ibmkey|ThinkVantage|#495988}} || help application || [[thinkpad-acpi]],[[#tpb configuration|tpb]], [[KMilo]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Home|#494949}} || open web browser || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]], [[KMilo]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Search|#494949}} || open search application || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]], [[KMilo]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Mail|#494949}} || open mail application || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]], [[KMilo]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Favorites|#494949}} || open favorites || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Reload|#494949}} || reload web page || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Abort|#494949}} || abort loading page || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Backward|#494949}} || previous page || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full ||  ext. keyboards and ThinkPads starting from 2002&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Forward|#494949}} || next page || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full || ext. keyboards and ThinkPads starting from 2002&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume up|#494949}} || volume up || [[thinkpad-acpi]], [[#tpb configuration|tpb]], [[KMilo]] || additional actions ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume down|#494949}} || volume down || [[thinkpad-acpi]], [[#tpb configuration|tpb]], [[KMilo]] || additional actions ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume mute|#494949}} || mute volume || [[thinkpad-acpi]], [[#tpb configuration|tpb]], [[KMilo]] || additional actions ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Play/Pause|#494949}} || start/pause playback  || [[#xmodmap configuration|xmodmap]] || full || {{X60s}} (Fn+Arrow Down)&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Stop|#494949}} || stop playback || [[#xmodmap configuration|xmodmap]] || full || {{X60s}} (Fn+Arrow Up)&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Next|#494949}} || play next || [[#xmodmap configuration|xmodmap]] || full || {{X60s}} (Fn+Arrow Right)&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Previous|#494949}} || play previous || [[#xmodmap configuration|xmodmap]] || full || {{X60s}} (Fn+Arrow Left)&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Power|#494949}} || shutdown || [[#ibm-acpi events|ibm-acpi]],[[thinkpad-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 events|ibm-acpi]], [[thinkpad-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| Ultrabay lid || announce ultrabay change || [[#ibm-acpi events|ibm-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| Dock eject || eject from dock || [[#ibm-acpi events|ibm-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet power|#494949}} || shutdown || [[#ibm-acpi events|ibm-acpi]] || full || triggered on pressing 3secs, but notebook goes off on 5sec press&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet orientation|#494949}} || rotates screen || [[#Mapping keys with setkeycodes|setkeycodes]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet shortcut|#494949}} || shortcut menu || [[#Mapping keys with setkeycodes|setkeycodes]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Esc|#494949}} || esc key || [[#Mapping keys with setkeycodes|setkeycodes]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Enter|#494949}} || enter key || [[#mapping keys with setkeycodes|setkeycodes]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Up|#494949}} || up key || [[#Mapping keys with setkeycodes|setkeycodes]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Down|#494949}} || down key || [[#Mapping keys with setkeycodes|setkeycodes]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet (unlabeled)|#494949}} || down key || [[#Mapping keys with setkeycodes|setkeycodes]] || full ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For completeness, note that the WiFi enable/disable switch is located (on the X61 and other models that have it) just under the front edge of the base of the machine.  You should see a small horizontal slider switch.  Enable by sliding it rightwards, disable by sliding it leftwards.&lt;br /&gt;
&lt;br /&gt;
==Triggering key events==&lt;br /&gt;
===ibm-acpi/thinkpad-acpi events===&lt;br /&gt;
Some of the following events require a {{cmdroot|echo enable,0xffff &amp;gt;/proc/acpi/ibm/hotkey}} (when using ibm-acpi) in order to make acpi able to get information on them. Since the newer thinkpad-acpi has a larger number of bits that can be set in the mask, you might try {{cmdroot|echo enable,0xffffffff &amp;gt;/proc/acpi/ibm/hotkey}} if you are using this driver. These events can be used to [[How to configure acpid|configure acpid]].&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
|+ events triggered by [[ibm-acpi]] for {{path|/etc/acpi/events}} files. May vary on different models.&lt;br /&gt;
! key !! event&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F1}} || ibm/hotkey HKEY 00000080 00001001&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F2}} || ibm/hotkey HKEY 00000080 00001002&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F3}} || ibm/hotkey HKEY 00000080 00001003&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F4}} || ibm/hotkey HKEY 00000080 00001004&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F5}} || ibm/hotkey HKEY 00000080 00001005&lt;br /&gt;
|- &lt;br /&gt;
| {{key|Fn}}{{key|F6}} || ibm/hotkey HKEY 00000080 00001006&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F7}} || ibm/hotkey HKEY 00000080 00001007&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F8}} || ibm/hotkey HKEY 00000080 00001008&lt;br /&gt;
|- &lt;br /&gt;
| {{key|Fn}}{{key|F9}} || ibm/hotkey HKEY 00000080 00001009 &lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F10}} || ibm/hotkey HKEY 00000080 0000100a&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F11}} || ibm/hotkey HKEY 00000080 0000100b &lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F12}} || ibm/hotkey HKEY 00000080 0000100c&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Backspace}} || ibm/hotkey HKEY 00000080 0000100d&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Ins}} || ibm/hotkey HKEY 00000080 0000100e &lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Del}} || ibm/hotkey HKEY 00000080 0000100f &lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Home}}/{{key|Fn}}{{key|Pos1}} || ibm/hotkey HKEY 00000080 00001010&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|End}} || ibm/hotkey HKEY 00000080 00001011&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|PgUp}} || ibm/hotkey HKEY 00000080 00001012&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Space}} || ibm/hotkey HKEY 00000080 00001014&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume up|#494949}}|| ibm/hotkey HKEY 00000080 00001015&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume down|#494949}} || ibm/hotkey HKEY 00000080 00001016&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume mute|#494949}} || ibm/hotkey HKEY 00000080 00001017&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Access IBM|#495988}} or {{ibmkey|ThinkPad|#494949}} or {{ibmkey|ThinkVantage|#495988}} || ibm/hotkey HKEY 00000080 00001018&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;
| Dock eject || ibm/dock GDCK 00000003 00000001 &lt;br /&gt;
|-&lt;br /&gt;
| Wireless switch || ibm/hotkey HKEY 00000080 00007000 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
By disassembling and editing the DSDT, more events can be added.  HKEY events are triggered by calls to the MKHQ function, e.g. &amp;lt;tt&amp;gt;\_SB.PCI0.LPC.EC.HKEY.MHKQ(0Ã—1007)&amp;lt;/tt&amp;gt; will trigger &amp;quot;ibm/hotkey HKEY 00000080 00001007&amp;quot;.  Most of these can be found in &amp;lt;tt&amp;gt;_Qxx&amp;lt;/tt&amp;gt; methods within the DSDT, which are executed on embedded controller events, e.g. _Q10 is triggered by pressing Fn-F7.  You can add a call to MKHQ into an existing &amp;lt;tt&amp;gt;_Qxx&amp;lt;/tt&amp;gt; method to get it recognized by ibm-acpi as well as creating new &amp;lt;tt&amp;gt;_Qxx&amp;lt;/tt&amp;gt; methods, which if you're lucky will correspond to an EC event that IBM never used (e.g. A 770 will send Fn-Home/End/PgUp/PgDn to ibm-acpi if hacked in this fashion). For example, [http://www.wormnet.eu/ibm-g40/morebuttons.dsl this is a modified block of DSDT for a G40].&lt;br /&gt;
&lt;br /&gt;
=== ACPI events from the &amp;lt;tt&amp;gt;button&amp;lt;/tt&amp;gt; module===&lt;br /&gt;
&lt;br /&gt;
A few keys can generate ACPI events that result from the &amp;lt;tt&amp;gt;button&amp;lt;/tt&amp;gt; kernel module, as long as they are masked off in the &amp;lt;tt&amp;gt;ibm-acpi&amp;lt;/tt&amp;gt;/&amp;lt;tt&amp;gt;thinkpad-acpi&amp;lt;/tt&amp;gt; hotkey's mask or the hotkey function of the latter module is disabled.&lt;br /&gt;
&lt;br /&gt;
If you want the ThinkPad's BIOS and ACPI methods to know about these keys being pressed, you probably want to leave them masked out from ibm-acpi, and use their non-HKEY events listed below, instead.&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
|+ events triggered by ACPI when hotkey is masked out or disabled. &lt;br /&gt;
! key !! event !! T60 event&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Power|#494949}} || button/power PWRF 00000080 xxxxxxxx || button/power PWRF 00000080 00000001&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F4}} || button/sleep SLPB 00000080 00000001 || button/sleep SLPB 00000080 00000001&lt;br /&gt;
|-&lt;br /&gt;
| Display lid || button/lid LID 00000080 xxxxxxxx || button/lid LID 00000080 00000001&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===tpb configuration===&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
|+ configuration keywords for [[tpb]] (to put in {{path|/etc/tpbrc}})&lt;br /&gt;
! key !! config keyword&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Access IBM|#495988}} or {{ibmkey|ThinkPad|#494949}} || THINKPAD&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Home|#494949}} || HOME&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Search|#494949}} || SEARCH&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Mail|#494949}} || MAIL&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Favorites|#494949}} || FAVORITES&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Reload|#494949}} || RELOAD&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Abort|#494949}} || ABORT&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Backward|#494949}} || BACKWARD&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Forward|#494949}} || FORWARD&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}} || FN&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Space}} || CALLBACK (zoom on/off)&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|PageUp}} || CALLBACK (thinklight on/off)&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F7}} || CALLBACK (display lcd/crt/both)&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F8}} || CALLBACK (expand on/off)&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Home}} / {{key|Fn}}{{key|Pos1}} || CALLBACK (brightness &amp;lt;percent&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|End}} || CALLBACK (brightness &amp;lt;percent&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume up|#494949}} || CALLBACK (volume &amp;lt;percent&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume down|#494949}} || CALLBACK (volume &amp;lt;percent&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume mute|#494949}} || 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 &amp;lt;tt&amp;gt;XEVENTS OFF&amp;lt;/tt&amp;gt; in your {{path|/etc/tpbrc}}. &lt;br /&gt;
You can use an appropriate executable to [[How to inject fake keystrokes|inject fake keystrokes]].&lt;br /&gt;
&lt;br /&gt;
For Debian users, tpb is started from {{path|/etc/X11/Xsession.d/90tpb}}.&lt;br /&gt;
&lt;br /&gt;
'''Sound Button configuration'''&lt;br /&gt;
&lt;br /&gt;
''Note: Tested on T60p with Ubuntu 6.06 LTS''&lt;br /&gt;
&lt;br /&gt;
Most Thinkpads have a hardware sound mixer, thus the volumes buttons should work without configuration. However, this change is not reflected in the software mixer. tpb has a switch to enable software mixer support via OSS. The manual recommends this only for devices without a hardware mixer, but it also works for other hadware mixer enabled devices, even with the ALSA system. Just put MIXER ON in your {{path|/etc/tpbrc}} file and you can see the effect immediately in any ALSA mixer (e.g. kmix). For this to work you need write permissions to {{path|/dev/nvram}}.&lt;br /&gt;
&lt;br /&gt;
''Note: Tested on X21 with Ubuntu 6.06 LTS''&lt;br /&gt;
&lt;br /&gt;
On the ThinkPad X21 (and maybe some other older models) ACPI causes problems with tpb.  On an X21 using acpi the volume buttons would work occasionally, and the OSD for tpb functions would rarely work.  If a volume buttons was pressed too often, sometimes the computer would enter a low power (unplugged state) and would require a reboot.  The solution is to use APM instead of ACPI.  Instructions can be found in [[How_to_make_APM_work]].&lt;br /&gt;
&lt;br /&gt;
===KMilo configuration===&lt;br /&gt;
The programs to be executed by [[KMilo]] are configured via the KDE Control Center (&amp;lt;tt&amp;gt;kcontrol&amp;lt;/tt&amp;gt;), under &amp;lt;tt&amp;gt;System Administration --&amp;gt; IBM Thinkpad Laptop&amp;lt;/tt&amp;gt;. Note that you can use appropriate commands to [[How to inject fake keystrokes|inject fake keystrokes]].&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;
To discover the keycode that a certain keypress produces, use the tool {{cmduser|xev}} &lt;br /&gt;
&lt;br /&gt;
Usually you should write your keycode-keysym associations into the file {{path|~/.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 {{path|~/.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;
Load the assocation using the command&lt;br /&gt;
&lt;br /&gt;
{{cmduser|xmodmap ~/.Xmodmap}} &lt;br /&gt;
&lt;br /&gt;
(some configurations do this automatically upon X startup). &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;
{| {{prettytable}}&lt;br /&gt;
|+ keycodes and recommended keysyms&lt;br /&gt;
! key !! keycode !! keysym&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Access IBM|#495988}} or {{ibmkey|ThinkPad|#494949}} || 159 || XF86LaunchA&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Backward|#494949}} || 234 || XF86Back or F19&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Forward|#494949}} || 233 || XF86Forward or F20&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Play/Pause|#494949}} || 162 || XF86AudioPlay&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Stop|#494949}} || 164 || XF86AudioStop&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Next|#494949}} || 153 || XF86AudioNext&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Previous|#494949}} || 144 || XF86AudioPrev&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| {{ibmkey|Home|#494949}} || 178 || XF86HomePage&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Search|#494949}} || 229 || XF86Search&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Mail|#494949}} || 236 || XF86Mail&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Favorites|#494949}} || 230 || XF86AddFavorite or XF86Favorites&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Reload|#494949}} || 231 || XF86Reload&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Abort|#494949}} || 232 || XF86Stop&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}} || 227 || F35&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: You can also use xkeycaps (an X tool to display and edit the X keyboard mapping) to generate proper .Xmodmap.&lt;br /&gt;
&lt;br /&gt;
Note: if you are running [[tpb]] you might need to add the line &amp;lt;tt&amp;gt;XEVENTS=off&amp;lt;/tt&amp;gt; into your tpbrc to stop it from grabbing the key events and allow them to get through to X instead. See [[http://www.thinkwiki.org/wiki/Tpb]] for more detailed instruction on how to use tpb and xmodmap.&lt;br /&gt;
&lt;br /&gt;
Note: XF86Forward and XF86Back do not work correctly in Firefox. You may want to map them to F19 and F20 instead if you use Firefox.&lt;br /&gt;
&lt;br /&gt;
Note: The &amp;quot;XF86AudioPlay&amp;quot; etc. just works with a few programs. To make it work with more multimedia programs you have map the key to use something like [http://www.kde-apps.org/content/show.php/ReMoot?content=63140 ReMoot]. ReMoot is a command line wrapper that control 18 of the most common multimedia applications. &lt;br /&gt;
&lt;br /&gt;
=====Enabling the Windows and Menu Keys=====&lt;br /&gt;
On some systems the Windows and Menu keys may not be recognized.  You can enable then by&lt;br /&gt;
making the following changes:&lt;br /&gt;
&lt;br /&gt;
        keycode 115 = F13&lt;br /&gt;
        keycode 227 = F35&lt;br /&gt;
&lt;br /&gt;
F13 and F35 are used for the Windows and and Menu keys respectively.  Labelling keycpode 227 as &amp;quot;Menu&amp;quot; may conflict with the right-mouse-click event.&lt;br /&gt;
&lt;br /&gt;
=====Using Caps Lock as Super L (Windows key)=====&lt;br /&gt;
You can easily use Caps Lock as Win key by adding the following in your ~/.Xmodmap:&lt;br /&gt;
        ! No Caps Lock&lt;br /&gt;
        clear lock&lt;br /&gt;
        ! Caps Lock as Win key&lt;br /&gt;
        add mod4 = Caps_Lock&lt;br /&gt;
=====NumLock=====&lt;br /&gt;
On the ThinkPad {{600}}, {{T20}}, {{T21}}, {{T22}}, {{T30}}, {{X20}}, {{X21}},  {{X31}}, {{X40}}, {{T42p}}, {{T43}}, {{R51}}, {{R52}} and possibly other models, X does not recognize the keycode for {{key|NumLk}} = {{key|Shift}}+{{key|ScrLk}}. To fix this, add the following to {{path|~/.Xmodmap}} in your home directory or {{path|/etc/X11/Xmodmap}} and run &amp;lt;tt&amp;gt;xmodmap&amp;lt;/tt&amp;gt;, ex: &amp;lt;tt&amp;gt;xmodmap ~/.Xmodmap&amp;lt;/tt&amp;gt;:&lt;br /&gt;
 keycode 77 = Num_Lock&lt;br /&gt;
&lt;br /&gt;
This configuration also enables the respective LED.&lt;br /&gt;
&lt;br /&gt;
Please note, pressing the {{key|Shift}}+{{key|ScrLk}} key combination, without first following the above configuration, will start an accessibility feature, which will allow the numeric keypad to maneuver the mouse pointer.  Starting this accessibility feature and subsequently running xmodmap, as described above, results in the accessibility feature and the numeric lock LED functioning simultaneously.  As such, the above configuration should be completed before the accessibility feature is started in order to produce numbers.&lt;br /&gt;
======T60 (and possibly others)======&lt;br /&gt;
It seems that on the T60, PrtSc, ScrLk and Pause all generate the correct keycodes, however Fn-PrtSc (labelled as SysRq) generates keycode 64 (Alt_L) followed by the expected 111 (Sys_Req) on down and the same thing in the opposite order on release. Fn-ScrLk (labelled as NmLk) does indeed toggle the Numlock, but only seems to register as an X event the first time it is engaged. The above solution does not appear to work. This is perhaps because the Numlock toggle is built into the firmware rather than controlled by the kernel. Finally, Fn-Pause (labelled as Break) generates keycode 37 (Control_L) followed by the expected keycode 110 (Break) on down and the same thing in reverse order on release.&lt;br /&gt;
=====NumPad (KeyPad) keys access by a key combination=====&lt;br /&gt;
The current state is that you have to switch NumLock '''on''' via {{key|Fn}}+{{key|ScrLk}} and then e.g. type {{key|u}} to get a {{key|KP_4}} (NumPad 4). To get back to normal keyboard, you have to type {{key|Fn}}+{{key|ScrLk}} again.&lt;br /&gt;
&lt;br /&gt;
Some people (including me) are missing on recent Thinkpads the option to have Fn as a modifier key to access the NumPad instead, i.e. and e.g. {{key|Fn}}+{{key|u}} gives you {{key|KP_4}}.&lt;br /&gt;
&lt;br /&gt;
There is currently no way to make this work in a simple way (pleeeease correct me if I am wrong!), though there is a work-around. Instead of using {{key|Fn}} for accessing the NumPad, {{key|CapsLock}} can get this function by being mapped as Mode_switch (the {{key|AltGr}} on international keyboards). The {{key|Fn}} can be remapped to be Caps_Lock - while at the same time retaining its function to access the special laptop functions (e.g. {{key|Fn}}+{{key|F4}} for sleep}}, by using .Xmodmap.&lt;br /&gt;
&lt;br /&gt;
So on my R60 running fvwm@Slackware 12.1 the .Xmodmap would look like this:&lt;br /&gt;
&lt;br /&gt;
 ! Make the forward and back buttons work&lt;br /&gt;
    keycode 233 = XF86Forward&lt;br /&gt;
    keycode 234 = XF86Back&lt;br /&gt;
 ! Make the WIN key to Super modifier&lt;br /&gt;
    keycode 115 = Super_L&lt;br /&gt;
 ! Set the Caps_Lock physical key to Mode_switch (like AltGr on intl. keyboards)&lt;br /&gt;
    keycode 66 = Mode_switch&lt;br /&gt;
 ! Set the Fn key to work as Caps_Lock now. The special key combos like Fn-F4 for &amp;quot;sleep&amp;quot; still work then&lt;br /&gt;
    keycode 227 = Caps_Lock&lt;br /&gt;
    clear lock&lt;br /&gt;
    add lock = Caps_Lock&lt;br /&gt;
 ! Now we activate those new keys. Find some free mod slots (xmodmap) and put them there.&lt;br /&gt;
    clear mod4&lt;br /&gt;
    clear mod5&lt;br /&gt;
    add mod4 = Super_L&lt;br /&gt;
    add mod3 = Mode_switch&lt;br /&gt;
 ! It's time to add the keypad keys to the third position of the key definition (pure shift mode_switch shift+mode_switch)&lt;br /&gt;
    keycode 16 = 7 ampersand KP_7&lt;br /&gt;
    keycode 17 = 8 asterisk KP_8&lt;br /&gt;
    keycode 18 = 9 parenleft KP_9&lt;br /&gt;
      keycode 19 = 0 parenright KP_Divide&lt;br /&gt;
    keycode 30 = u U KP_4&lt;br /&gt;
    keycode 31 = i I KP_5&lt;br /&gt;
    keycode 32 = o O KP_6&lt;br /&gt;
      keycode 33 = p P KP_Multiply&lt;br /&gt;
    keycode 44 = j J KP_1&lt;br /&gt;
    keycode 45 = k K KP_2&lt;br /&gt;
    keycode 46 = l L KP_3&lt;br /&gt;
      keycode 47 = semicolon colon KP_Subtract&lt;br /&gt;
    keycode 58 = m M KP_0&lt;br /&gt;
 ! ... I have to use the coma key, too, on the keypad...so I set it to be F20 (which is not existing on normal keyboards and thus is free... check for side effects in programmes accepting F12+ keys!)&lt;br /&gt;
    keycode 59 = comma less F20 &lt;br /&gt;
    keycode 60 = period greater KP_Decimal    &lt;br /&gt;
      keycode  61 = slash question KP_Add&lt;br /&gt;
&lt;br /&gt;
{{WARN|Your keycodes might be different as well as your '''mod''#''''' settings.}}&lt;br /&gt;
Use {{cmduser|xmodmap}} and {{cmduser|xmodmap -pke}} to check your ModMap, and the tool {{cmduser|xev}} to obtain your exact key codes.&lt;br /&gt;
&lt;br /&gt;
===Mapping keys with setkeycodes===&lt;br /&gt;
You can use the setkeycodes command to remap certain keys. I.e. you can use {{cmdroot|setkeycodes 6e 109 6d 104 69 28 6b 1}} to map the Tablets Up and Down keys to the standard PageUp and PageDown keys and Tablet Escape and Enter to their respective keys.&lt;br /&gt;
&lt;br /&gt;
The following table shows the keycodes generated by the ThinkPad keys.&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
|+ keycodes&lt;br /&gt;
! key !! keycode&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet orientation|#494949}} || 0x6c&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Shortcut|#494949}} || 0x68&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Esc|#494949}} || 0x6b&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Enter|#494949}} || 0x69&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Up|#494949}} || 0x6d&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Down|#494949}} || 0x6e&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet (unlabeled)|#494949}} || 0x67&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===acpi_fakekey===&lt;br /&gt;
You can turn acpi events into user-level xevents by putting &amp;lt;tt&amp;gt;acpi_fakekey&amp;lt;/tt&amp;gt; commands into the acpi action scripts. There are several layers involved in using acpi keys in this way, so I'll go through the example of using the ThinkVantage button to open xmms.&lt;br /&gt;
&lt;br /&gt;
My ThinkVantage button generates an '''acpi event''' &amp;quot;ibm/hotkey HKEY 00000080 00001018&amp;quot;, so we have the event file &amp;lt;tt&amp;gt;/etc/acpi/events/ThinkVantage&amp;lt;/tt&amp;gt; for it which executes the script &amp;lt;tt&amp;gt;/etc/acpi/actions/fakekey-macro.sh&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
event=ibm/hotkey HKEY 00000080 00001018&lt;br /&gt;
action=/etc/acpi/actions/fakekey-macro.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In turn, the executable &amp;lt;tt&amp;gt;/etc/acpi/actions/fakekey-macro.sh&amp;lt;/tt&amp;gt; script calls acpi_fakekey with the '''key number''' defined in &amp;lt;tt&amp;gt;/usr/share/acpi-support/key-constants&amp;lt;/tt&amp;gt; as $KEY_MACRO which is 112 (you could just as well choose an other key number, just make sure that it doesn't belong to something else like the &amp;quot;j&amp;quot; key or something). &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
. /usr/share/acpi-support/key-constants&lt;br /&gt;
acpi_fakekey $KEY_MACRO &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
I have no idea how this actually corresponds to which xevent is generated, so I can find out out by running the program &amp;lt;tt&amp;gt;xev&amp;lt;/tt&amp;gt; and hitting the ThinkVantage button while the mouse is in the &amp;lt;tt&amp;gt;xev&amp;lt;/tt&amp;gt; window (remember to &amp;lt;tt&amp;gt;/etc/init.d/acpid restart&amp;lt;/tt&amp;gt; first if you just created the &amp;lt;tt&amp;gt;/etc/acpi/events/ThinkVantage&amp;lt;/tt&amp;gt; file). I get something popping up in the terminal where I ran xev that looks like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
KeyPress event, serial 30, synthetic NO, window 0x2800001,&lt;br /&gt;
    root 0x6a, subw 0x0, time 2000522842, (138,83), root:(781,500),&lt;br /&gt;
    state 0x0, keycode 239 (keysym 0x0, NoSymbol), same_screen YES,&lt;br /&gt;
    XLookupString gives 0 bytes: &lt;br /&gt;
    XmbLookupString gives 0 bytes: &lt;br /&gt;
    XFilterEvent returns: False&lt;br /&gt;
&lt;br /&gt;
KeyRelease event, serial 30, synthetic NO, window 0x2800001,&lt;br /&gt;
    root 0x6a, subw 0x0, time 2000522842, (138,83), root:(781,500),&lt;br /&gt;
    state 0x0, keycode 239 (keysym 0x0, NoSymbol), same_screen YES,&lt;br /&gt;
    XLookupString gives 0 bytes: &lt;br /&gt;
    XFilterEvent returns: False&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This tells me that the &amp;lt;tt&amp;gt;acpi_fakekey 112&amp;lt;/tt&amp;gt; as executed by hitting the ThinkVantage button generates KeyPress event followed by a KeyRelease event with '''keycode''' 239 and that this keycode has been assigned no corresponding '''keysym'''. Thus, I am free to assign the keycode to any keysym I want. You can find a list of available keysyms in &amp;lt;tt&amp;gt;/usr/share/X11/XKeysymDB&amp;lt;/tt&amp;gt;. Again try and pick one that is not likely to have already been taken by something, such as &amp;lt;tt&amp;gt;XF86LaunchA&amp;lt;/tt&amp;gt;. To assign this keysym to keycode 239, you can either edit ~/.Xmodmap on an individual user basis, or edit the systemwide &amp;lt;tt&amp;gt;/etc/X11/Xmodmap&amp;lt;/tt&amp;gt; file to contain the line&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
keycode 239 = XF86LaunchA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you choose to go with the former, you may need to run &amp;lt;tt&amp;gt;xmodmap ~/.Xmodmap&amp;lt;/tt&amp;gt; for every login session in order to read in your ~/.Xmodmap file if your window manager does not do it for you. Regardless of which option you choose, you can run &amp;lt;tt&amp;gt;xmodmap &amp;lt;file&amp;gt;&amp;lt;/tt&amp;gt; to read in the updated Xmodmap file without logging out and logging back in.&lt;br /&gt;
&lt;br /&gt;
You should now find that hitting the ThinkVantage button creates the following output from &amp;lt;tt&amp;gt;xev&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
KeyPress event, serial 55, synthetic NO, window 0x2800001,&lt;br /&gt;
    root 0x6a, subw 0x0, time 2001286078, (0,106), root:(643,523),&lt;br /&gt;
    state 0x0, keycode 239 (keysym 0x1008ff4a, XF86LaunchA), same_screen YES,&lt;br /&gt;
    XLookupString gives 0 bytes: &lt;br /&gt;
    XmbLookupString gives 0 bytes: &lt;br /&gt;
    XFilterEvent returns: False&lt;br /&gt;
&lt;br /&gt;
KeyRelease event, serial 55, synthetic NO, window 0x2800001,&lt;br /&gt;
    root 0x6a, subw 0x0, time 2001286078, (0,106), root:(643,523),&lt;br /&gt;
    state 0x0, keycode 239 (keysym 0x1008ff4a, XF86LaunchA), same_screen YES,&lt;br /&gt;
    XLookupString gives 0 bytes: &lt;br /&gt;
    XFilterEvent returns: False&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note the change of &amp;lt;tt&amp;gt;(keysym 0x0, NoSymbol)&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;(keysym 0x1008ff4a, XF86LaunchA)&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You're now ready to map &amp;lt;tt&amp;gt;XF86LaunchA&amp;lt;/tt&amp;gt; to executing xmms. This is highly dependent on what keygrabber you decide to use. For openbox, I edit my &amp;lt;tt&amp;gt;~/.config/openbox/rc.xml&amp;lt;/tt&amp;gt; file and add the following entry in the  &amp;lt;keyboard&amp;gt; section:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;lt;keybind key=&amp;quot;XF86LaunchA&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;action name=&amp;quot;Execute&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;startupnotify&amp;gt;&lt;br /&gt;
          &amp;lt;enabled&amp;gt;true&amp;lt;/enabled&amp;gt;&lt;br /&gt;
        &amp;lt;/startupnotify&amp;gt;&lt;br /&gt;
        &amp;lt;command&amp;gt;&lt;br /&gt;
	  xmms&lt;br /&gt;
	&amp;lt;/command&amp;gt;&lt;br /&gt;
      &amp;lt;/action&amp;gt;&lt;br /&gt;
    &amp;lt;/keybind&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
After, right clicking on the desktop and selecting the &amp;quot;Reconfigure&amp;quot; menu option, you should then have xmms pop up when you hit the ThinkVantage key.&lt;br /&gt;
&lt;br /&gt;
==Example Applications==&lt;br /&gt;
===Web Browsers===&lt;br /&gt;
====Firefox (&amp;lt;3.0)====&lt;br /&gt;
&lt;br /&gt;
There are various ways to assign actions to the browser keys. The easiest way is to install [http://mozilla.dorando.at/keyconfig.xpi keyconfig.xpi] from http://mozilla.dorando.at, which adds a menu entry Tools-&amp;gt;Keyconfig. Then you can assign any action you want to the F19/F20 keys (you still need to create {{path|~/.Xmodmap}} as explained above).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The remaining discussion gives you various more complicated ways to achieve the same thing. &lt;br /&gt;
To have firefox make use of the browser keys you need to modify one of its files{{footnote|4}}.&lt;br /&gt;
To do this you will first need to extract it from the {{path|browser.jar}} archive. Do...&lt;br /&gt;
&lt;br /&gt;
Step 1:  Edit .Xmodmap and add entries for F19 and F20 as explained above.&lt;br /&gt;
&lt;br /&gt;
Step 2:&lt;br /&gt;
&lt;br /&gt;
Note: &amp;lt;firefox-directory&amp;gt; is probably /usr/lib/firefox. Use your version so, if you have 3.0.1 or 3.0.2 use /usr/lib/firefox-3.0.1&lt;br /&gt;
&lt;br /&gt;
:{{cmdroot|cd &amp;lt;firefox-directory&amp;gt;/chrome}}&amp;lt;br /&amp;gt;&lt;br /&gt;
:{{cmdroot|unzip browser.jar}}&lt;br /&gt;
&lt;br /&gt;
The file of interest is {{path|content/browser/browser.xul}}. Edit it {and don't forget to make a backup copy first}...&lt;br /&gt;
:{{cmdroot|vi content/browser/browser.xul}}&lt;br /&gt;
&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;goBackKb&amp;quot; keycode=&amp;quot;VK_F19&amp;quot; command=&amp;quot;Browser:Back&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;key id=&amp;quot;goForwardKb&amp;quot; keycode=&amp;quot;VK_F20&amp;quot; command=&amp;quot;Browser:Forward&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Command you need for Next Tab &lt;br /&gt;
 &amp;lt;key id=&amp;quot;goBackTabKb&amp;quot; keycode=&amp;quot;VK_F19&amp;quot; oncommand=&amp;quot;gBrowser.mTabContainer.advanceSelectedTab(-1)&amp;quot; /&amp;gt;&lt;br /&gt;
For the Previous Tab &lt;br /&gt;
 &amp;lt;key id=&amp;quot;goForwardTabKb&amp;quot; keycode=&amp;quot;VK_F20&amp;quot; oncommand=&amp;quot;gBrowser.mTabContainer.advanceSelectedTab(1)&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now save the file and repackage the {{path|browser.jar}} archive...&lt;br /&gt;
:{{cmdroot|zip -rD0 browser.jar content/browser/}}&lt;br /&gt;
&lt;br /&gt;
That's it.&lt;br /&gt;
&lt;br /&gt;
Step 3:  Restart Firefox.&lt;br /&gt;
&lt;br /&gt;
{{HINT|Outdated: Another interesting Page on Firefox is http://dqd.com/~mayoff/notes/thinkpad/dqdnavkeys/ It uses different key mappings (F19 resp. F20) but a ready [http://dqd.com/~mayoff/notes/thinkpad/dqdnavkeys/dqdnavkeys-1.2.xpi .xpi] is provided which is pretty comfortable. However, this xpi file does not install on Firefox 1.5. or later.}}&lt;br /&gt;
&lt;br /&gt;
{{HINT| You can also use the [http://extensionroom.mozdev.org/more-info/keyconfig keyconfig] extension to configure custom keys.  This extension works with Firefox 1.5 and also with Firefox 2.0. The Command you need for Next Tab is gBrowser.mTabContainer.advanceSelectedTab(1,true); For Previous Tab its gBrowser.mTabContainer.advanceSelectedTab(-1,true); You can alternatively install the [http://www.pqrs.org/~tekezo/firefox/extensions/functions_for_keyconfig/index.html functions for keyconfig] and set the variable f4kc_NextTab to F20 and f4kc_PrevTab to F19.}}.&lt;br /&gt;
&lt;br /&gt;
====Firefox 3.0====&lt;br /&gt;
Thankfully the people at Mozilla decided to include the expected functionality for the XF86Back and XF86Forward keysyms in the new release so all you need to do is&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;# printf 'keycode 234 = XF86Back\nkeycode 233 = XF86Forward' &amp;gt;&amp;gt; /etc/X11/Xmodmap&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
And to make this take effect immediately (i.e., without having to log out and log in again), as a regular user run:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;{{cmduser|Xmodmap /etc/X11/Xmodmap}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Hardy Heron, the xmodmap command is all lowercase. Also, the /etc/X11/Xmodmap file is not being read on boot. I've added the command to my .bashrc to have it called on startup.&lt;br /&gt;
&lt;br /&gt;
====Konqueror====&lt;br /&gt;
KDE allows you set key mappings for KDE applications (Go to KMenu &amp;gt; System &amp;gt; Control Center &amp;gt; Regional &amp;amp; Accessibility &amp;gt; Keyboard Shortcuts). By default (at least in KDE 3.5), XF86Back and XF86Forward are set as alternatives to Alt-Left and Alt-Right, and are mapped to KDE Back and Forward navigation actions.  &lt;br /&gt;
&lt;br /&gt;
If you use Konqueror as your only browser, you only need to set up {{path|~/.Xmodmap}} as described [[#xmodmap configuration|above]] to assign ThinkPad back/forward keys to the symbols XF86Back/XF86Forward. This also make these keys work for other KDE applications such as Quanta Plus, KPackage and so on (not all KDE applications honor this setting, e.g. KDE help system doesn't).&lt;br /&gt;
&lt;br /&gt;
If you want to use Firefox, however, the above settings do not work. You will have to map ThinkPad back/forward keys to F19/F20 as described [[#Firefox|above]], and change KDE navigation key settings to use F19/F20 instead of the default.&lt;br /&gt;
&lt;br /&gt;
====Opera====&lt;br /&gt;
However this isn't a simple configration file, you can set your browser manually.&amp;lt;br /&amp;gt;&lt;br /&gt;
Go to &amp;lt;i&amp;gt;Tool &amp;gt; Settings &amp;gt; Mouse and keyboard &amp;gt; Keyboard settings &amp;gt; Edit &amp;gt; Browser Window&amp;lt;/i&amp;gt;. There add F19 - Back and F20 - Forward. Now you can surf using your TP keys ;-)&lt;br /&gt;
&lt;br /&gt;
====Epiphany====&lt;br /&gt;
To get the keys work in epiphany, you could use the extension from [http://crashman.homelinux.org/~andre/public/epiphany%20extensions/thinkpad%20browserkeys/ here]&lt;br /&gt;
You just need to edit your Xmodmap like described for Firefox &amp;lt; 3.0 (bind the keys on F19 and F20)&lt;br /&gt;
&lt;br /&gt;
===Open an application===&lt;br /&gt;
&lt;br /&gt;
To configure the ThinkVantage button to open a terminal window in Gnome:&lt;br /&gt;
&lt;br /&gt;
Step 1:&lt;br /&gt;
Use xev to find the keycode generated by the button on your machine.  In my case is is 159.&lt;br /&gt;
&lt;br /&gt;
Step 2:&lt;br /&gt;
Create an entry in .Xmodmap like so&lt;br /&gt;
&lt;br /&gt;
keycode 159 = XF86LaunchA&lt;br /&gt;
&lt;br /&gt;
replacing 159 by the keycode found in step 1.  Load the map using&lt;br /&gt;
&lt;br /&gt;
:{{cmd|xmodmap ~/.Xmodmap}}&lt;br /&gt;
&lt;br /&gt;
Step 3:&lt;br /&gt;
Configure the required function (e.g. open terminal window) in System-&amp;gt;Preferences-&amp;gt;Keyboard shortcuts&lt;br /&gt;
&lt;br /&gt;
===Window Managers===&lt;br /&gt;
====fvwm====&lt;br /&gt;
To get the {{ibmkey|Forward|#494949}} and {{ibmkey|Backward|#494949}} keys to cycle through pages in the virtual desktop, add this to your {{path|~/.fvwmrc}}:&lt;br /&gt;
 Key    XF86Back     A      A   Scroll     -100000   0&lt;br /&gt;
 Key    XF86Forward  A      A   Scroll     +100000   0&lt;br /&gt;
If you use multiple virtual desktops, you could instead use the keys to flip between them by using GotoDesk.&lt;br /&gt;
&lt;br /&gt;
====fluxbox====&lt;br /&gt;
To get the keys to cycle through pages in the virtual desktop, add this to your {{path|~/.fluxbox/keys}}:&lt;br /&gt;
 None F19 :PrevWorkspace&lt;br /&gt;
 None F20 :NextWorkspace&lt;br /&gt;
&lt;br /&gt;
====pekwm configuration====&lt;br /&gt;
You can make the two browser keys switch workspaces in pekwm, by adding the following two lines to the {{path|~/.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;br /&gt;
&lt;br /&gt;
====pwm====&lt;br /&gt;
Another example how to use these two keys to switch between pwm tabs. These two lines should be added to {{path|~/.pwm/keys-default.conf}} or {{path|/etc/pwm/keys-default.conf}}:&lt;br /&gt;
 kbind &amp;quot;Back&amp;quot;, &amp;quot;switch_rot&amp;quot;, -1&lt;br /&gt;
 kbind &amp;quot;Forward&amp;quot;, &amp;quot;switch_rot&amp;quot;, 1&lt;br /&gt;
&lt;br /&gt;
====IceWM====&lt;br /&gt;
To make IceWM cycle workspaces using the {{ibmkey|Forward|#494949}} and {{ibmkey|Backward|#494949}} keys, change these two options in {{path|~/.icewm/preferences}} (Provided you assigned keysyms F19 and F20 with xmodmap):&lt;br /&gt;
 # &amp;quot;Previous workspace&amp;quot; shortcut&lt;br /&gt;
 KeySysWorkspacePrev=&amp;quot;F19&amp;quot;&lt;br /&gt;
 # &amp;quot;Next workspace&amp;quot; shortcut&lt;br /&gt;
 KeySysWorkspaceNext=&amp;quot;F20&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Gnome/metacity ====&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.ubuntu.com/Keybindings Ubuntu guide].&lt;br /&gt;
&lt;br /&gt;
===Other Uses===&lt;br /&gt;
====Console tools configuraton====&lt;br /&gt;
To make the {{ibmkey|Forward|#494949}} and {{ibmkey|Backward|#494949}} keys useful in console, add this to your keymap ({{path|/etc/console/boottime.kmap.gz}} in {{Debian}}):&lt;br /&gt;
 keycode 158 = Decr_Console&lt;br /&gt;
 keycode 159 = Incr_Console&lt;br /&gt;
&lt;br /&gt;
Alternatively you can load this script (perhaps on system startup) to enable Backward/Forward button console (VT) switch:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 echo keycode 158 = Decr_Console | loadkeys&lt;br /&gt;
 echo keycode 159 = Incr_Console | loadkeys&lt;br /&gt;
&lt;br /&gt;
It should work with any distro.&lt;br /&gt;
&lt;br /&gt;
====Cycling through tabs====&lt;br /&gt;
In Gnome and Xfce4, Ctrl-PageUp/Ctrl-PageDown move to the previous/following open tab in all applications that have tabbed user interfaces (terminal emulator, web browser, ...). To make use of the {{ibmkey|Forward|#494949}} and {{ibmkey|Backward|#494949}} keys for this task, there're two possibilities.&lt;br /&gt;
&lt;br /&gt;
For both ways, you should map the keycodes 233 and 234 to XF86Back and XF86Forward as described in [[#xmodmap_configuration|xmodmap configuration]].&lt;br /&gt;
&lt;br /&gt;
=====Using xautomation=====&lt;br /&gt;
xautomation can be found [http://hoopajoo.net/projects/xautomation.html here].&lt;br /&gt;
&lt;br /&gt;
Create two files with permissions 755:&lt;br /&gt;
&lt;br /&gt;
{{path|/usr/local/bin/tp_back}}:&lt;br /&gt;
&amp;lt;bash&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
/usr/bin/xte 'keydown Control_L' 'keydown Page_Up' 'keyup Page_Up' 'keyup Control_L'&lt;br /&gt;
&amp;lt;/bash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{path|/usr/local/bin/tp_forward}}:&lt;br /&gt;
&amp;lt;bash&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
/usr/bin/xte 'keydown Control_L' 'keydown Page_Down' 'keyup Page_Down' 'keyup Control_L'&lt;br /&gt;
&amp;lt;/bash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use your desktop's keyboard shortcut editor to assign XF86Back as a shortcut for tp_back and XF86Forward as a shortcut for tp_forward.&lt;br /&gt;
&lt;br /&gt;
This should work in all distros and with all window managers (you might have to use other key combinations than Ctrl-PageUp and Ctrl-PageDown).&lt;br /&gt;
&lt;br /&gt;
=====Redirecting XF86Back/XF86Forward=====&lt;br /&gt;
Create {{path|/etc/X11/xkb/compat/thinkpad}}:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// $XFree86$&lt;br /&gt;
//  XFree86 special keysyms&lt;br /&gt;
default partial xkb_compatibility &amp;quot;basic&amp;quot;  {&lt;br /&gt;
    interpret.repeat= True;&lt;br /&gt;
&lt;br /&gt;
    interpret  XF86Back {&lt;br /&gt;
        action = Redirect(Key=&amp;lt;PGUP&amp;gt;, modifiers=Control);&lt;br /&gt;
    };&lt;br /&gt;
    interpret  XF86Forward {&lt;br /&gt;
        action = Redirect(Key=&amp;lt;PGDN&amp;gt;, modifiers=Control);&lt;br /&gt;
    };&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit {{path|/etc/X11/xkb/compat/complete}} and add &amp;lt;tt&amp;gt;'''augment &amp;quot;thinkpad&amp;quot;'''&amp;lt;/tt&amp;gt; so that it looks similar to the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// $XKeyboardConfig: xkbdesc/compat/complete,v 1.3 2005/10/17 00:42:11 svu Exp $&lt;br /&gt;
// $Xorg: complete,v 1.3 2000/08/17 19:54:34 cpqbld Exp $&lt;br /&gt;
default xkb_compatibility &amp;quot;complete&amp;quot;  {&lt;br /&gt;
    include &amp;quot;basic&amp;quot;&lt;br /&gt;
    augment &amp;quot;iso9995&amp;quot;&lt;br /&gt;
    augment &amp;quot;mousekeys&amp;quot;&lt;br /&gt;
    augment &amp;quot;accessx(full)&amp;quot;&lt;br /&gt;
    augment &amp;quot;misc&amp;quot;&lt;br /&gt;
    augment &amp;quot;xfree86&amp;quot;&lt;br /&gt;
    augment &amp;quot;level5&amp;quot;&lt;br /&gt;
    augment &amp;quot;thinkpad&amp;quot;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==External Sources==&lt;br /&gt;
*[http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-51537 IBMs page on configuring the ThinkPad buttons (ThinkPad, Access IBM, Mail, Search, and Home buttons) under Linux]&lt;br /&gt;
*[http://dqd.com/~mayoff/notes/thinkpad/dqdnavkeys/ Rob Mayoffs page on using IBM Keyboard Navigation Keys in Linux Mozilla and Firefox]&lt;br /&gt;
*[http://snarfed.org/space/thinkpad+keys+in+firefox Ryan Barretts blog article about using the browser keys in Firefox]&lt;br /&gt;
*[http://chaotika.org/~bluesceada/?page=soft&amp;amp;sub=thinkpad#acpibutn DennisG's help to get the ibm-acpi buttons do useful things] on a {{Z61e}} and possibly {{Z61m}}, {{Z61t}} and {{Z61p}}&lt;br /&gt;
&lt;br /&gt;
{{footnotes|&lt;br /&gt;
#Note that the associated functionality for Fn-F* key combinations is not consistent amongst all ThinkPads. We are maintaining [[Default meanings of special keys|a table of associated meanings]].&lt;br /&gt;
#if there are more than one tool listed, one is sufficient&lt;br /&gt;
#'full' means you can completely reassign any action to be triggered by the key, 'additional actions' means you can trigger actions in addition to the standard function of the key, which can not be changed.&lt;br /&gt;
#Thanks go to Ryan Barrett for writing the [http://snarfed.org/space/thinkpad+keys+in+firefox little howto] on [http://snarfed.org/space/start his blog].&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Low</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Talk:ThinkWiki&amp;diff=40206</id>
		<title>Talk:ThinkWiki</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Talk:ThinkWiki&amp;diff=40206"/>
		<updated>2008-12-11T12:44:59Z</updated>

		<summary type="html">&lt;p&gt;Low: /* ThinkPad Buyers guide */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
|__TOC__&lt;br /&gt;
|{{NOTE|This is not a user support forum about general ThinkPad questions, please do not abuse the Wiki by posting such questions here!}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There are at least two different forms of date notation used on the main page. &lt;br /&gt;
One way should be picked. I would suggest ISO standard YYYY-MM-DD&lt;br /&gt;
http://www.cl.cam.ac.uk/~mgk25/iso-time.html&lt;br /&gt;
-David Mattli &lt;br /&gt;
&lt;br /&gt;
The main page of ThinkWiki is not protected, so feel free to edit it. But do it with caution - it's the primary connection to the all content of our '''ThinkWiki''' ;-)&lt;br /&gt;
&lt;br /&gt;
--[[User:Akw|akw]] 00:11, 25 Sep 2004 (CEST)&lt;br /&gt;
----&lt;br /&gt;
I added to wikipedia-like templates. To edit them go to Template:ThinkWiki_Preamble and Template:ThinkWiki_News.&lt;br /&gt;
Shall we put the other parts of the page in templates, too? If we do so, we could have that nice block design from wikipedia on our mainpage.&lt;br /&gt;
&lt;br /&gt;
--[[User:Akw|akw]] 11:37, 25 Sep 2004 (CEST)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
I think this is too much color. Makes it less readable, takes longer to orientate than the plain list style layout.&lt;br /&gt;
&lt;br /&gt;
Liked it with only the two blocks in the beginning.&lt;br /&gt;
&lt;br /&gt;
If we want to use blocks for everything, please stick to fewer colors. I think the yellow of the first block is not bad, and else i'd suggest light grey, maybe light blue.&lt;br /&gt;
&lt;br /&gt;
However, if we stick to having all in blocks, how about [[User:Wyrfel/mainlayouttest | this color scheme]]?&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 16:35, 25 Sep 2004 (CEST)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Made [[User:Wyrfel/mainlayouttest-LTP | another Mainpage layout sketch]]. This tries to resemble the Tux and IBM logo colors and therefor looks quite &amp;quot;fresh&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 18:59, 25 Sep 2004 (CEST)&lt;br /&gt;
&lt;br /&gt;
: Too colorful for my taste, I think the other one is better --[[User:Nomeata|Nomeata]] 19:46, 28 Sep 2004 (CEST)&lt;br /&gt;
----&lt;br /&gt;
'''Important change:''' Moved Main_Page to ThinkWiki for cosmetical reasons..&lt;br /&gt;
&lt;br /&gt;
--[[User:Akw|akw]] 16:54, 26 Sep 2004 (CEST)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Needed: older ThinkPad specs... ==&lt;br /&gt;
&lt;br /&gt;
As you can tell by my userid here, I've got a 600E. There are a whole lot of them out there thanks to the fact it was the current model during the Dot-Com era. We should cover the older ThinkPads and their quirks as well as the later models. &lt;br /&gt;
&lt;br /&gt;
I also had a 365X, which is now living with a friend in the UK.&lt;br /&gt;
&lt;br /&gt;
Yes, the next ThinkPad I'll probably score is a T4x, they are really kewl machines and inspire technolust in this geek. But until then, I love my 600E and I'm looking forward to some upgrades this weekend. &lt;br /&gt;
&lt;br /&gt;
I will make copious notes on the upgrade process, which will include the installation of a 40GB hard drive and using the stock 10GB drive as extra Windows storage space. I have a hard drive bay module so the stock drive can be reused. The vast majority of the HD will be given over to an install of Debian Linux, with a 7GB Windows 2K partition because the University I will be attending a year from now demands it. (Yeah, I know, sucks, doesn't it.)&lt;br /&gt;
&lt;br /&gt;
ThinkPad different,&lt;br /&gt;
Michelle&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
I totally agree.&lt;br /&gt;
&lt;br /&gt;
All specs of all models can be found on the IBM support pages, we just need volunteers to transfer the infos into internal pages.&lt;br /&gt;
&lt;br /&gt;
Since this is not the most interesting thing to do and hence it would be best if people using older ThinkPads transfer the specs for their models themselves. The same goes for other articles as installation infos, problems or whatever. I had a 570 once and loved it even though T30s where available at the same time...and i'd like to see more about these machines here, which everyone of them had some special characteristics and ideas behind them. So please show up, proud owners of Thinkpad 730TEs. 701s, 360Ps, Transnotes etc. ... ! ;)&lt;br /&gt;
&lt;br /&gt;
Owners of the newer machines should take care of writing their articles (especially when creating new pages or sections) in a way that they are open for older models as well...i.e. make clear in the page or section title that its a specific topic for newer models.&lt;br /&gt;
&lt;br /&gt;
Thanks,&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 00:45, 29 Sep 2004 (CEST)&lt;br /&gt;
----&lt;br /&gt;
I just inserted [[Special:Benchmarks|Benchmarks]] into the main menu.&lt;br /&gt;
&lt;br /&gt;
--[[User:Akw|akw]] 14:07, 15 Oct 2004 (CEST)&lt;br /&gt;
----&lt;br /&gt;
I replaced the old logo with the great new one crafted by [[User:Wyrfel|Wyrfel]]&lt;br /&gt;
&lt;br /&gt;
--[[User:Akw|akw]] 14:22, 1 Mar 2005 (CET)&lt;br /&gt;
&lt;br /&gt;
:The new logo is too large to fit the sidebar. I can only see the yellow center with the ThinkWiki text and the left foot of Tux. I am using 1024x768 resolution and Opera.  --[[User:137.226.40.2|137.226.40.2]] 14:37, 1 Mar 2005 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In Firefox the rest of the logo appears overlaid over the page frame. Interesting, that Opera doesn't do this.&lt;br /&gt;
&lt;br /&gt;
However, we'll fix this soon.&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 19:57, 1 Mar 2005 (CET)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
:Well, I am using Firefox and I only see half of Tux without any overlay. I guess I'll wait for the fix :-) --[[User:80.146.81.192|80.146.81.192]] 21:33, 1 Mar 2005 (CET)&lt;br /&gt;
----&lt;br /&gt;
Strange, it works with firefox and epiphany for me. I'll fix it.&lt;br /&gt;
----&lt;br /&gt;
Ok, now the smaller logo image is online. Looks nice for me :-)&lt;br /&gt;
&lt;br /&gt;
--[[User:Akw|akw]] 22:15, 1 Mar 2005 (CET)&lt;br /&gt;
----&lt;br /&gt;
=== Main Page now protected ===&lt;br /&gt;
I had to protect the mainpage from editing because of vandalism.&lt;br /&gt;
Everyone who wants to add something to the mainpage is asked to post it here, the admins ([[User:Akw|akw]],&lt;br /&gt;
[[User:Wyrfel|Wyrfel]]) will insert it into the mainpage. You can also [[ThinkWiki:Contact|contact us]] to make your suggestions!&lt;br /&gt;
&lt;br /&gt;
We're sorry for inconvenience. :-(&lt;br /&gt;
&lt;br /&gt;
--[[User:Akw|akw]] 10:20, 2 Mar 2005 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Can I start a thread on DVD playback for the X60, please?  I can play back DVDs using SUSE 10.3, however any fast action parts are blurred.  I do not know if this is a limitation of the graphics, or monitor hardware, or something else.  Thanks&lt;br /&gt;
&lt;br /&gt;
=== Updates todo ===&lt;br /&gt;
&lt;br /&gt;
== MediaWiki Update ==&lt;br /&gt;
&lt;br /&gt;
I updated the thinkwiki software to version mediawiki 1.4.4. I hope this update will not be too painful.&lt;br /&gt;
There is still a problem with URL rewriting, so I had to deactivate the .htaccess file. Because of this, we got this ugly URLS with this '''index.php''' before the entry. The problem seems to be with the wiki config file '''LocalSettings.php''' and/or the '''.htaccess''' file.&lt;br /&gt;
I hope I get it fixed soon.&lt;br /&gt;
&lt;br /&gt;
== Spelling: HOWTOs ==&lt;br /&gt;
Could anyone be so kind to correct &amp;quot;Howto's&amp;quot; to &amp;quot;Howtos&amp;quot;?&lt;br /&gt;
----&lt;br /&gt;
Done. [[User:Wyrfel|Wyrfel]] 12:00, 2 Aug 2005 (CEST)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== ThinkPad Buyers guide ==&lt;br /&gt;
&lt;br /&gt;
It would be cool is there was a buyer guide to 2nd hand think pads.&lt;br /&gt;
 - For people wishing to join in by getting their own Thinkpad!!&lt;br /&gt;
----&lt;br /&gt;
This is a bit hard to accomplish. Remember that ThinkWiki is a site with international scope. What makes sense (in my opinion) is a page that has some notes and hints about what to care for, what are weak parts etc. . But it wouldn't make much sense to create a list of sites where to get them. Or maybe that's just what you meant. ;-) I'll look into creating some infrastructure for that on occasion.&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 03:02, 11 Aug 2005 (CEST)&lt;br /&gt;
----&lt;br /&gt;
Could we have a section explaining Lenovo that their (and everybody else's) policy of only having wide screen displays nowadays sucks for anyone not watching movies all day on their laptops, please?&lt;br /&gt;
--[[User:Low|Low]] 13:44, 11 December 2008 (CET)&lt;br /&gt;
&lt;br /&gt;
== This is a great general resource for ANY Thinkpad user ==&lt;br /&gt;
&lt;br /&gt;
The promoted Linux-centricity is a minus, IMO.  Regardless of the density of Linux content currently extant, the Linux focus seems exclusionary and probably drives away a lot of thinkpad users with useful content to add.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
IBM probably has the best support website in the industry (albeit somewhat difficult to navigate), therefore ANY ThinkPad user may find general information there. The good thing about ThinkWiki is that it caters to a specific need, namely the (often difficult) task of installing the linux operating system on ThinkPad notebooks.&lt;br /&gt;
--[[User:MJK|MJK]] 14:54, 14 Sep 2005 (CEST)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
I have to agree with MJK. ThinkWikis clear focus is Linux on ThinkPads. IBM provides pretty good support for Windows users, i.e. it wouldn't make sense to double driver listings and such here, since what IBM provides in this area is sufficient. What we can do, however, and what we are already doing here, is to provide additional information for Windows users as well. That's why we introduced Windows as one of our listed distributions and that's also why you find Windows related information scattered around the place. Linux users are searching Windows related ThinkPad sites for information that might be useful for their Linux installations. Let Windows users do the same the other way around. I'll add a little hint to the main page, but we won't change the primary focus. At least not now.&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 19:24, 15 Sep 2005 (CEST)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== TODO and FIXME templates? ==&lt;br /&gt;
&lt;br /&gt;
Could a special way to add TODOs and FIXMEs to pages (maybe a template or whatever - I'm not to familiair with Wiki technologies) be considered? I'd like to add some TODOs and FIXMEs but would like to do that in a standardized way ...&lt;br /&gt;
&lt;br /&gt;
[[User:Pebolle|Paul Bolle]] 22:42, 29 Sep 2005 (CEST)&lt;br /&gt;
----&lt;br /&gt;
Good point, i'll create templates. [[User:Wyrfel|Wyrfel]] 00:25, 30 Sep 2005 (CEST)&lt;br /&gt;
----&lt;br /&gt;
Ok, did some of it. There are Stub, Todo and Fixme templates now. Also, pages tagged with these templates will be categorized in [[:Category:NeedsEditing]]. Todo and Fixme should be used within sections and take one parameter, which should be a job description. Stub should only be used at the very beginning of a page.&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 01:52, 30 Sep 2005 (CEST)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Nitpicking ==&lt;br /&gt;
Navigation bar: please s/\(Think\)p\(ad\)/\1P\2/g&lt;br /&gt;
&lt;br /&gt;
Search bar: either drop Go or drop Search (they are equal, aren't they?)&lt;br /&gt;
&lt;br /&gt;
How to read ThinkWiki seems to be better of as a normal entry in the first (upper left) table (and not as a &amp;quot;minor&amp;quot; item in the HOWTOs table).&lt;br /&gt;
&lt;br /&gt;
I would suggest to make ThinkPad models (now a &amp;quot;minor&amp;quot; item in Hardware) the first entry in Hardware.&lt;br /&gt;
&lt;br /&gt;
[[User:Pebolle|Paul Bolle]] 21:13, 8 Oct 2005 (CEST)&lt;br /&gt;
----&lt;br /&gt;
Hi, I am looking for some t series users for our beta program.  Plese contact mtippett@ati.com.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
: Search bar: Go will try to go an article by that name while search will actually search fro articles that contain the word. '''Must keep'''.&lt;br /&gt;
&lt;br /&gt;
==A Forum?==&lt;br /&gt;
&lt;br /&gt;
I'm just curious if the idea of a public forum (using phpBB, SMF, whatever) has ever been considered. I think this would be excellent add-on to complement the Wiki. It'd make asking questions for guests and member's alike easier, and possibly afterwards the answers could be contributed into the article. Just an idea. --[[User:DuffDudeX1|DuffDudeX1]] 20:45, 31 Oct 2005 (CET)&lt;br /&gt;
----&lt;br /&gt;
There are ThinkPad Forums already, i.e. look at the [[Links]] page.&lt;br /&gt;
&lt;br /&gt;
Moreover, there's the linux-thinkpad [[Mailinglists|mailinglist]] that serves this purpose. ThinkWiki's role is rather to complement that mailing list with a more static way of gathering information and to be found more easily.&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 23:54, 31 Oct 2005 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Oh, thanks for pointing that out, I didn't even notice the links page, I'll have to take a look.&lt;br /&gt;
&lt;br /&gt;
--[[User:DuffDudeX1|DuffDudeX1]] 00:04, 1 Nov 2005 (CET)&lt;br /&gt;
&lt;br /&gt;
== Nice skin, folks... ==&lt;br /&gt;
&lt;br /&gt;
We'd like to steal it, for our geographically local wiki, if no one minds.  What pieces would we need for that?&amp;lt;br&amp;gt;--baylink@wp, etc; jra@baylink.com&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Just customize your main.css in your monobook folder.&lt;br /&gt;
&lt;br /&gt;
--[[User:Akw|akw]] 10:00, 28 Dec 2005 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Wiki ToDo List ==&lt;br /&gt;
&lt;br /&gt;
Hi, I just setup a [[User:Akw/ToDo|ToDo List]] regarding the wiki for me on [[User:Akw/ToDo]].&lt;br /&gt;
&lt;br /&gt;
This is for server admininstration tasks. Feel free to add some points if I forgot something more or less important.&lt;br /&gt;
I am going to work on the topic in the beginning of next year. I am offline now until 2006/01/06, so I wish a happy good year to all of you (except for the spammers and vandals, of course) ;-)&lt;br /&gt;
&lt;br /&gt;
--[[User:Akw|akw]] 10:31, 29 Dec 2005 (CET)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
== Anti Spam Policy ==&lt;br /&gt;
&lt;br /&gt;
I decided to activate some anti spam / vandalism features. Now only logged in users can edit pages.&lt;br /&gt;
&lt;br /&gt;
--[[User:Akw|akw]] 16:11, 17 January 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
== Non-ThinkPad Lenovo laptops ==&lt;br /&gt;
&lt;br /&gt;
Are the new non-ThinkPad C-series Lenovo laptops within scope of this site?&lt;br /&gt;
&lt;br /&gt;
--[[User:Thinker|Thinker]] 14:18, 27 February 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
I'd say &amp;quot;NO&amp;quot;.  They have nothing, and I do mean NOTHING in common with thinkpads.&lt;br /&gt;
&lt;br /&gt;
--[[User:Hmh|hmh]] 18:27, 20 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Spam Protection ==&lt;br /&gt;
&lt;br /&gt;
Hi, could we include a [http://meta.wikimedia.org/wiki/Captcha_extensions CAPTCHA extension] to stop these spam posts.&lt;br /&gt;
&lt;br /&gt;
--[[User:Whoopie|Whoopie]] 19:50, 17 June 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Windows 98 ==&lt;br /&gt;
&lt;br /&gt;
Hi, I have just spent ages getting Windows 98SE to work properly on a T30.  Some of the drivers that IBM provide are not good, but my T30 is running 98SE quite nicely now.&lt;br /&gt;
&lt;br /&gt;
I would quite like to start a page on installing 98SE and could provide some useful info.&lt;br /&gt;
&lt;br /&gt;
--[[User:dieselnutjob|dieselnutjob]] 21st June 2006&lt;br /&gt;
&lt;br /&gt;
Go for it.  Windows information is welcome in this WiKi as long as it does not cause issues with the Linux information (i.e. be organized, keep them separate).  Just add a &amp;quot;installing windows 98SE in a T30&amp;quot; page if you want (look at other &amp;quot;installing foo on bar&amp;quot; pages first to get an idea of the proper layout and page naming).&lt;br /&gt;
&lt;br /&gt;
--[[User:Hmh|hmh]] 18:29, 20 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Code in articles ==&lt;br /&gt;
&lt;br /&gt;
We have many articles with long scripts, which tend to get very mess and unreadable.&lt;br /&gt;
&lt;br /&gt;
Alternatives:&lt;br /&gt;
# Move all scripts to dedicated pages called Code/foo. For example, the huge code block in [[ACPI fan control script#Variable_speed_control_scripts]] goes to [[Code/tp-fancontrol]], with its metdata in the talk page. It is referenced as {{CodeRef|tp-fancontrol}} (that's &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;{{CodeRef|tp-fancontrol}}&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;)..&lt;br /&gt;
# Tell people to use an external hosting (http://sf.net, http://pastebin.ca etc.).&lt;br /&gt;
# Make Wikimedia support non-image uploads. But then we won't have nice diffs.&lt;br /&gt;
&lt;br /&gt;
Opinions?&lt;br /&gt;
&lt;br /&gt;
--[[User:Thinker|Thinker]] 13:51, 26 July 2006 (CEST)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
I've fully converted [[ACPI fan control script]] as a test case. What do you think?&lt;br /&gt;
&lt;br /&gt;
--[[User:Thinker|Thinker]] 23:34, 26 July 2006 (CEST)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Benchmarks missing page ==&lt;br /&gt;
&lt;br /&gt;
The benchmarks link on the main menu seems to be broken...&lt;br /&gt;
&lt;br /&gt;
Rgrds&lt;br /&gt;
&lt;br /&gt;
Peter&lt;br /&gt;
&lt;br /&gt;
== Press coverage ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;In addition, the ThinkPad PC product line has probably had more specific Linux support than any other computer brand. In fact, one of the most useful Linux community sites, ThinkWiki, is devoted to nothing but Linux on the ThinkPad.&amp;quot; --[http://www.desktoplinux.com/news/NS7778908329.html desktoplinux.com]&lt;br /&gt;
&lt;br /&gt;
== Exploding Batteries on Thinkpads? ==&lt;br /&gt;
&lt;br /&gt;
Is this worth adding to the news page? Or somewhere else on thinkwiki? Or does a sensationalist forum post not a news item make? (Actually, I just found another mention of it on thinkwiki in [[Battery safety]])&lt;br /&gt;
&lt;br /&gt;
An [http://hardware.slashdot.org/hardware/06/09/16/2236256.shtml article on Slashdot] mentioned in passing an incident where it appears at least one Thinkpad's battery exploded. [http://forums.somethingawful.com/showthread.php?s=&amp;amp;threadid=2069019#post315117641 The forum post reporting the explosion] (scroll down past the huge registration begging) also contains photographs. The laptop is allegedly a T42 or T42p, according to someone who examined the pictures, and while it ''certainly could be'' (it looks similar enough to mine), I don't know if we can postively identify it.&lt;br /&gt;
--[[User:Daxelrod|Daniel Axelrod]] 03:05, 18 September 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Google ads ==&lt;br /&gt;
&lt;br /&gt;
I have plans upgrading the hardware of the ThinkWiki server (DualCore SMP machine, more RAM, etc.) for getting faster response times. &lt;br /&gt;
This will happen in someday in november.&lt;br /&gt;
To pay the monthly fees for this new server, I decided to put some unobtrusive google text-only ads in a new box below the toolbox in the navigation area.&lt;br /&gt;
I hope this ads are not too offending. I really dislike ads on websites, but these text-only ads are IMHO an acceptable compromise. Opinions?&lt;br /&gt;
&lt;br /&gt;
--[[User:Akw|akw]] 12:52, 4 October 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
The ads on the navbar are indeed unobtrusive, and in their current position don't take up any screen real estate, so no objection (despite my dislike for ads). The ad strip at the bottom of the page is (very) slightly annoying, since pressing {{key|End}} now shows a few less lines from the article.&lt;br /&gt;
&lt;br /&gt;
--[[User:Thinker|Thinker]]&lt;br /&gt;
&lt;br /&gt;
Agreed. Go for it.  Also, may I humbly suggest that you offer for '''purchase''' and also for '''subscription''' an off-line version of ThinkWiki?  I have often needed access to the ThinkWiki data for reference while writing/debugging stuff on the road, and I would also sleep much better knowing I have all this information in a CD near me...&lt;br /&gt;
&lt;br /&gt;
--[[User:Hmh|hmh]] 14:25, 4 October 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== MediaWiki Upgrade ==&lt;br /&gt;
&lt;br /&gt;
I finally upgraded ThinkWiki to the latest [[Special:Version|MediaWiki 1.8.2]]. &lt;br /&gt;
This included an update to the database structure. I hope the upgrade will bring a massive speed improvement.&lt;br /&gt;
Please report any issues regarding the update.&lt;br /&gt;
&lt;br /&gt;
--[[User:Akw|akw]] 13:27, 23 October 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I just tweaked the apache config. This will greatly improve performance, I hope :-)&lt;br /&gt;
&lt;br /&gt;
I also recompiled apache2 with some optimizations. Now the cpu load of the server is significantly lower. &amp;lt;g&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--[[User:Akw|akw]] 15:25, 26 October 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== VaioWiki ==&lt;br /&gt;
&lt;br /&gt;
Anyone who owns a Sony VAIO please help me building [http://www.vaiowiki.org/ vaiowiki.org] which is a sister project of ThinkWiki, which I just started.&lt;br /&gt;
It hast got an independent database, but should have the same structure as ThinkWiki and of course, common articles can just be copied.&lt;br /&gt;
&lt;br /&gt;
--[[User:Akw|akw]] 16:13, 15 March 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
== New user creation enabled again ==&lt;br /&gt;
&lt;br /&gt;
Hi everyone. I just managed to install a captcha system on the new-user-creation. Also the captcha is needed on editing pages with external links in it.&lt;br /&gt;
Hope this will help us to get rid of the spam bots.&lt;br /&gt;
&lt;br /&gt;
--[[User:Akw|akw]] 14:47, 9 May 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Sorry for downtime yesterday ==&lt;br /&gt;
&lt;br /&gt;
Yesterday the server experienced the threatful OOM-Killer ('''o'''ut-'''o'''f-'''m'''emory process killer). A memory upgrade (4GB) will be done as soon as possible.&lt;br /&gt;
&lt;br /&gt;
--[[User:Akw|akw]] 07:42, 4 June 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Implement 3-character searches ==&lt;br /&gt;
&lt;br /&gt;
A lot of the content that I place in wikis benefit greatly from the ability to search for three character terms. This is definitely true for technically-oriented wikis where searches for 'AMD', 'CPU', etc. would be regularly entered. In my case, I was looking for 'fan' problems with the 'T40'. AFAIK, these can't be searched on ThinkWiki.&lt;br /&gt;
&lt;br /&gt;
I've copied a snippet from another MediaWiki on the topic in case you're interested and this could help set it up for you...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* http://en.wikipedia.org/wiki/Help:Short_words_in_searches&lt;br /&gt;
* http://www.mediawiki.org/wiki/Manual:FAQ#...is_a_search_for_a_short_keyword_giving_no_hits.3F&lt;br /&gt;
* http://dev.mysql.com/doc/refman/4.1/en/fulltext-fine-tuning.html&lt;br /&gt;
* http://dev.mysql.com/doc/refman/4.1/en/using-system-variables.html&lt;br /&gt;
* http://dev.mysql.com/doc/refman/4.1/en/option-files.html&lt;br /&gt;
* http://dev.mysql.com/doc/refman/4.1/en/mysql-config-wizard-file-location.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''(FYI: this is probably a Windows rant, but might be helpful.)'''''&lt;br /&gt;
&lt;br /&gt;
I know no one else cares about this but I still wanted a forum to vent my frustrations..&lt;br /&gt;
&lt;br /&gt;
I've been trying sporadically to get our mediawiki installation to allow us to have three-character search terms. This is to allow us to do searches on stuff such as 'asp', 'iis', 'svn', etc. The default minimum length is set to 4. (This is the mysql fulltext search default - not mediawiki limited.)&lt;br /&gt;
&lt;br /&gt;
Simple matter, right? Lots of documentation on how to do this simple task... Modify a mysql .ini file or two, stop/restart a server and voila (or violas in my case.)&lt;br /&gt;
&lt;br /&gt;
Most of the documentation talks about modifying my.ini files. There are several of these scattered on the mediawikivm file system. I updated them, stopped/started, debugged, etc., and still no change in behavior.&lt;br /&gt;
&lt;br /&gt;
Then some documentation talked about the mysterious my.cnf files. Well, mediawikivm is a Windows 2003 box. There are zero (0 - zilch - nada) .cnf files on the system. There were some strange 'my' files identified as 'SpeedDial' but they didn't allow any operations.&lt;br /&gt;
&lt;br /&gt;
I don't care how you set your Explorer File Preferences, there are none. Not to be easily cast aside, I rooted around some more in Google and found references to a magical registry entry named 'nevershowext' which precludes any Windows operations from showing the extension or allowing Edit/etc operations.&lt;br /&gt;
&lt;br /&gt;
So, after modifying around 10 registry entries, finding the my.cnf file where it should be, changing the &amp;quot;ft_min_word_len=3&amp;quot; entry, we now have valid searches for those important/stupid cases.&lt;br /&gt;
&lt;br /&gt;
==RSS feed ==&lt;br /&gt;
there is a bug on the RSS feed. when clicking on the RSS self discovery icon in the address bar of firefox on the [[Recentchanges]] page the following error appears: &lt;br /&gt;
&lt;br /&gt;
 XML Parsing Error: xml declaration not at start of external entity&lt;br /&gt;
 Location: http://www.thinkwiki.org/index.php?title=Special:Recentchanges&amp;amp;feed=atom&lt;br /&gt;
 Line Number 2, Column 1:&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The  XML declaration must be on the first line and start at the first character position of the line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How does this site's search work?  ==&lt;br /&gt;
&lt;br /&gt;
I'd really appreciate info on getting a Google-driven site search working like on this site. I see Special:GoogleFind in the url but can't find info on that. I presume it's not [http://www.mediawiki.org/wiki/Extension:Google_Custom_Search_Engine Google Custom Search Engine]. Many thanks! --[[User:Chriswaterguy|Chriswaterguy]] 04:57, 29 April 2008 (CEST)&lt;/div&gt;</summary>
		<author><name>Low</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=User:Low&amp;diff=40205</id>
		<title>User:Low</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=User:Low&amp;diff=40205"/>
		<updated>2008-12-11T11:48:51Z</updated>

		<summary type="html">&lt;p&gt;Low: /* about the System */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== about Low ==&lt;br /&gt;
I'm a linux noob, really. Though I spent 5 years maintaining a huge website, I had little exposure to the system itself. At work I'm 50% on HP-UX, also as a user. I learn as I progress.&lt;br /&gt;
== about the System ==&lt;br /&gt;
'''R60''' Intel(R) Core(TM)2 CPU T5600 @ 1.83GHz, ATI X1400&lt;br /&gt;
 &lt;br /&gt;
'''Slackware 12.1''' (pretty much 'vanilla' - only added the fglrx package for the ATI - and as you might have guessed: after reinstalling and recompiling the kernel about 20 times till I found out that for SATA you need some SCSI modules...)&lt;br /&gt;
&lt;br /&gt;
'''fvwm''' 2.5.26&lt;/div&gt;</summary>
		<author><name>Low</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=User:Low&amp;diff=40204</id>
		<title>User:Low</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=User:Low&amp;diff=40204"/>
		<updated>2008-12-11T11:47:56Z</updated>

		<summary type="html">&lt;p&gt;Low: â†Created page with '== about Low == I'm a linux noob, really. Though I spent 5 years maintaining a huge website, I had little exposure to the system itself. At work I'm 50% on HP-UX, also as ...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== about Low ==&lt;br /&gt;
I'm a linux noob, really. Though I spent 5 years maintaining a huge website, I had little exposure to the system itself. At work I'm 50% on HP-UX, also as a user. I learn as I progress.&lt;br /&gt;
== about the System ==&lt;br /&gt;
'''R60''' Intel(R) Core(TM)2 CPU T5600 @ 1.83GHz, ATI X1400 &lt;br /&gt;
'''Slackware 12.1''' (pretty much 'vanilla' - only added the fglrx package for the ATI - and as you might have guessed: after reinstalling and recompiling the kernel about 20 times till I found out that for SATA you need some SCSI modules...)&lt;br /&gt;
'''fvwm''' 2.5.26&lt;/div&gt;</summary>
		<author><name>Low</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Talk:How_to_get_special_keys_to_work&amp;diff=40203</id>
		<title>Talk:How to get special keys to work</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Talk:How_to_get_special_keys_to_work&amp;diff=40203"/>
		<updated>2008-12-11T11:18:32Z</updated>

		<summary type="html">&lt;p&gt;Low: /* Bind Fn 12 say to F34 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
The xmodmap step doesn't seem to work when using the &amp;quot;kdb&amp;quot; driver of xorg. Here are the changes I needed to make to my setup to get the &amp;quot;back&amp;quot; and &amp;quot;forward&amp;quot; keys to work (in diff -u format);&lt;br /&gt;
&lt;br /&gt;
 --- xkb/symbols/inet.oud        2004-12-01 08:36:04.000000000 +0100&lt;br /&gt;
 +++ xkb/symbols/inet    2005-03-08 19:59:32.587636120 +0100&lt;br /&gt;
 @@ -1875,6 +1875,16 @@&lt;br /&gt;
      key &amp;lt;I76&amp;gt;  {       [ XF86AudioLowerVolume  ]       };&lt;br /&gt;
  };&lt;br /&gt;
  &lt;br /&gt;
 +// IBM ThinkPad 41 Internet Keys&lt;br /&gt;
 +&lt;br /&gt;
 +partial alphanumeric_keys&lt;br /&gt;
 +xkb_symbols &amp;quot;tp41&amp;quot; {&lt;br /&gt;
 +    name[Group1]= &amp;quot;IBM ThinkPad 41 Internet Keys&amp;quot;;&lt;br /&gt;
 +&lt;br /&gt;
 +    key &amp;lt;I69&amp;gt;  {       [ F22           ]       };&lt;br /&gt;
 +    key &amp;lt;I6A&amp;gt;  {       [ F21           ]       };&lt;br /&gt;
 +};&lt;br /&gt;
 +&lt;br /&gt;
  // Trust&lt;br /&gt;
  &lt;br /&gt;
  partial alphanumeric_keys&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 --- xkb/rules/xorg.lst.oud      2004-12-01 08:36:05.000000000 +0100&lt;br /&gt;
 +++ xkb/rules/xorg.lst  2005-03-07 20:55:21.000000000 +0100&lt;br /&gt;
 @@ -97,6 +97,7 @@&lt;br /&gt;
    sven         SVEN Ergonomic 2500&lt;br /&gt;
    symplon      Symplon PaceBook (tablet PC)&lt;br /&gt;
    toshiba_s3000        Toshiba Satellite S3000&lt;br /&gt;
 +  tp41         IBM ThinkPad 41 Internet Keys&lt;br /&gt;
    trust                Trust Wireless Keyboard Classic&lt;br /&gt;
    trustda      Trust Direct Access Keyboard&lt;br /&gt;
    yahoo                Yahoo! Internet Keyboard&lt;br /&gt;
&lt;br /&gt;
 --- xkb/rules/xorg.oud  2004-12-01 08:36:05.000000000 +0100&lt;br /&gt;
 +++ xkb/rules/xorg      2005-03-07 20:45:59.000000000 +0100&lt;br /&gt;
 @@ -120,7 +120,7 @@&lt;br /&gt;
                qtronix \&lt;br /&gt;
                samsung4500 samsung4510 \&lt;br /&gt;
                sk1300 sk2500 sk6200 sk7100 \&lt;br /&gt;
 -              sven symplon toshiba_s3000 trust trustda yahoo&lt;br /&gt;
 +              sven symplon toshiba_s3000 tp41 trust trustda yahoo&lt;br /&gt;
 &lt;br /&gt;
  ! model         =       symbols&lt;br /&gt;
    $inetkbds     =       +inet(%m)&lt;br /&gt;
&lt;br /&gt;
 --- xkb/rules/xorg.xml.oud      2004-12-01 08:36:05.000000000 +0100&lt;br /&gt;
 +++ xkb/rules/xorg.xml  2005-03-07 20:52:35.000000000 +0100&lt;br /&gt;
 @@ -975,6 +975,13 @@&lt;br /&gt;
      &amp;lt;/model&amp;gt;&lt;br /&gt;
      &amp;lt;model&amp;gt;&lt;br /&gt;
        &amp;lt;configItem&amp;gt;&lt;br /&gt;
 +        &amp;lt;name&amp;gt;tp41&amp;lt;/name&amp;gt;&lt;br /&gt;
 +        &amp;lt;description&amp;gt;IBM Thinkpad 41 Internet Keys&amp;lt;/description&amp;gt;&lt;br /&gt;
 +        &amp;lt;description xml:lang=&amp;quot;nl&amp;quot;&amp;gt;IBM ThinkPad 41 internet toetsen&amp;lt;/description&amp;gt;&lt;br /&gt;
 +      &amp;lt;/configItem&amp;gt;&lt;br /&gt;
 +    &amp;lt;/model&amp;gt;&lt;br /&gt;
 +    &amp;lt;model&amp;gt;&lt;br /&gt;
 +      &amp;lt;configItem&amp;gt;&lt;br /&gt;
          &amp;lt;name&amp;gt;trust&amp;lt;/name&amp;gt;&lt;br /&gt;
          &amp;lt;description&amp;gt;Trust Wireless Keyboard Classic&amp;lt;/description&amp;gt;&lt;br /&gt;
          &amp;lt;description xml:lang=&amp;quot;fr&amp;quot;&amp;gt;clavier classique Trust Wireless&amp;lt;/description&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Do not forget to add something like &amp;quot;+inet(tp41)&amp;quot; to /etc/X11/xorg.conf:&lt;br /&gt;
        (...)&lt;br /&gt;
        Option      &amp;quot;XkbLayout&amp;quot; &amp;quot;us_intl+inet(tp41)&amp;quot;&lt;br /&gt;
        (...)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
I've filled a [https://bugs.freedesktop.org/show_bug.cgi?id=9779 bug] to freedesktop bugzilla, which has been applied.  It adds inet(thinkpad) symbols with &amp;lt;I69&amp;gt;/&amp;lt;I6A&amp;gt; keys and adds thinkpad to $inetkbds list.  So, Forward/Back keys will work out-of-box with thinkpad XkbModel.  However, thinkpadintl model is not supported... --[[User:Raorn|Raorn]] 13:25, 27 January 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
== Not T41 specific ==&lt;br /&gt;
&lt;br /&gt;
These keys are hardly T41 specific, they can also be found on the T30, T40, T42 and I'm sure several other ThinkPads in the X, R and G lineup.&lt;br /&gt;
&lt;br /&gt;
Actually, the above patches could be completed with the information of the other special keys found on some Thinkpads (which is listed in [[How_to_get_special_keys_to_work#xmodmap_configuration]]) and submitted as a request for enhancement with [http://bugs.freedesktop.org xorg's bugzilla]. However, firefox doesn't yet recognize keysyms like XF86Back, XF86Forward, so then firefox still needs to be patched manually (unless an enhancement is requested for firefox too).&lt;br /&gt;
&lt;br /&gt;
=== XF86Back in Firefox === &lt;br /&gt;
I found that XF86Back and XF86Forward work for me with firefox.  I was able to use the following in &lt;br /&gt;
/usr/lib/firefox/chrome/browser/content/browser/browser.xul&lt;br /&gt;
 &amp;lt;key id=&amp;quot;goBackKb&amp;quot; keycode=&amp;quot;XF86Back&amp;quot; command=&amp;quot;Browser:Back&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;key id=&amp;quot;goForwardKb&amp;quot; keycode=&amp;quot;XF86Forward&amp;quot; command=&amp;quot;Browser:Forward&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
My firefox version is Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.3) Gecko/20061201 Firefox/2.0.0.3 (Ubuntu-feisty)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This also works for me, but &amp;quot;XF86Back&amp;quot; seems to be *the same* (toggles the same command, but only in FireFox) as [Alt Gr]-Key on German keyboards, even if xev shows nothing like this. Bug in FireFox? Therefor I have stick to the F19/F20 workaround.&lt;br /&gt;
&lt;br /&gt;
--[[User:BDKMPSS|BDKMPSS]] June 04 2007&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Fake ACPI events? ==&lt;br /&gt;
&lt;br /&gt;
Not all keys generate ACPI events. Maybe it is feasible to have the ibm-acpi module check the CMOS (instead of having tpb checking /dev/nvram) and generate fake ACPI events for those keys. Even if it is feasible, that is probably way to hacky for a kernel module ... Still, it would be nice to only have to use scripts triggered by ACPI events and not both scripts for ACPI events and scripts for tpb.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
I think something like this is possible with ibm-acpi 0.10 already. It provides a proc file from which you can derive a table of CMOS states. You'd only have to figure the who is who of CMOS bits and write a daemon (or daemon like shell script) checking them regularly. This should be about what you suggest since tpb does the same thing with the bios ram. Of course generating ACPI events can not be done like that (or can it?), but you could trigger the ACPI action scripts directly then.&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 01:02, 14 Mar 2005 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
It may be possible (I have a 770x, so don't have the special keys) to add the keys as real ACPI events, by altering the DSDT.  I've done this to enable ACPI events for Fn-(every labelled F key),Home,End,PgUp,PgDn on mine, and they aren't labelled with anything physically (no thinklight and physical brightness control).  The Embedded Controller  reports all events, including keys, by calling one of the _Qxx functions (you'll find a whole pile in the sourcecode for the DSDT).  If you then insert a fucntion in the same scope as the others like:-&lt;br /&gt;
 Method (_Q12, 0, NotSerialized) { \_SB.HKEY.MHKQ (0x1003) } //Fn-F3&lt;br /&gt;
when executed, ibm-acpi will then report an acpi event numbered 0x0001003.  You should find some functions, e.g. _Q1B For Fn-F12 identical to this.&lt;br /&gt;
&lt;br /&gt;
I found some IBM DSDT's had functions that made MKHQ calls for EC functions _Q63, _Q64, _Q4E, _Q4F, but did nothing on mine---maybe these are a good starting point.  Add a whole pile, and see if you get lucky! (At your own risk, of course... :/  But it should be pretty safe).&lt;br /&gt;
&lt;br /&gt;
Yes, the above sounds pretty identical to tpb, except with /proc/ibm/ecdump instead of /dev/nvram.  The above works very nicely, however there's luck involved in finding the right number, even if it exists!&lt;br /&gt;
&lt;br /&gt;
[[User:lentinj|lentinj]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Fn+F6 does not seem to generate an event on t41p even if the mask is set to 0xffff and experimental=1 is passed to ibm_acpi&lt;br /&gt;
[[User:tf|tf]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Bind Fn to super or hyper ==&lt;br /&gt;
&lt;br /&gt;
Hello &lt;br /&gt;
&lt;br /&gt;
Is it possible to bind Fn via Xmodmap to a key modifier such as hyper or super? Thanks&lt;br /&gt;
[[User:Oub|Oub]] 13:14, 6 February 2006 (CET): &lt;br /&gt;
----&lt;br /&gt;
I doubt it. The event for the {{key|Fn}} key is generated at release (as opposed to holding it where it serves it's usual special function). Hence you can't use it as a modifier. [[User:Wyrfel|Wyrfel]] 22:52, 6 February 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
I have added a paragraph how to get around the issue that {{key|Fn}} is not working with other key combos than the ones intended. Mebbe that helps you.&lt;br /&gt;
--[[User:Low|Low]] 12:09, 11 December 2008 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Bind Fn 12 say to F34 ==&lt;br /&gt;
Thanks Wyrfel for your reply, in order to display my question better, I use a new header: can I bind all the Fn Fx to hay F34 and the like?&lt;br /&gt;
[[User:Oub|Oub]] 21:33, 10 February 2006 (CET):&lt;br /&gt;
----&lt;br /&gt;
You can do this with all key '''combinations''' that support xmodmap (see the table). That means you can't do it with {{key|Fn}}}{{key|F12}}, because that combination doesn't generate a key event at all (it only generates an APM/ACPI event. Hence there is nothing vor xmodmap to remap.&lt;br /&gt;
&lt;br /&gt;
But what is your wider focus goal? I'm sure that what you want to do can be realized, anyway: You can write an ACPI script and event file for {{key|Fn}}{{key|F12}} and have the script start some tool that sends a F34 key to the X server. I'm sure this is possible.&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 00:03, 11 February 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
Hi,&lt;br /&gt;
&lt;br /&gt;
{{key|Fn}} does not accept other key combos than the acpi ones (e.g. {{key|Fn}}+{{key|F4}}). However you can assign it to be CapsLock, and use the {{key|CapsLock}} then for the purpose of having key combos. See the paragraph about enabling fast NumPadding:&lt;br /&gt;
&lt;br /&gt;
[[How to get special keys to work#NumPad (KeyPad) keys access by a key combination]]&lt;br /&gt;
&lt;br /&gt;
--[[User:Low|Low]] 12:18, 11 December 2008 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Can't bind Fn 12 ==&lt;br /&gt;
&lt;br /&gt;
Hello &lt;br /&gt;
&lt;br /&gt;
I  am using a R51 and I have compiled ibm-acpi monolithic in the kernel (not as module, maybe this is a mistake?). Anyway, I am using &lt;br /&gt;
suspend2, which I compiled in the kernel as well. Now I have bound &lt;br /&gt;
''to hibernate '' first to Fn 4, with the following script&lt;br /&gt;
 event=button[ /]sleep  &lt;br /&gt;
 action=/usr/local/sbin/mihibernate &lt;br /&gt;
&lt;br /&gt;
This works fine. Now I want to do the same for Fn12, so following the key table I did:  &lt;br /&gt;
&lt;br /&gt;
 event=button[/] ibm/hotkey HKEY 00000080 0000100c  &lt;br /&gt;
 action=/usr/local/sbin/mihibernate &lt;br /&gt;
&lt;br /&gt;
But that does not work. What is the problem? I tried even   &lt;br /&gt;
 echo enable,0xffff &amp;gt;/proc/acpi/ibm/hotkey &lt;br /&gt;
without success. Can anybody help me? &lt;br /&gt;
[[User:Oub|Oub]] 16:27, 4 March 2006 (CET):&lt;br /&gt;
----&lt;br /&gt;
The proper event line is&lt;br /&gt;
 event=ibm/hotkey HKEY 00000080 0000100c&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
Also, make sure that you are not using [thinkpad-acpi]. If &amp;lt;tt&amp;gt;event=button[ /]sleep&amp;lt;/tt&amp;gt; works for {{key|Fn}}{{key|F4}}, that indicates that you do. It might block the ibm-acpi driver. Check your kernel config and disable any thinkpad acpi driver except ibm-acpi.&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 21:58, 4 March 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
:Hello&lt;br /&gt;
:&lt;br /&gt;
:It is odd, I am pretty sure, that I do not use [thinkpad-acpi], but [ibm-acpi], although event=button[ /]sleep works for FnF4, in any case I found out that &lt;br /&gt;
:&lt;br /&gt;
: event=(button/power|ibm/hotkey HKEY 00000080 0000100c)&lt;br /&gt;
:&lt;br /&gt;
:Works! What do you think of adding a subsection to the [[How to get special keys to work]] page, with some examples, like the following:&lt;br /&gt;
:&lt;br /&gt;
:from ''/etc/acpi/events/battery'':&lt;br /&gt;
 event=(button/power|ibm/hotkey HKEY 00000080 0000100c)  &lt;br /&gt;
 action=/usr/local/sbin/hibernate&lt;br /&gt;
:from ''/etc/acpi/events/lid''&lt;br /&gt;
 event=button/lid&lt;br /&gt;
 action=/usr/local/bin/mysleepram&lt;br /&gt;
:from ''/etc/acpi/events/sleepbtn''&lt;br /&gt;
 event=(button/sleep|ibm/hotkey HKEY 00000080 00001004)&lt;br /&gt;
 action=/usr/local/bin/mysleepram&lt;br /&gt;
:&lt;br /&gt;
:(Also ''event=button/sleep '' works for me)&lt;br /&gt;
:and then restart acpi:&lt;br /&gt;
:&lt;br /&gt;
 /etc/init.d/acpid restart&lt;br /&gt;
:&lt;br /&gt;
:[[User:Oub|Oub]] 13:22, 5 March 2006 (CET):&lt;br /&gt;
----&lt;br /&gt;
What you do with&lt;br /&gt;
 event=(button/power|ibm/hotkey HKEY 00000080 0000100c)  &lt;br /&gt;
is to make a logical nonexclusive OR between&lt;br /&gt;
 event=button/power&lt;br /&gt;
and&lt;br /&gt;
 event=ibm/hotkey HKEY 00000080 0000100c&lt;br /&gt;
. If the first works, the whole thing works. So that's pretty logical.&lt;br /&gt;
&lt;br /&gt;
Please, do a {{cmdroot|dmesg &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; grep thinkpad-acpi}} and do a {{cmdroot|dmesg &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; grep ibm-acpi}}. What is the output in either case?&lt;br /&gt;
&lt;br /&gt;
I see no sense in putting examples to the page that only confuse people because they are not correct. ibm-acpi generates the events listed in the table and nothing else. If you get something like &amp;lt;tt&amp;gt;button/sleep&amp;lt;/tt&amp;gt; it's not ibm-acpi generating it. You are running Debian, right? Let's hope they didn't patch the driver to generate different events.&lt;br /&gt;
&lt;br /&gt;
Also, you can always do {{cmdroot|tail -f /var/log/acpid}} to have a life view of the generated events.&lt;br /&gt;
&lt;br /&gt;
I am pretty sure that you are using thinkpad-acpi or - if not so - that something else must interfere.&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 04:49, 6 March 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&lt;br /&gt;
:Hi &lt;br /&gt;
:&lt;br /&gt;
:Ok I admit everything is very odd. For the start, I seem to use &lt;br /&gt;
:ibm-acpi. As I said I am Debian,  but I compiled my own kernel :(2.6.10)(but not as a module, maybe this was a bad idee??)  and I used :the ibm-acpi driver which comes shipped with that kernel. I did not :download the driver from the official http://ibm-acpi.sourceforge.net/ :site. Here is the output of &lt;br /&gt;
:&lt;br /&gt;
:dmesg | grep acpi&lt;br /&gt;
 Kernel command line: ro  root=/dev/hda6 acpi_sleep=s3_bios&lt;br /&gt;
 tbxface-0118 [02] acpi_load_tables      : ACPI Tables successfully acquired&lt;br /&gt;
 evxfevnt-0094 [03] acpi_enable           : Transition to ACPI mode successful&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [df6ddaa8]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c1464768]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c1467328]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c146bba8]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c146b628]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c146b3e8]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c146b268]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c146dde8]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c1470d68]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c1470568]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c14719a8]&lt;br /&gt;
 ibm_acpi: IBM ThinkPad ACPI Extras v0.8&lt;br /&gt;
 ibm_acpi: http://ibm-acpi.sf.net/&lt;br /&gt;
 acpi_bus-0081 [08] acpi_bus_get_device   : Error getting context for object [c1467328]&lt;br /&gt;
 ibm_acpi: dock device not present&lt;br /&gt;
&lt;br /&gt;
:I don't understand the errors but anyway. Now the odd thing is that indeed the following works&lt;br /&gt;
:&lt;br /&gt;
 event=button[ /]sleep&lt;br /&gt;
 action=/usr/local/sbin/hibernate &lt;br /&gt;
:but   &lt;br /&gt;
 event=button[/]sleep  &lt;br /&gt;
 action=/usr/local/sbin/hibernate &lt;br /&gt;
&lt;br /&gt;
:Does not work. But from what you said, using the ibm_acpi neither of '''these strings ''' should  work? So I don't understand what is going on. [[User:Oub|Oub]] 20:28, 6 March 2006 (CET):&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
With any reasonably new kernel (2.6.16 in Thinkpad terms :-) ) and a good DSDT (say, like the one that comes inside the T43), you can get two classes of events: ACPI events (as in native ACPI events), and ibm-acpi hotkey events.&lt;br /&gt;
&lt;br /&gt;
This has nothing to do with thinkpad-acpi.&lt;br /&gt;
&lt;br /&gt;
Look under /proc/acpi/buttons.  If you have sleep and maybe hibernate/suspend in there (I don't know how fn+f12 is called when properly supported through ACPI DSDT, the T43 doesn't support it like that), then your Thinkpad can, and will generate proper ACPI events without the help of ibm-acpi.  This is valid for a complete ACPI config of kernel 2.6.16 with all modules loaded.&lt;br /&gt;
&lt;br /&gt;
And it will generate regular ibm-acpi hotkey events if you enable the feature and use the correct mask, which may or may not confuse the thinkpad (I am not sure the correct DSDT handlers the BIOS expect to run are called in this case).&lt;br /&gt;
&lt;br /&gt;
-- [[User:Hmh|hmh]] 2006-05-26 13:20 UTC&lt;br /&gt;
&lt;br /&gt;
==Turn on/off Wifi on Fn5 ==&lt;br /&gt;
Hi&lt;br /&gt;
&lt;br /&gt;
I hope this is the last question. I use a crude way to activate and deactivate my wificard: I remove and insert the relevant modules, with 2 simple scripts. Now the question is how can I bind Fn5 so, that it turns on and off the wificard? With my approach I need to fire up two scripts, and that I cannot bind to one button. Thanks &lt;br /&gt;
[[User:Oub|Oub]] 17:57, 5 March 2006 (CET):&lt;br /&gt;
&lt;br /&gt;
Try a {{cmdroot|cat /proc/acpi/ibm/bluetooth}}. Maybe it returns the state. If not, the other way would be to check if the USB bluetooth controller device is listed in {{path|/proc/bus/usb}} somewhere. It shouldn't be there if bluetooth is switched off and should be there if it is on.&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 04:49, 6 March 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Split page?==&lt;br /&gt;
This page is getting too long. Maybe we should split it. I'd suggest moving the &amp;quot;Example applications&amp;quot; to a seperate page. &lt;br /&gt;
&lt;br /&gt;
[[User:Pebolle|Paul Bolle]] 22:46, 3 April 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
==DIY Firefox 1.5 xpi==&lt;br /&gt;
Here's how I maneged a Firefox 1.5 compatible plugin (source: google). Note that the wiki eats some of the xml tags (so look at the source too)&lt;br /&gt;
&lt;br /&gt;
 $ ls -1R tp41.xpi&lt;br /&gt;
 tp41.xpi/:&lt;br /&gt;
 chrome&lt;br /&gt;
 chrome.manifest&lt;br /&gt;
 install.rdf&lt;br /&gt;
 &lt;br /&gt;
 tp41.xpi/chrome:&lt;br /&gt;
 content&lt;br /&gt;
 &lt;br /&gt;
 tp41.xpi/chrome/content:&lt;br /&gt;
 tp41keysOverlay.xul&lt;br /&gt;
&lt;br /&gt;
 $ cat tp41.xpi/chrome.manifest&lt;br /&gt;
 content     tp41keys    chrome/content/&lt;br /&gt;
 overlay chrome://browser/content/browser.xul chrome://tp41keys/content/tp41keysOverlay.xul&lt;br /&gt;
&lt;br /&gt;
 $ cat tp41.xpi/install.rdf&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;RDF xmlns=&amp;quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;quot;&lt;br /&gt;
      xmlns:em=&amp;quot;http://www.mozilla.org/2004/em-rdf#&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   &amp;lt;Description about=&amp;quot;urn:mozilla:install-manifest&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;em:id&amp;gt;tp41keys@tp41keys.org&amp;lt;/em:id&amp;gt;&lt;br /&gt;
     &amp;lt;em:version&amp;gt;1.0&amp;lt;/em:version&amp;gt;&lt;br /&gt;
     &amp;lt;em:type&amp;gt;2&amp;lt;/em:type&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;!-- Target Application this extension can install into,&lt;br /&gt;
          with minimum and maximum supported versions. --&amp;gt;&lt;br /&gt;
     &amp;lt;em:targetApplication&amp;gt;&lt;br /&gt;
       &amp;lt;Description&amp;gt;&lt;br /&gt;
         &amp;lt;em:id&amp;gt;{ec8030f7-c20a-464f-9b0e-13a3a9e97384}&amp;lt;/em:id&amp;gt;&lt;br /&gt;
         &amp;lt;em:minVersion&amp;gt;1.0+&amp;lt;/em:minVersion&amp;gt;&lt;br /&gt;
         &amp;lt;em:maxVersion&amp;gt;1.5.0.*&amp;lt;/em:maxVersion&amp;gt;&lt;br /&gt;
       &amp;lt;/Description&amp;gt;&lt;br /&gt;
     &amp;lt;/em:targetApplication&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;!-- Front End MetaData --&amp;gt;&lt;br /&gt;
     &amp;lt;em:name&amp;gt;IBM ThinkPad 41 Keys&amp;lt;/em:name&amp;gt;&lt;br /&gt;
     &amp;lt;em:description&amp;gt;Two Browser Navigation Keys&amp;lt;/em:description&amp;gt;&lt;br /&gt;
     &amp;lt;em:creator&amp;gt;Paul Bolle&amp;lt;/em:creator&amp;gt;&lt;br /&gt;
     &amp;lt;em:homepageURL&amp;gt;http://www.example.com/tp41keys.xpi&amp;lt;/em:homepageURL&amp;gt;&lt;br /&gt;
   &amp;lt;/Description&amp;gt;&lt;br /&gt;
 &amp;lt;/RDF&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ cat tp41.xpi/chrome/content/tp41keysOverlay.xul&lt;br /&gt;
 &amp;lt;?xml version='1.0'?&amp;gt;&lt;br /&gt;
 &amp;lt;!DOCTYPE overlay&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;overlay id='tp41keysOverlay'&lt;br /&gt;
     xmlns='http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul'&amp;gt;&lt;br /&gt;
 &amp;lt;!-- For Firefox --&amp;gt;&lt;br /&gt;
     &amp;lt;keyset id='mainKeyset'&amp;gt;&lt;br /&gt;
         &amp;lt;key id='tp41BackKey' keycode='VK_F21' command='Browser:Back' /&amp;gt;&lt;br /&gt;
         &amp;lt;key id='tp41ForwardKey' keycode='VK_F22' command='Browser:Forward' /&amp;gt;&lt;br /&gt;
     &amp;lt;/keyset&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;/overlay&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ cat .mozilla/firefox/*.default/extensions/tp41keys\@tp41keys.org &lt;br /&gt;
 ~/tp41.xpi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ibm-acpi hint==&lt;br /&gt;
&lt;br /&gt;
I would like to add a hint under ibm-acpi to enable all hotkeys at boot, but I can not seem to get the HINT template to work:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{HINT|To enable all hotkeys on boot in debian, create the file /etc/modprobe.d/ibm_acpi containing 'options ibm_acpi hotkey=enable,0xffff'}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It outputs:&lt;br /&gt;
&lt;br /&gt;
{{HINT|To enable all hotkeys on boot in debian, create the file /etc/modprobe.d/ibm_acpi containing 'options ibm_acpi hotkey=enable,0xffff'}}&lt;br /&gt;
&lt;br /&gt;
Any ideas on how to get this to work? Also, does it even belong in the page?&lt;br /&gt;
&lt;br /&gt;
--[[User:Paul Strefling|Paul Strefling]] 23:22, 10 August 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you use ''ibm-apci'' as a module and have  {{path|/proc}} filesystem enabled, you can tune it by&lt;br /&gt;
adding to  {{path|/etc/modules.d/ibm_acpi}}:&lt;br /&gt;
&lt;br /&gt;
     post-install ibm-acpi /bin/echo enable,0x00d0 &amp;gt; /proc/acpi/ibm/hotkey&lt;br /&gt;
I added it after ''alias ibm-acpi ibm_acpi''. I'm not sure - if the order make sence. Params can be differ - it is an example.&lt;br /&gt;
&lt;br /&gt;
Also works fine with {{cmdroot|modprobe}} (don't forget to run  {{cmdroot|modules-update}} after editing  {{path|/etc/modules.d/*}}).&lt;br /&gt;
&lt;br /&gt;
(tested on Gentoo with vanilla kernel).&lt;br /&gt;
&lt;br /&gt;
==Lock Screen with hotkey on models before T60==&lt;br /&gt;
&lt;br /&gt;
In case it's of interest, it's possible to simulate the &amp;quot;lock screen&amp;quot; (Fn+F2) function of T60s on prior models. I wrote a little [http://forums.gentoo.org/viewtopic-p-3814885.html HOWTO] on the Gentoo forums explaining how to configure Fn+F3 to fire up xscreensaver instead of blanking the screen (though this could easily be changed to Fn+F2 instead). This was for my T42 but I presume it'd work on other models too. Perhaps it'd be worth mentioning in the Remarks column of the Fn+F2 row of the table at the top of the article? --[[User:Waveform|Waveform]] 03:42, 2 January 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
== Toggle touchpad with Fn-F8 ==&lt;br /&gt;
&lt;br /&gt;
I often want to switch off the touchpad, since I tend to produce spurious taps while typing, sending my cursor to random places on the screen. To toggle touchpad operation, I use this little script:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # toggle touchpad operation&lt;br /&gt;
 # August 2, 2006&lt;br /&gt;
 # (c) Michael Schmuker&lt;br /&gt;
 #&lt;br /&gt;
 if synclient -l | grep TouchpadOff | grep -q 0; then &lt;br /&gt;
     synclient TouchpadOff=1;&lt;br /&gt;
     kdialog --passivepopup &amp;quot;Touchpad is OFF&amp;quot; 2;&lt;br /&gt;
 else &lt;br /&gt;
     synclient TouchpadOff=0;&lt;br /&gt;
     kdialog --passivepopup &amp;quot;Touchpad is ON&amp;quot; 2;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
This checks if the touchpad is on or off, and toggles its state accordingly. Note that it uses kdialog to display a notification on the desktop. This obviously works only with KDE, but there certainly is a similar mechanism for other desktop environments.&lt;br /&gt;
&lt;br /&gt;
Now this script needs to be bound to the Fn-F8-key. On Suse 10.2, the ACPI-events produced by the thinkpad special keys are processed by powersaved. You need to edit the file {{path|/usr/lib/powersave/scripts/thinkpad_acpi_events}}.&lt;br /&gt;
There, thinkpad-ACPI events are bound to their actions. Where it comes to Fn-F8, just change it to the following (supposed you put the above script to {{path|/usr/local/bin/toggleTouchpad}} and make it executable):&lt;br /&gt;
 4104)   HOTKEY=&amp;quot;Fn+F8&amp;quot; #toggle touchpad on/off&lt;br /&gt;
    /usr/local/bin/toggleTouchpad&lt;br /&gt;
 ;;&lt;br /&gt;
Save the file, and the next time you press Fn-F8 you will toggle your touchpad. &lt;br /&gt;
&lt;br /&gt;
Unfortunately, the notification via kdialog is not working when toggling with Fn-F8. If anyone finds out how to solve this: Let us know!&lt;br /&gt;
&lt;br /&gt;
'''Possible Solutions:'''&lt;br /&gt;
&lt;br /&gt;
1. You can instead use syndaemon, which can turn off the touchpad for a brief period while you are typing.&lt;br /&gt;
&lt;br /&gt;
2. All acpi events are run as root. Therefore, to enable the kdialog, you will need to incorporate a script to determine which user is running on DISPLAY :0.0; something like the following should work (put it in your acpi file)&lt;br /&gt;
 if ps -e | grep -q -E '(enlightenment|kwin|dwm)'; then&lt;br /&gt;
        X_USER=`/usr/bin/who | /usr/bin/sed -n &amp;quot;s,^\(.*\):0 .*$,\1,p&amp;quot;`&lt;br /&gt;
        X_USER=${X_USER/ /};&lt;br /&gt;
        export DISPLAY=:0.0&lt;br /&gt;
 fi&lt;br /&gt;
 if [ -n &amp;quot;$X_USER&amp;quot; ]; then su $X_USER -c &amp;quot;/usr/local/bin/toggleTouchpad&amp;quot;;&lt;br /&gt;
 else /usr/local/bin/toggleTouchpad;&lt;br /&gt;
 fi&lt;br /&gt;
--[[User:Ppurka|Ppurka]] 18:43, 14 September 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
== What about older machines? ==&lt;br /&gt;
&lt;br /&gt;
On the 600X, Fn+PgUp and Fn+PgDn control speaker volume and Fn+Backspace toggles speaker mute. In addition, Fn+F2 is shows a battery icon and the manual states that it brings up a battery monitor. It hasn't worked since Windows 95. Fn+F11 shows a dripping tap and is meant to select a power mode. Fn+F8 has no icon but toggles screen expansion.&lt;br /&gt;
&lt;br /&gt;
On the 750P, Fn+F5 and Fn+F6 control speaker volume, and I think Fn+F2 and Fn+F11 show the same icons as the 600X. However, that machine certainly doesn't have ACPI. Fn+F8 toggles screen inversion (black shows as white and vice-versa) on the monochrome models and Fn+F9 toggles brightness inversion (normal characters become bright and bright characters become normal). Those two only affect the internal LCD and not the signal on the VGA connector.&lt;br /&gt;
&lt;br /&gt;
--[[User:Whizkid|Whizkid]] 19:32, 27 November 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
Please add that information to the [[Default meanings of special keys]] page, including the description of the icons and functions.  As for how to use these keys, it depends.  How well does thinkpad-acpi work on the 600X and 750P?  If it doesn't work at all, then you have to resort to tpb, which may have no idea how to access these keys in NVRAM :-(&lt;br /&gt;
&lt;br /&gt;
--[[User:Hmh|hmh]] 14:18, 30 November 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
I've updated the descriptions of functions on that page for 750P, 560E and 600X. There are no descriptions of icons anywhere on that page. An example to start with would be nice. The 750 family doesn't have ACPI at all.&lt;br /&gt;
--[[User:Whizkid|Whizkid]] 14:09, 25 December 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
== ThinkVantage button not recognized by xev under Hardy ==&lt;br /&gt;
&lt;br /&gt;
Hello,&lt;br /&gt;
&lt;br /&gt;
I would like to set up the ThinkVantage button as XF86LaunchA, but I simply can't as it doesn't give any signal in xev. Any ideas how could I fix this?&lt;br /&gt;
&lt;br /&gt;
Thanks, [[User:Nagyv|Nagyv]] 22:54, 3 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As the button is no &amp;quot;real keyboard button&amp;quot; it does not generate a keycode, but an acpi event (maybe thinkpad_acpi is needed for it to work) which you can set up to do what ever you want (well, not everything). see the article.&lt;br /&gt;
&lt;br /&gt;
--[[User:BDKMPSS|BDKMPSS]] 23:45, 3 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Thank, this worked. I only had to add a new file under /etc/acpi/events. As there were many working examples, it was easy to write my own. Finally, I had to restart acpid.&lt;br /&gt;
&lt;br /&gt;
thanks, [[User:Nagyv|Nagyv]]&lt;/div&gt;</summary>
		<author><name>Low</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Talk:How_to_get_special_keys_to_work&amp;diff=40202</id>
		<title>Talk:How to get special keys to work</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Talk:How_to_get_special_keys_to_work&amp;diff=40202"/>
		<updated>2008-12-11T11:09:45Z</updated>

		<summary type="html">&lt;p&gt;Low: /* Bind Fn to super or hyper */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
The xmodmap step doesn't seem to work when using the &amp;quot;kdb&amp;quot; driver of xorg. Here are the changes I needed to make to my setup to get the &amp;quot;back&amp;quot; and &amp;quot;forward&amp;quot; keys to work (in diff -u format);&lt;br /&gt;
&lt;br /&gt;
 --- xkb/symbols/inet.oud        2004-12-01 08:36:04.000000000 +0100&lt;br /&gt;
 +++ xkb/symbols/inet    2005-03-08 19:59:32.587636120 +0100&lt;br /&gt;
 @@ -1875,6 +1875,16 @@&lt;br /&gt;
      key &amp;lt;I76&amp;gt;  {       [ XF86AudioLowerVolume  ]       };&lt;br /&gt;
  };&lt;br /&gt;
  &lt;br /&gt;
 +// IBM ThinkPad 41 Internet Keys&lt;br /&gt;
 +&lt;br /&gt;
 +partial alphanumeric_keys&lt;br /&gt;
 +xkb_symbols &amp;quot;tp41&amp;quot; {&lt;br /&gt;
 +    name[Group1]= &amp;quot;IBM ThinkPad 41 Internet Keys&amp;quot;;&lt;br /&gt;
 +&lt;br /&gt;
 +    key &amp;lt;I69&amp;gt;  {       [ F22           ]       };&lt;br /&gt;
 +    key &amp;lt;I6A&amp;gt;  {       [ F21           ]       };&lt;br /&gt;
 +};&lt;br /&gt;
 +&lt;br /&gt;
  // Trust&lt;br /&gt;
  &lt;br /&gt;
  partial alphanumeric_keys&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 --- xkb/rules/xorg.lst.oud      2004-12-01 08:36:05.000000000 +0100&lt;br /&gt;
 +++ xkb/rules/xorg.lst  2005-03-07 20:55:21.000000000 +0100&lt;br /&gt;
 @@ -97,6 +97,7 @@&lt;br /&gt;
    sven         SVEN Ergonomic 2500&lt;br /&gt;
    symplon      Symplon PaceBook (tablet PC)&lt;br /&gt;
    toshiba_s3000        Toshiba Satellite S3000&lt;br /&gt;
 +  tp41         IBM ThinkPad 41 Internet Keys&lt;br /&gt;
    trust                Trust Wireless Keyboard Classic&lt;br /&gt;
    trustda      Trust Direct Access Keyboard&lt;br /&gt;
    yahoo                Yahoo! Internet Keyboard&lt;br /&gt;
&lt;br /&gt;
 --- xkb/rules/xorg.oud  2004-12-01 08:36:05.000000000 +0100&lt;br /&gt;
 +++ xkb/rules/xorg      2005-03-07 20:45:59.000000000 +0100&lt;br /&gt;
 @@ -120,7 +120,7 @@&lt;br /&gt;
                qtronix \&lt;br /&gt;
                samsung4500 samsung4510 \&lt;br /&gt;
                sk1300 sk2500 sk6200 sk7100 \&lt;br /&gt;
 -              sven symplon toshiba_s3000 trust trustda yahoo&lt;br /&gt;
 +              sven symplon toshiba_s3000 tp41 trust trustda yahoo&lt;br /&gt;
 &lt;br /&gt;
  ! model         =       symbols&lt;br /&gt;
    $inetkbds     =       +inet(%m)&lt;br /&gt;
&lt;br /&gt;
 --- xkb/rules/xorg.xml.oud      2004-12-01 08:36:05.000000000 +0100&lt;br /&gt;
 +++ xkb/rules/xorg.xml  2005-03-07 20:52:35.000000000 +0100&lt;br /&gt;
 @@ -975,6 +975,13 @@&lt;br /&gt;
      &amp;lt;/model&amp;gt;&lt;br /&gt;
      &amp;lt;model&amp;gt;&lt;br /&gt;
        &amp;lt;configItem&amp;gt;&lt;br /&gt;
 +        &amp;lt;name&amp;gt;tp41&amp;lt;/name&amp;gt;&lt;br /&gt;
 +        &amp;lt;description&amp;gt;IBM Thinkpad 41 Internet Keys&amp;lt;/description&amp;gt;&lt;br /&gt;
 +        &amp;lt;description xml:lang=&amp;quot;nl&amp;quot;&amp;gt;IBM ThinkPad 41 internet toetsen&amp;lt;/description&amp;gt;&lt;br /&gt;
 +      &amp;lt;/configItem&amp;gt;&lt;br /&gt;
 +    &amp;lt;/model&amp;gt;&lt;br /&gt;
 +    &amp;lt;model&amp;gt;&lt;br /&gt;
 +      &amp;lt;configItem&amp;gt;&lt;br /&gt;
          &amp;lt;name&amp;gt;trust&amp;lt;/name&amp;gt;&lt;br /&gt;
          &amp;lt;description&amp;gt;Trust Wireless Keyboard Classic&amp;lt;/description&amp;gt;&lt;br /&gt;
          &amp;lt;description xml:lang=&amp;quot;fr&amp;quot;&amp;gt;clavier classique Trust Wireless&amp;lt;/description&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Do not forget to add something like &amp;quot;+inet(tp41)&amp;quot; to /etc/X11/xorg.conf:&lt;br /&gt;
        (...)&lt;br /&gt;
        Option      &amp;quot;XkbLayout&amp;quot; &amp;quot;us_intl+inet(tp41)&amp;quot;&lt;br /&gt;
        (...)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
I've filled a [https://bugs.freedesktop.org/show_bug.cgi?id=9779 bug] to freedesktop bugzilla, which has been applied.  It adds inet(thinkpad) symbols with &amp;lt;I69&amp;gt;/&amp;lt;I6A&amp;gt; keys and adds thinkpad to $inetkbds list.  So, Forward/Back keys will work out-of-box with thinkpad XkbModel.  However, thinkpadintl model is not supported... --[[User:Raorn|Raorn]] 13:25, 27 January 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
== Not T41 specific ==&lt;br /&gt;
&lt;br /&gt;
These keys are hardly T41 specific, they can also be found on the T30, T40, T42 and I'm sure several other ThinkPads in the X, R and G lineup.&lt;br /&gt;
&lt;br /&gt;
Actually, the above patches could be completed with the information of the other special keys found on some Thinkpads (which is listed in [[How_to_get_special_keys_to_work#xmodmap_configuration]]) and submitted as a request for enhancement with [http://bugs.freedesktop.org xorg's bugzilla]. However, firefox doesn't yet recognize keysyms like XF86Back, XF86Forward, so then firefox still needs to be patched manually (unless an enhancement is requested for firefox too).&lt;br /&gt;
&lt;br /&gt;
=== XF86Back in Firefox === &lt;br /&gt;
I found that XF86Back and XF86Forward work for me with firefox.  I was able to use the following in &lt;br /&gt;
/usr/lib/firefox/chrome/browser/content/browser/browser.xul&lt;br /&gt;
 &amp;lt;key id=&amp;quot;goBackKb&amp;quot; keycode=&amp;quot;XF86Back&amp;quot; command=&amp;quot;Browser:Back&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;key id=&amp;quot;goForwardKb&amp;quot; keycode=&amp;quot;XF86Forward&amp;quot; command=&amp;quot;Browser:Forward&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
My firefox version is Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.3) Gecko/20061201 Firefox/2.0.0.3 (Ubuntu-feisty)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This also works for me, but &amp;quot;XF86Back&amp;quot; seems to be *the same* (toggles the same command, but only in FireFox) as [Alt Gr]-Key on German keyboards, even if xev shows nothing like this. Bug in FireFox? Therefor I have stick to the F19/F20 workaround.&lt;br /&gt;
&lt;br /&gt;
--[[User:BDKMPSS|BDKMPSS]] June 04 2007&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Fake ACPI events? ==&lt;br /&gt;
&lt;br /&gt;
Not all keys generate ACPI events. Maybe it is feasible to have the ibm-acpi module check the CMOS (instead of having tpb checking /dev/nvram) and generate fake ACPI events for those keys. Even if it is feasible, that is probably way to hacky for a kernel module ... Still, it would be nice to only have to use scripts triggered by ACPI events and not both scripts for ACPI events and scripts for tpb.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
I think something like this is possible with ibm-acpi 0.10 already. It provides a proc file from which you can derive a table of CMOS states. You'd only have to figure the who is who of CMOS bits and write a daemon (or daemon like shell script) checking them regularly. This should be about what you suggest since tpb does the same thing with the bios ram. Of course generating ACPI events can not be done like that (or can it?), but you could trigger the ACPI action scripts directly then.&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 01:02, 14 Mar 2005 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
It may be possible (I have a 770x, so don't have the special keys) to add the keys as real ACPI events, by altering the DSDT.  I've done this to enable ACPI events for Fn-(every labelled F key),Home,End,PgUp,PgDn on mine, and they aren't labelled with anything physically (no thinklight and physical brightness control).  The Embedded Controller  reports all events, including keys, by calling one of the _Qxx functions (you'll find a whole pile in the sourcecode for the DSDT).  If you then insert a fucntion in the same scope as the others like:-&lt;br /&gt;
 Method (_Q12, 0, NotSerialized) { \_SB.HKEY.MHKQ (0x1003) } //Fn-F3&lt;br /&gt;
when executed, ibm-acpi will then report an acpi event numbered 0x0001003.  You should find some functions, e.g. _Q1B For Fn-F12 identical to this.&lt;br /&gt;
&lt;br /&gt;
I found some IBM DSDT's had functions that made MKHQ calls for EC functions _Q63, _Q64, _Q4E, _Q4F, but did nothing on mine---maybe these are a good starting point.  Add a whole pile, and see if you get lucky! (At your own risk, of course... :/  But it should be pretty safe).&lt;br /&gt;
&lt;br /&gt;
Yes, the above sounds pretty identical to tpb, except with /proc/ibm/ecdump instead of /dev/nvram.  The above works very nicely, however there's luck involved in finding the right number, even if it exists!&lt;br /&gt;
&lt;br /&gt;
[[User:lentinj|lentinj]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Fn+F6 does not seem to generate an event on t41p even if the mask is set to 0xffff and experimental=1 is passed to ibm_acpi&lt;br /&gt;
[[User:tf|tf]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Bind Fn to super or hyper ==&lt;br /&gt;
&lt;br /&gt;
Hello &lt;br /&gt;
&lt;br /&gt;
Is it possible to bind Fn via Xmodmap to a key modifier such as hyper or super? Thanks&lt;br /&gt;
[[User:Oub|Oub]] 13:14, 6 February 2006 (CET): &lt;br /&gt;
----&lt;br /&gt;
I doubt it. The event for the {{key|Fn}} key is generated at release (as opposed to holding it where it serves it's usual special function). Hence you can't use it as a modifier. [[User:Wyrfel|Wyrfel]] 22:52, 6 February 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
I have added a paragraph how to get around the issue that {{key|Fn}} is not working with other key combos than the ones intended. Mebbe that helps you.&lt;br /&gt;
--[[User:Low|Low]] 12:09, 11 December 2008 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Bind Fn 12 say to F34 ==&lt;br /&gt;
Thanks Wyrfel for your reply, in order to display my question better, I use a new header: can I bind all the Fn Fx to hay F34 and the like?&lt;br /&gt;
[[User:Oub|Oub]] 21:33, 10 February 2006 (CET):&lt;br /&gt;
----&lt;br /&gt;
You can do this with all key '''combinations''' that support xmodmap (see the table). That means you can't do it with {{key|Fn}}}{{key|F12}}, because that combination doesn't generate a key event at all (it only generates an APM/ACPI event. Hence there is nothing vor xmodmap to remap.&lt;br /&gt;
&lt;br /&gt;
But what is your wider focus goal? I'm sure that what you want to do can be realized, anyway: You can write an ACPI script and event file for {{key|Fn}}{{key|F12}} and have the script start some tool that sends a F34 key to the X server. I'm sure this is possible.&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 00:03, 11 February 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
==Can't bind Fn 12 ==&lt;br /&gt;
&lt;br /&gt;
Hello &lt;br /&gt;
&lt;br /&gt;
I  am using a R51 and I have compiled ibm-acpi monolithic in the kernel (not as module, maybe this is a mistake?). Anyway, I am using &lt;br /&gt;
suspend2, which I compiled in the kernel as well. Now I have bound &lt;br /&gt;
''to hibernate '' first to Fn 4, with the following script&lt;br /&gt;
 event=button[ /]sleep  &lt;br /&gt;
 action=/usr/local/sbin/mihibernate &lt;br /&gt;
&lt;br /&gt;
This works fine. Now I want to do the same for Fn12, so following the key table I did:  &lt;br /&gt;
&lt;br /&gt;
 event=button[/] ibm/hotkey HKEY 00000080 0000100c  &lt;br /&gt;
 action=/usr/local/sbin/mihibernate &lt;br /&gt;
&lt;br /&gt;
But that does not work. What is the problem? I tried even   &lt;br /&gt;
 echo enable,0xffff &amp;gt;/proc/acpi/ibm/hotkey &lt;br /&gt;
without success. Can anybody help me? &lt;br /&gt;
[[User:Oub|Oub]] 16:27, 4 March 2006 (CET):&lt;br /&gt;
----&lt;br /&gt;
The proper event line is&lt;br /&gt;
 event=ibm/hotkey HKEY 00000080 0000100c&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
Also, make sure that you are not using [thinkpad-acpi]. If &amp;lt;tt&amp;gt;event=button[ /]sleep&amp;lt;/tt&amp;gt; works for {{key|Fn}}{{key|F4}}, that indicates that you do. It might block the ibm-acpi driver. Check your kernel config and disable any thinkpad acpi driver except ibm-acpi.&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 21:58, 4 March 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
:Hello&lt;br /&gt;
:&lt;br /&gt;
:It is odd, I am pretty sure, that I do not use [thinkpad-acpi], but [ibm-acpi], although event=button[ /]sleep works for FnF4, in any case I found out that &lt;br /&gt;
:&lt;br /&gt;
: event=(button/power|ibm/hotkey HKEY 00000080 0000100c)&lt;br /&gt;
:&lt;br /&gt;
:Works! What do you think of adding a subsection to the [[How to get special keys to work]] page, with some examples, like the following:&lt;br /&gt;
:&lt;br /&gt;
:from ''/etc/acpi/events/battery'':&lt;br /&gt;
 event=(button/power|ibm/hotkey HKEY 00000080 0000100c)  &lt;br /&gt;
 action=/usr/local/sbin/hibernate&lt;br /&gt;
:from ''/etc/acpi/events/lid''&lt;br /&gt;
 event=button/lid&lt;br /&gt;
 action=/usr/local/bin/mysleepram&lt;br /&gt;
:from ''/etc/acpi/events/sleepbtn''&lt;br /&gt;
 event=(button/sleep|ibm/hotkey HKEY 00000080 00001004)&lt;br /&gt;
 action=/usr/local/bin/mysleepram&lt;br /&gt;
:&lt;br /&gt;
:(Also ''event=button/sleep '' works for me)&lt;br /&gt;
:and then restart acpi:&lt;br /&gt;
:&lt;br /&gt;
 /etc/init.d/acpid restart&lt;br /&gt;
:&lt;br /&gt;
:[[User:Oub|Oub]] 13:22, 5 March 2006 (CET):&lt;br /&gt;
----&lt;br /&gt;
What you do with&lt;br /&gt;
 event=(button/power|ibm/hotkey HKEY 00000080 0000100c)  &lt;br /&gt;
is to make a logical nonexclusive OR between&lt;br /&gt;
 event=button/power&lt;br /&gt;
and&lt;br /&gt;
 event=ibm/hotkey HKEY 00000080 0000100c&lt;br /&gt;
. If the first works, the whole thing works. So that's pretty logical.&lt;br /&gt;
&lt;br /&gt;
Please, do a {{cmdroot|dmesg &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; grep thinkpad-acpi}} and do a {{cmdroot|dmesg &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; grep ibm-acpi}}. What is the output in either case?&lt;br /&gt;
&lt;br /&gt;
I see no sense in putting examples to the page that only confuse people because they are not correct. ibm-acpi generates the events listed in the table and nothing else. If you get something like &amp;lt;tt&amp;gt;button/sleep&amp;lt;/tt&amp;gt; it's not ibm-acpi generating it. You are running Debian, right? Let's hope they didn't patch the driver to generate different events.&lt;br /&gt;
&lt;br /&gt;
Also, you can always do {{cmdroot|tail -f /var/log/acpid}} to have a life view of the generated events.&lt;br /&gt;
&lt;br /&gt;
I am pretty sure that you are using thinkpad-acpi or - if not so - that something else must interfere.&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 04:49, 6 March 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&lt;br /&gt;
:Hi &lt;br /&gt;
:&lt;br /&gt;
:Ok I admit everything is very odd. For the start, I seem to use &lt;br /&gt;
:ibm-acpi. As I said I am Debian,  but I compiled my own kernel :(2.6.10)(but not as a module, maybe this was a bad idee??)  and I used :the ibm-acpi driver which comes shipped with that kernel. I did not :download the driver from the official http://ibm-acpi.sourceforge.net/ :site. Here is the output of &lt;br /&gt;
:&lt;br /&gt;
:dmesg | grep acpi&lt;br /&gt;
 Kernel command line: ro  root=/dev/hda6 acpi_sleep=s3_bios&lt;br /&gt;
 tbxface-0118 [02] acpi_load_tables      : ACPI Tables successfully acquired&lt;br /&gt;
 evxfevnt-0094 [03] acpi_enable           : Transition to ACPI mode successful&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [df6ddaa8]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c1464768]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c1467328]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c146bba8]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c146b628]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c146b3e8]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c146b268]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c146dde8]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c1470d68]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c1470568]&lt;br /&gt;
 acpi_bus-0081 [06] acpi_bus_get_device   : Error getting context for object [c14719a8]&lt;br /&gt;
 ibm_acpi: IBM ThinkPad ACPI Extras v0.8&lt;br /&gt;
 ibm_acpi: http://ibm-acpi.sf.net/&lt;br /&gt;
 acpi_bus-0081 [08] acpi_bus_get_device   : Error getting context for object [c1467328]&lt;br /&gt;
 ibm_acpi: dock device not present&lt;br /&gt;
&lt;br /&gt;
:I don't understand the errors but anyway. Now the odd thing is that indeed the following works&lt;br /&gt;
:&lt;br /&gt;
 event=button[ /]sleep&lt;br /&gt;
 action=/usr/local/sbin/hibernate &lt;br /&gt;
:but   &lt;br /&gt;
 event=button[/]sleep  &lt;br /&gt;
 action=/usr/local/sbin/hibernate &lt;br /&gt;
&lt;br /&gt;
:Does not work. But from what you said, using the ibm_acpi neither of '''these strings ''' should  work? So I don't understand what is going on. [[User:Oub|Oub]] 20:28, 6 March 2006 (CET):&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
With any reasonably new kernel (2.6.16 in Thinkpad terms :-) ) and a good DSDT (say, like the one that comes inside the T43), you can get two classes of events: ACPI events (as in native ACPI events), and ibm-acpi hotkey events.&lt;br /&gt;
&lt;br /&gt;
This has nothing to do with thinkpad-acpi.&lt;br /&gt;
&lt;br /&gt;
Look under /proc/acpi/buttons.  If you have sleep and maybe hibernate/suspend in there (I don't know how fn+f12 is called when properly supported through ACPI DSDT, the T43 doesn't support it like that), then your Thinkpad can, and will generate proper ACPI events without the help of ibm-acpi.  This is valid for a complete ACPI config of kernel 2.6.16 with all modules loaded.&lt;br /&gt;
&lt;br /&gt;
And it will generate regular ibm-acpi hotkey events if you enable the feature and use the correct mask, which may or may not confuse the thinkpad (I am not sure the correct DSDT handlers the BIOS expect to run are called in this case).&lt;br /&gt;
&lt;br /&gt;
-- [[User:Hmh|hmh]] 2006-05-26 13:20 UTC&lt;br /&gt;
&lt;br /&gt;
==Turn on/off Wifi on Fn5 ==&lt;br /&gt;
Hi&lt;br /&gt;
&lt;br /&gt;
I hope this is the last question. I use a crude way to activate and deactivate my wificard: I remove and insert the relevant modules, with 2 simple scripts. Now the question is how can I bind Fn5 so, that it turns on and off the wificard? With my approach I need to fire up two scripts, and that I cannot bind to one button. Thanks &lt;br /&gt;
[[User:Oub|Oub]] 17:57, 5 March 2006 (CET):&lt;br /&gt;
&lt;br /&gt;
Try a {{cmdroot|cat /proc/acpi/ibm/bluetooth}}. Maybe it returns the state. If not, the other way would be to check if the USB bluetooth controller device is listed in {{path|/proc/bus/usb}} somewhere. It shouldn't be there if bluetooth is switched off and should be there if it is on.&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 04:49, 6 March 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Split page?==&lt;br /&gt;
This page is getting too long. Maybe we should split it. I'd suggest moving the &amp;quot;Example applications&amp;quot; to a seperate page. &lt;br /&gt;
&lt;br /&gt;
[[User:Pebolle|Paul Bolle]] 22:46, 3 April 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
==DIY Firefox 1.5 xpi==&lt;br /&gt;
Here's how I maneged a Firefox 1.5 compatible plugin (source: google). Note that the wiki eats some of the xml tags (so look at the source too)&lt;br /&gt;
&lt;br /&gt;
 $ ls -1R tp41.xpi&lt;br /&gt;
 tp41.xpi/:&lt;br /&gt;
 chrome&lt;br /&gt;
 chrome.manifest&lt;br /&gt;
 install.rdf&lt;br /&gt;
 &lt;br /&gt;
 tp41.xpi/chrome:&lt;br /&gt;
 content&lt;br /&gt;
 &lt;br /&gt;
 tp41.xpi/chrome/content:&lt;br /&gt;
 tp41keysOverlay.xul&lt;br /&gt;
&lt;br /&gt;
 $ cat tp41.xpi/chrome.manifest&lt;br /&gt;
 content     tp41keys    chrome/content/&lt;br /&gt;
 overlay chrome://browser/content/browser.xul chrome://tp41keys/content/tp41keysOverlay.xul&lt;br /&gt;
&lt;br /&gt;
 $ cat tp41.xpi/install.rdf&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;RDF xmlns=&amp;quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;quot;&lt;br /&gt;
      xmlns:em=&amp;quot;http://www.mozilla.org/2004/em-rdf#&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   &amp;lt;Description about=&amp;quot;urn:mozilla:install-manifest&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;em:id&amp;gt;tp41keys@tp41keys.org&amp;lt;/em:id&amp;gt;&lt;br /&gt;
     &amp;lt;em:version&amp;gt;1.0&amp;lt;/em:version&amp;gt;&lt;br /&gt;
     &amp;lt;em:type&amp;gt;2&amp;lt;/em:type&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;!-- Target Application this extension can install into,&lt;br /&gt;
          with minimum and maximum supported versions. --&amp;gt;&lt;br /&gt;
     &amp;lt;em:targetApplication&amp;gt;&lt;br /&gt;
       &amp;lt;Description&amp;gt;&lt;br /&gt;
         &amp;lt;em:id&amp;gt;{ec8030f7-c20a-464f-9b0e-13a3a9e97384}&amp;lt;/em:id&amp;gt;&lt;br /&gt;
         &amp;lt;em:minVersion&amp;gt;1.0+&amp;lt;/em:minVersion&amp;gt;&lt;br /&gt;
         &amp;lt;em:maxVersion&amp;gt;1.5.0.*&amp;lt;/em:maxVersion&amp;gt;&lt;br /&gt;
       &amp;lt;/Description&amp;gt;&lt;br /&gt;
     &amp;lt;/em:targetApplication&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;!-- Front End MetaData --&amp;gt;&lt;br /&gt;
     &amp;lt;em:name&amp;gt;IBM ThinkPad 41 Keys&amp;lt;/em:name&amp;gt;&lt;br /&gt;
     &amp;lt;em:description&amp;gt;Two Browser Navigation Keys&amp;lt;/em:description&amp;gt;&lt;br /&gt;
     &amp;lt;em:creator&amp;gt;Paul Bolle&amp;lt;/em:creator&amp;gt;&lt;br /&gt;
     &amp;lt;em:homepageURL&amp;gt;http://www.example.com/tp41keys.xpi&amp;lt;/em:homepageURL&amp;gt;&lt;br /&gt;
   &amp;lt;/Description&amp;gt;&lt;br /&gt;
 &amp;lt;/RDF&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ cat tp41.xpi/chrome/content/tp41keysOverlay.xul&lt;br /&gt;
 &amp;lt;?xml version='1.0'?&amp;gt;&lt;br /&gt;
 &amp;lt;!DOCTYPE overlay&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;overlay id='tp41keysOverlay'&lt;br /&gt;
     xmlns='http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul'&amp;gt;&lt;br /&gt;
 &amp;lt;!-- For Firefox --&amp;gt;&lt;br /&gt;
     &amp;lt;keyset id='mainKeyset'&amp;gt;&lt;br /&gt;
         &amp;lt;key id='tp41BackKey' keycode='VK_F21' command='Browser:Back' /&amp;gt;&lt;br /&gt;
         &amp;lt;key id='tp41ForwardKey' keycode='VK_F22' command='Browser:Forward' /&amp;gt;&lt;br /&gt;
     &amp;lt;/keyset&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;/overlay&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ cat .mozilla/firefox/*.default/extensions/tp41keys\@tp41keys.org &lt;br /&gt;
 ~/tp41.xpi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ibm-acpi hint==&lt;br /&gt;
&lt;br /&gt;
I would like to add a hint under ibm-acpi to enable all hotkeys at boot, but I can not seem to get the HINT template to work:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{HINT|To enable all hotkeys on boot in debian, create the file /etc/modprobe.d/ibm_acpi containing 'options ibm_acpi hotkey=enable,0xffff'}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It outputs:&lt;br /&gt;
&lt;br /&gt;
{{HINT|To enable all hotkeys on boot in debian, create the file /etc/modprobe.d/ibm_acpi containing 'options ibm_acpi hotkey=enable,0xffff'}}&lt;br /&gt;
&lt;br /&gt;
Any ideas on how to get this to work? Also, does it even belong in the page?&lt;br /&gt;
&lt;br /&gt;
--[[User:Paul Strefling|Paul Strefling]] 23:22, 10 August 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you use ''ibm-apci'' as a module and have  {{path|/proc}} filesystem enabled, you can tune it by&lt;br /&gt;
adding to  {{path|/etc/modules.d/ibm_acpi}}:&lt;br /&gt;
&lt;br /&gt;
     post-install ibm-acpi /bin/echo enable,0x00d0 &amp;gt; /proc/acpi/ibm/hotkey&lt;br /&gt;
I added it after ''alias ibm-acpi ibm_acpi''. I'm not sure - if the order make sence. Params can be differ - it is an example.&lt;br /&gt;
&lt;br /&gt;
Also works fine with {{cmdroot|modprobe}} (don't forget to run  {{cmdroot|modules-update}} after editing  {{path|/etc/modules.d/*}}).&lt;br /&gt;
&lt;br /&gt;
(tested on Gentoo with vanilla kernel).&lt;br /&gt;
&lt;br /&gt;
==Lock Screen with hotkey on models before T60==&lt;br /&gt;
&lt;br /&gt;
In case it's of interest, it's possible to simulate the &amp;quot;lock screen&amp;quot; (Fn+F2) function of T60s on prior models. I wrote a little [http://forums.gentoo.org/viewtopic-p-3814885.html HOWTO] on the Gentoo forums explaining how to configure Fn+F3 to fire up xscreensaver instead of blanking the screen (though this could easily be changed to Fn+F2 instead). This was for my T42 but I presume it'd work on other models too. Perhaps it'd be worth mentioning in the Remarks column of the Fn+F2 row of the table at the top of the article? --[[User:Waveform|Waveform]] 03:42, 2 January 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
== Toggle touchpad with Fn-F8 ==&lt;br /&gt;
&lt;br /&gt;
I often want to switch off the touchpad, since I tend to produce spurious taps while typing, sending my cursor to random places on the screen. To toggle touchpad operation, I use this little script:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # toggle touchpad operation&lt;br /&gt;
 # August 2, 2006&lt;br /&gt;
 # (c) Michael Schmuker&lt;br /&gt;
 #&lt;br /&gt;
 if synclient -l | grep TouchpadOff | grep -q 0; then &lt;br /&gt;
     synclient TouchpadOff=1;&lt;br /&gt;
     kdialog --passivepopup &amp;quot;Touchpad is OFF&amp;quot; 2;&lt;br /&gt;
 else &lt;br /&gt;
     synclient TouchpadOff=0;&lt;br /&gt;
     kdialog --passivepopup &amp;quot;Touchpad is ON&amp;quot; 2;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
This checks if the touchpad is on or off, and toggles its state accordingly. Note that it uses kdialog to display a notification on the desktop. This obviously works only with KDE, but there certainly is a similar mechanism for other desktop environments.&lt;br /&gt;
&lt;br /&gt;
Now this script needs to be bound to the Fn-F8-key. On Suse 10.2, the ACPI-events produced by the thinkpad special keys are processed by powersaved. You need to edit the file {{path|/usr/lib/powersave/scripts/thinkpad_acpi_events}}.&lt;br /&gt;
There, thinkpad-ACPI events are bound to their actions. Where it comes to Fn-F8, just change it to the following (supposed you put the above script to {{path|/usr/local/bin/toggleTouchpad}} and make it executable):&lt;br /&gt;
 4104)   HOTKEY=&amp;quot;Fn+F8&amp;quot; #toggle touchpad on/off&lt;br /&gt;
    /usr/local/bin/toggleTouchpad&lt;br /&gt;
 ;;&lt;br /&gt;
Save the file, and the next time you press Fn-F8 you will toggle your touchpad. &lt;br /&gt;
&lt;br /&gt;
Unfortunately, the notification via kdialog is not working when toggling with Fn-F8. If anyone finds out how to solve this: Let us know!&lt;br /&gt;
&lt;br /&gt;
'''Possible Solutions:'''&lt;br /&gt;
&lt;br /&gt;
1. You can instead use syndaemon, which can turn off the touchpad for a brief period while you are typing.&lt;br /&gt;
&lt;br /&gt;
2. All acpi events are run as root. Therefore, to enable the kdialog, you will need to incorporate a script to determine which user is running on DISPLAY :0.0; something like the following should work (put it in your acpi file)&lt;br /&gt;
 if ps -e | grep -q -E '(enlightenment|kwin|dwm)'; then&lt;br /&gt;
        X_USER=`/usr/bin/who | /usr/bin/sed -n &amp;quot;s,^\(.*\):0 .*$,\1,p&amp;quot;`&lt;br /&gt;
        X_USER=${X_USER/ /};&lt;br /&gt;
        export DISPLAY=:0.0&lt;br /&gt;
 fi&lt;br /&gt;
 if [ -n &amp;quot;$X_USER&amp;quot; ]; then su $X_USER -c &amp;quot;/usr/local/bin/toggleTouchpad&amp;quot;;&lt;br /&gt;
 else /usr/local/bin/toggleTouchpad;&lt;br /&gt;
 fi&lt;br /&gt;
--[[User:Ppurka|Ppurka]] 18:43, 14 September 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
== What about older machines? ==&lt;br /&gt;
&lt;br /&gt;
On the 600X, Fn+PgUp and Fn+PgDn control speaker volume and Fn+Backspace toggles speaker mute. In addition, Fn+F2 is shows a battery icon and the manual states that it brings up a battery monitor. It hasn't worked since Windows 95. Fn+F11 shows a dripping tap and is meant to select a power mode. Fn+F8 has no icon but toggles screen expansion.&lt;br /&gt;
&lt;br /&gt;
On the 750P, Fn+F5 and Fn+F6 control speaker volume, and I think Fn+F2 and Fn+F11 show the same icons as the 600X. However, that machine certainly doesn't have ACPI. Fn+F8 toggles screen inversion (black shows as white and vice-versa) on the monochrome models and Fn+F9 toggles brightness inversion (normal characters become bright and bright characters become normal). Those two only affect the internal LCD and not the signal on the VGA connector.&lt;br /&gt;
&lt;br /&gt;
--[[User:Whizkid|Whizkid]] 19:32, 27 November 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
Please add that information to the [[Default meanings of special keys]] page, including the description of the icons and functions.  As for how to use these keys, it depends.  How well does thinkpad-acpi work on the 600X and 750P?  If it doesn't work at all, then you have to resort to tpb, which may have no idea how to access these keys in NVRAM :-(&lt;br /&gt;
&lt;br /&gt;
--[[User:Hmh|hmh]] 14:18, 30 November 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
I've updated the descriptions of functions on that page for 750P, 560E and 600X. There are no descriptions of icons anywhere on that page. An example to start with would be nice. The 750 family doesn't have ACPI at all.&lt;br /&gt;
--[[User:Whizkid|Whizkid]] 14:09, 25 December 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
== ThinkVantage button not recognized by xev under Hardy ==&lt;br /&gt;
&lt;br /&gt;
Hello,&lt;br /&gt;
&lt;br /&gt;
I would like to set up the ThinkVantage button as XF86LaunchA, but I simply can't as it doesn't give any signal in xev. Any ideas how could I fix this?&lt;br /&gt;
&lt;br /&gt;
Thanks, [[User:Nagyv|Nagyv]] 22:54, 3 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As the button is no &amp;quot;real keyboard button&amp;quot; it does not generate a keycode, but an acpi event (maybe thinkpad_acpi is needed for it to work) which you can set up to do what ever you want (well, not everything). see the article.&lt;br /&gt;
&lt;br /&gt;
--[[User:BDKMPSS|BDKMPSS]] 23:45, 3 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Thank, this worked. I only had to add a new file under /etc/acpi/events. As there were many working examples, it was easy to write my own. Finally, I had to restart acpid.&lt;br /&gt;
&lt;br /&gt;
thanks, [[User:Nagyv|Nagyv]]&lt;/div&gt;</summary>
		<author><name>Low</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_get_special_keys_to_work&amp;diff=40199</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=40199"/>
		<updated>2008-12-10T21:44:56Z</updated>

		<summary type="html">&lt;p&gt;Low: /* NumPad (KeyPad) keys access by a key combination */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
The following table gives an overview over the special keys found on ThinkPads and what is needed to make them work.&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
! key !! standard function{{footnote|1}} !! tools supporting key{{footnote|2}} !! configurability{{footnote|3}} !! remarks&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}} || - || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full || on release without completed key combination&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F1}} || - || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F2}} || lock screen || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full || in models from T/X/Z 60 onwards&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F3}} || blank screen || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F4}} || suspend to ram || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full || may generate ACPI event when not enabled in the ibm-acpi hotkey mask&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F5}} || switch bluetooth || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full || in models starting from 2002&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F6}} || - || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F7}} || toggle display || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]], [[#tpb configuration|tpb]] || additional actions || [[Sample Fn-F7 script]]&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F8}} || toggle trackpoint/touchpad || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]], [[#tpb configuration|tpb]] || additional actions ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F9}} || eject from dock || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F10}} || - || [[#ibm-acpi events|ibm-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F11}} || - || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F12}} || hibernate || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full || may generate ACPI event when not enabled in the ibm-acpi hotkey mask&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Home}} / {{key|Fn}}{{key|Pos1}} || brightness up || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]], [[#tpb configuration|tpb]], [[KMilo]] || additional actions ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|End}} || brightness down || [[thinkpad-acpi]], [[#tpb configuration|tpb]], [[KMilo]] || additional actions ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|PageUp}} || toggle thinklight || [[thinkpad-acpi]], [[#tpb configuration|tpb]], [[KMilo]] || additional actions ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Space}} || toggle zoom || [[thinkpad-acpi]], [[#tpb configuration|tpb]], [[KMilo]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Ins}} || - || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]]|| full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Del}} || - || [[#ibm-acpi events|ibm-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Backspace}} || - || [[#ibm-acpi events|ibm-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|NumLock}} || - || [[#xmodmap configuration|xmodmap]] || make working ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Windows}} || - || [[#xmodmap configuration|xmodmap]] || remapping ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Access IBM|#495988}} or {{ibmkey|ThinkPad|#494949}} or {{ibmkey|ThinkVantage|#495988}} || help application || [[thinkpad-acpi]],[[#tpb configuration|tpb]], [[KMilo]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Home|#494949}} || open web browser || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]], [[KMilo]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Search|#494949}} || open search application || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]], [[KMilo]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Mail|#494949}} || open mail application || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]], [[KMilo]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Favorites|#494949}} || open favorites || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Reload|#494949}} || reload web page || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Abort|#494949}} || abort loading page || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Backward|#494949}} || previous page || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full ||  ext. keyboards and ThinkPads starting from 2002&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Forward|#494949}} || next page || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full || ext. keyboards and ThinkPads starting from 2002&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume up|#494949}} || volume up || [[thinkpad-acpi]], [[#tpb configuration|tpb]], [[KMilo]] || additional actions ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume down|#494949}} || volume down || [[thinkpad-acpi]], [[#tpb configuration|tpb]], [[KMilo]] || additional actions ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume mute|#494949}} || mute volume || [[thinkpad-acpi]], [[#tpb configuration|tpb]], [[KMilo]] || additional actions ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Play/Pause|#494949}} || start/pause playback  || [[#xmodmap configuration|xmodmap]] || full || {{X60s}} (Fn+Arrow Down)&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Stop|#494949}} || stop playback || [[#xmodmap configuration|xmodmap]] || full || {{X60s}} (Fn+Arrow Up)&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Next|#494949}} || play next || [[#xmodmap configuration|xmodmap]] || full || {{X60s}} (Fn+Arrow Right)&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Previous|#494949}} || play previous || [[#xmodmap configuration|xmodmap]] || full || {{X60s}} (Fn+Arrow Left)&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Power|#494949}} || shutdown || [[#ibm-acpi events|ibm-acpi]],[[thinkpad-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 events|ibm-acpi]], [[thinkpad-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| Ultrabay lid || announce ultrabay change || [[#ibm-acpi events|ibm-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| Dock eject || eject from dock || [[#ibm-acpi events|ibm-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet power|#494949}} || shutdown || [[#ibm-acpi events|ibm-acpi]] || full || triggered on pressing 3secs, but notebook goes off on 5sec press&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet orientation|#494949}} || rotates screen || [[#Mapping keys with setkeycodes|setkeycodes]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet shortcut|#494949}} || shortcut menu || [[#Mapping keys with setkeycodes|setkeycodes]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Esc|#494949}} || esc key || [[#Mapping keys with setkeycodes|setkeycodes]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Enter|#494949}} || enter key || [[#mapping keys with setkeycodes|setkeycodes]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Up|#494949}} || up key || [[#Mapping keys with setkeycodes|setkeycodes]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Down|#494949}} || down key || [[#Mapping keys with setkeycodes|setkeycodes]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet (unlabeled)|#494949}} || down key || [[#Mapping keys with setkeycodes|setkeycodes]] || full ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For completeness, note that the WiFi enable/disable switch is located (on the X61 and other models that have it) just under the front edge of the base of the machine.  You should see a small horizontal slider switch.  Enable by sliding it rightwards, disable by sliding it leftwards.&lt;br /&gt;
&lt;br /&gt;
==Triggering key events==&lt;br /&gt;
===ibm-acpi/thinkpad-acpi events===&lt;br /&gt;
Some of the following events require a {{cmdroot|echo enable,0xffff &amp;gt;/proc/acpi/ibm/hotkey}} (when using ibm-acpi) in order to make acpi able to get information on them. Since the newer thinkpad-acpi has a larger number of bits that can be set in the mask, you might try {{cmdroot|echo enable,0xffffffff &amp;gt;/proc/acpi/ibm/hotkey}} if you are using this driver. These events can be used to [[How to configure acpid|configure acpid]].&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
|+ events triggered by [[ibm-acpi]] for {{path|/etc/acpi/events}} files. May vary on different models.&lt;br /&gt;
! key !! event&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F1}} || ibm/hotkey HKEY 00000080 00001001&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F2}} || ibm/hotkey HKEY 00000080 00001002&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F3}} || ibm/hotkey HKEY 00000080 00001003&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F4}} || ibm/hotkey HKEY 00000080 00001004&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F5}} || ibm/hotkey HKEY 00000080 00001005&lt;br /&gt;
|- &lt;br /&gt;
| {{key|Fn}}{{key|F6}} || ibm/hotkey HKEY 00000080 00001006&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F7}} || ibm/hotkey HKEY 00000080 00001007&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F8}} || ibm/hotkey HKEY 00000080 00001008&lt;br /&gt;
|- &lt;br /&gt;
| {{key|Fn}}{{key|F9}} || ibm/hotkey HKEY 00000080 00001009 &lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F10}} || ibm/hotkey HKEY 00000080 0000100a&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F11}} || ibm/hotkey HKEY 00000080 0000100b &lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F12}} || ibm/hotkey HKEY 00000080 0000100c&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Backspace}} || ibm/hotkey HKEY 00000080 0000100d&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Ins}} || ibm/hotkey HKEY 00000080 0000100e &lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Del}} || ibm/hotkey HKEY 00000080 0000100f &lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Home}}/{{key|Fn}}{{key|Pos1}} || ibm/hotkey HKEY 00000080 00001010&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|End}} || ibm/hotkey HKEY 00000080 00001011&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|PgUp}} || ibm/hotkey HKEY 00000080 00001012&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Space}} || ibm/hotkey HKEY 00000080 00001014&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume up|#494949}}|| ibm/hotkey HKEY 00000080 00001015&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume down|#494949}} || ibm/hotkey HKEY 00000080 00001016&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume mute|#494949}} || ibm/hotkey HKEY 00000080 00001017&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Access IBM|#495988}} or {{ibmkey|ThinkPad|#494949}} or {{ibmkey|ThinkVantage|#495988}} || ibm/hotkey HKEY 00000080 00001018&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;
| Dock eject || ibm/dock GDCK 00000003 00000001 &lt;br /&gt;
|-&lt;br /&gt;
| Wireless switch || ibm/hotkey HKEY 00000080 00007000 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
By disassembling and editing the DSDT, more events can be added.  HKEY events are triggered by calls to the MKHQ function, e.g. &amp;lt;tt&amp;gt;\_SB.PCI0.LPC.EC.HKEY.MHKQ(0Ã—1007)&amp;lt;/tt&amp;gt; will trigger &amp;quot;ibm/hotkey HKEY 00000080 00001007&amp;quot;.  Most of these can be found in &amp;lt;tt&amp;gt;_Qxx&amp;lt;/tt&amp;gt; methods within the DSDT, which are executed on embedded controller events, e.g. _Q10 is triggered by pressing Fn-F7.  You can add a call to MKHQ into an existing &amp;lt;tt&amp;gt;_Qxx&amp;lt;/tt&amp;gt; method to get it recognized by ibm-acpi as well as creating new &amp;lt;tt&amp;gt;_Qxx&amp;lt;/tt&amp;gt; methods, which if you're lucky will correspond to an EC event that IBM never used (e.g. A 770 will send Fn-Home/End/PgUp/PgDn to ibm-acpi if hacked in this fashion). For example, [http://www.wormnet.eu/ibm-g40/morebuttons.dsl this is a modified block of DSDT for a G40].&lt;br /&gt;
&lt;br /&gt;
=== ACPI events from the &amp;lt;tt&amp;gt;button&amp;lt;/tt&amp;gt; module===&lt;br /&gt;
&lt;br /&gt;
A few keys can generate ACPI events that result from the &amp;lt;tt&amp;gt;button&amp;lt;/tt&amp;gt; kernel module, as long as they are masked off in the &amp;lt;tt&amp;gt;ibm-acpi&amp;lt;/tt&amp;gt;/&amp;lt;tt&amp;gt;thinkpad-acpi&amp;lt;/tt&amp;gt; hotkey's mask or the hotkey function of the latter module is disabled.&lt;br /&gt;
&lt;br /&gt;
If you want the ThinkPad's BIOS and ACPI methods to know about these keys being pressed, you probably want to leave them masked out from ibm-acpi, and use their non-HKEY events listed below, instead.&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
|+ events triggered by ACPI when hotkey is masked out or disabled. &lt;br /&gt;
! key !! event !! T60 event&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Power|#494949}} || button/power PWRF 00000080 xxxxxxxx || button/power PWRF 00000080 00000001&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F4}} || button/sleep SLPB 00000080 00000001 || button/sleep SLPB 00000080 00000001&lt;br /&gt;
|-&lt;br /&gt;
| Display lid || button/lid LID 00000080 xxxxxxxx || button/lid LID 00000080 00000001&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===tpb configuration===&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
|+ configuration keywords for [[tpb]] (to put in {{path|/etc/tpbrc}})&lt;br /&gt;
! key !! config keyword&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Access IBM|#495988}} or {{ibmkey|ThinkPad|#494949}} || THINKPAD&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Home|#494949}} || HOME&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Search|#494949}} || SEARCH&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Mail|#494949}} || MAIL&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Favorites|#494949}} || FAVORITES&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Reload|#494949}} || RELOAD&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Abort|#494949}} || ABORT&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Backward|#494949}} || BACKWARD&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Forward|#494949}} || FORWARD&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}} || FN&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Space}} || CALLBACK (zoom on/off)&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|PageUp}} || CALLBACK (thinklight on/off)&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F7}} || CALLBACK (display lcd/crt/both)&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F8}} || CALLBACK (expand on/off)&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Home}} / {{key|Fn}}{{key|Pos1}} || CALLBACK (brightness &amp;lt;percent&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|End}} || CALLBACK (brightness &amp;lt;percent&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume up|#494949}} || CALLBACK (volume &amp;lt;percent&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume down|#494949}} || CALLBACK (volume &amp;lt;percent&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume mute|#494949}} || 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 &amp;lt;tt&amp;gt;XEVENTS OFF&amp;lt;/tt&amp;gt; in your {{path|/etc/tpbrc}}. &lt;br /&gt;
You can use an appropriate executable to [[How to inject fake keystrokes|inject fake keystrokes]].&lt;br /&gt;
&lt;br /&gt;
For Debian users, tpb is started from {{path|/etc/X11/Xsession.d/90tpb}}.&lt;br /&gt;
&lt;br /&gt;
'''Sound Button configuration'''&lt;br /&gt;
&lt;br /&gt;
''Note: Tested on T60p with Ubuntu 6.06 LTS''&lt;br /&gt;
&lt;br /&gt;
Most Thinkpads have a hardware sound mixer, thus the volumes buttons should work without configuration. However, this change is not reflected in the software mixer. tpb has a switch to enable software mixer support via OSS. The manual recommends this only for devices without a hardware mixer, but it also works for other hadware mixer enabled devices, even with the ALSA system. Just put MIXER ON in your {{path|/etc/tpbrc}} file and you can see the effect immediately in any ALSA mixer (e.g. kmix). For this to work you need write permissions to {{path|/dev/nvram}}.&lt;br /&gt;
&lt;br /&gt;
''Note: Tested on X21 with Ubuntu 6.06 LTS''&lt;br /&gt;
&lt;br /&gt;
On the ThinkPad X21 (and maybe some other older models) ACPI causes problems with tpb.  On an X21 using acpi the volume buttons would work occasionally, and the OSD for tpb functions would rarely work.  If a volume buttons was pressed too often, sometimes the computer would enter a low power (unplugged state) and would require a reboot.  The solution is to use APM instead of ACPI.  Instructions can be found in [[How_to_make_APM_work]].&lt;br /&gt;
&lt;br /&gt;
===KMilo configuration===&lt;br /&gt;
The programs to be executed by [[KMilo]] are configured via the KDE Control Center (&amp;lt;tt&amp;gt;kcontrol&amp;lt;/tt&amp;gt;), under &amp;lt;tt&amp;gt;System Administration --&amp;gt; IBM Thinkpad Laptop&amp;lt;/tt&amp;gt;. Note that you can use appropriate commands to [[How to inject fake keystrokes|inject fake keystrokes]].&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;
To discover the keycode that a certain keypress produces, use the tool {{cmduser|xev}} &lt;br /&gt;
&lt;br /&gt;
Usually you should write your keycode-keysym associations into the file {{path|~/.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 {{path|~/.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;
Load the assocation using the command&lt;br /&gt;
&lt;br /&gt;
{{cmduser|xmodmap ~/.Xmodmap}} &lt;br /&gt;
&lt;br /&gt;
(some configurations do this automatically upon X startup). &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;
{| {{prettytable}}&lt;br /&gt;
|+ keycodes and recommended keysyms&lt;br /&gt;
! key !! keycode !! keysym&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Access IBM|#495988}} or {{ibmkey|ThinkPad|#494949}} || 159 || XF86LaunchA&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Backward|#494949}} || 234 || XF86Back or F19&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Forward|#494949}} || 233 || XF86Forward or F20&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Play/Pause|#494949}} || 162 || XF86AudioPlay&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Stop|#494949}} || 164 || XF86AudioStop&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Next|#494949}} || 153 || XF86AudioNext&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Previous|#494949}} || 144 || XF86AudioPrev&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| {{ibmkey|Home|#494949}} || 178 || XF86HomePage&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Search|#494949}} || 229 || XF86Search&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Mail|#494949}} || 236 || XF86Mail&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Favorites|#494949}} || 230 || XF86AddFavorite or XF86Favorites&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Reload|#494949}} || 231 || XF86Reload&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Abort|#494949}} || 232 || XF86Stop&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}} || 227 || F35&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: You can also use xkeycaps (an X tool to display and edit the X keyboard mapping) to generate proper .Xmodmap.&lt;br /&gt;
&lt;br /&gt;
Note: if you are running [[tpb]] you might need to add the line &amp;lt;tt&amp;gt;XEVENTS=off&amp;lt;/tt&amp;gt; into your tpbrc to stop it from grabbing the key events and allow them to get through to X instead. See [[http://www.thinkwiki.org/wiki/Tpb]] for more detailed instruction on how to use tpb and xmodmap.&lt;br /&gt;
&lt;br /&gt;
Note: XF86Forward and XF86Back do not work correctly in Firefox. You may want to map them to F19 and F20 instead if you use Firefox.&lt;br /&gt;
&lt;br /&gt;
Note: The &amp;quot;XF86AudioPlay&amp;quot; etc. just works with a few programs. To make it work with more multimedia programs you have map the key to use something like [http://www.kde-apps.org/content/show.php/ReMoot?content=63140 ReMoot]. ReMoot is a command line wrapper that control 18 of the most common multimedia applications. &lt;br /&gt;
&lt;br /&gt;
=====Enabling the Windows and Menu Keys=====&lt;br /&gt;
On some systems the Windows and Menu keys may not be recognized.  You can enable then by&lt;br /&gt;
making the following changes:&lt;br /&gt;
&lt;br /&gt;
        keycode 115 = F13&lt;br /&gt;
        keycode 227 = F35&lt;br /&gt;
&lt;br /&gt;
F13 and F35 are used for the Windows and and Menu keys respectively.  Labelling keycpode 227 as &amp;quot;Menu&amp;quot; may conflict with the right-mouse-click event.&lt;br /&gt;
&lt;br /&gt;
=====Using Caps Lock as Super L (Windows key)=====&lt;br /&gt;
You can easily use Caps Lock as Win key by adding the following in your ~/.Xmodmap:&lt;br /&gt;
        ! No Caps Lock&lt;br /&gt;
        clear lock&lt;br /&gt;
        ! Caps Lock as Win key&lt;br /&gt;
        add mod4 = Caps_Lock&lt;br /&gt;
=====NumLock=====&lt;br /&gt;
On the ThinkPad {{600}}, {{T20}}, {{T21}}, {{T22}}, {{T30}}, {{X20}}, {{X21}},  {{X31}}, {{X40}}, {{T42p}}, {{T43}}, {{R51}}, {{R52}} and possibly other models, X does not recognize the keycode for {{key|NumLk}} = {{key|Shift}}+{{key|ScrLk}}. To fix this, add the following to {{path|~/.Xmodmap}} in your home directory or {{path|/etc/X11/Xmodmap}} and run &amp;lt;tt&amp;gt;xmodmap&amp;lt;/tt&amp;gt;, ex: &amp;lt;tt&amp;gt;xmodmap ~/.Xmodmap&amp;lt;/tt&amp;gt;:&lt;br /&gt;
 keycode 77 = Num_Lock&lt;br /&gt;
&lt;br /&gt;
This configuration also enables the respective LED.&lt;br /&gt;
&lt;br /&gt;
Please note, pressing the {{key|Shift}}+{{key|ScrLk}} key combination, without first following the above configuration, will start an accessibility feature, which will allow the numeric keypad to maneuver the mouse pointer.  Starting this accessibility feature and subsequently running xmodmap, as described above, results in the accessibility feature and the numeric lock LED functioning simultaneously.  As such, the above configuration should be completed before the accessibility feature is started in order to produce numbers.&lt;br /&gt;
======T60 (and possibly others)======&lt;br /&gt;
It seems that on the T60, PrtSc, ScrLk and Pause all generate the correct keycodes, however Fn-PrtSc (labelled as SysRq) generates keycode 64 (Alt_L) followed by the expected 111 (Sys_Req) on down and the same thing in the opposite order on release. Fn-ScrLk (labelled as NmLk) does indeed toggle the Numlock, but only seems to register as an X event the first time it is engaged. The above solution does not appear to work. This is perhaps because the Numlock toggle is built into the firmware rather than controlled by the kernel. Finally, Fn-Pause (labelled as Break) generates keycode 37 (Control_L) followed by the expected keycode 110 (Break) on down and the same thing in reverse order on release.&lt;br /&gt;
=====NumPad (KeyPad) keys access by a key combination=====&lt;br /&gt;
The current state is that you have to switch NumLock '''on''' via {{key|Fn}}+{{key|ScrLk}} and then e.g. type {{key|u}} to get a {{key|KP_4}} (NumPad 4). To get back to normal keyboard, you have to type {{key|Fn}}+{{key|ScrLk}} again.&lt;br /&gt;
&lt;br /&gt;
Some people (including me) are missing on recent Thinkpads the option to have Fn as a modifier key to access the NumPad instead, i.e. and e.g. {{key|Fn}}+{{key|u}} gives you {{key|KP_4}}.&lt;br /&gt;
&lt;br /&gt;
There is currently no way to make this work in a simple way (pleeeease correct me if I am wrong!), though there is a work-around. Instead of using {{key|Fn}} for accessing the NumPad, {{key|CapsLock}} can get this function by being mapped as Mode_switch (the {{key|AltGr}} on international keyboards). The {{key|Fn}} can be remapped to be Caps_Lock - while at the same time retaining its function to access the special laptop functions (e.g. {{key|Fn}}+{{key|F4}} for sleep}}, by using .Xmodmap.&lt;br /&gt;
&lt;br /&gt;
So on my R60 running fvwm@Slackware 12.1 the .Xmodmap would look like this:&lt;br /&gt;
&lt;br /&gt;
 ! Make the forward and back buttons work&lt;br /&gt;
    keycode 233 = XF86Forward&lt;br /&gt;
    keycode 234 = XF86Back&lt;br /&gt;
 ! Make the WIN key to Super modifier&lt;br /&gt;
    keycode 115 = Super_L&lt;br /&gt;
 ! Set the Caps_Lock physical key to Mode_switch (like AltGr on intl. keyboards)&lt;br /&gt;
    keycode 66 = Mode_switch&lt;br /&gt;
 ! Set the Fn key to work as Caps_Lock now. The special key combos like Fn-F4 for &amp;quot;sleep&amp;quot; still work then&lt;br /&gt;
    keycode 227 = Caps_Lock&lt;br /&gt;
 ! Now we activate those new keys. Find some free mod slots (xmodmap) and put them there.&lt;br /&gt;
    clear mod4&lt;br /&gt;
    clear mod5&lt;br /&gt;
    add mod4 = Super_L&lt;br /&gt;
    add mod3 = Mode_switch&lt;br /&gt;
 ! It's time to add the keypad keys to the third position of the key definition (pure shift mode_switch shift+mode_switch)&lt;br /&gt;
    keycode 16 = 7 ampersand KP_7&lt;br /&gt;
    keycode 17 = 8 asterisk KP_8&lt;br /&gt;
    keycode 18 = 9 parenleft KP_9&lt;br /&gt;
      keycode 19 = 0 parenright KP_Divide&lt;br /&gt;
    keycode 30 = u U KP_4&lt;br /&gt;
    keycode 31 = i I KP_5&lt;br /&gt;
    keycode 32 = o O KP_6&lt;br /&gt;
      keycode 33 = p P KP_Multiply&lt;br /&gt;
    keycode 44 = j J KP_1&lt;br /&gt;
    keycode 45 = k K KP_2&lt;br /&gt;
    keycode 46 = l L KP_3&lt;br /&gt;
      keycode 47 = semicolon colon KP_Subtract&lt;br /&gt;
    keycode 58 = m M KP_0&lt;br /&gt;
 ! ... I have to use the coma key, too, on the keypad...so I set it to be F20 (which is not existing on normal keyboards and thus is free... check for side effects in programmes accepting F12+ keys!)&lt;br /&gt;
    keycode 59 = comma less F20 &lt;br /&gt;
    keycode 60 = period greater KP_Decimal    &lt;br /&gt;
      keycode  61 = slash question KP_Add&lt;br /&gt;
&lt;br /&gt;
{{WARN|Your keycodes might be different as well as your '''mod''#''''' settings.}}&lt;br /&gt;
Use {{cmduser|xmodmap}} and {{cmduser|xmodmap -pke}} to check your ModMap, and the tool {{cmduser|xev}} to obtain your exact key codes.&lt;br /&gt;
&lt;br /&gt;
===Mapping keys with setkeycodes===&lt;br /&gt;
You can use the setkeycodes command to remap certain keys. I.e. you can use {{cmdroot|setkeycodes 6e 109 6d 104 69 28 6b 1}} to map the Tablets Up and Down keys to the standard PageUp and PageDown keys and Tablet Escape and Enter to their respective keys.&lt;br /&gt;
&lt;br /&gt;
The following table shows the keycodes generated by the ThinkPad keys.&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
|+ keycodes&lt;br /&gt;
! key !! keycode&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet orientation|#494949}} || 0x6c&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Shortcut|#494949}} || 0x68&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Esc|#494949}} || 0x6b&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Enter|#494949}} || 0x69&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Up|#494949}} || 0x6d&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Down|#494949}} || 0x6e&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet (unlabeled)|#494949}} || 0x67&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===acpi_fakekey===&lt;br /&gt;
You can turn acpi events into user-level xevents by putting &amp;lt;tt&amp;gt;acpi_fakekey&amp;lt;/tt&amp;gt; commands into the acpi action scripts. There are several layers involved in using acpi keys in this way, so I'll go through the example of using the ThinkVantage button to open xmms.&lt;br /&gt;
&lt;br /&gt;
My ThinkVantage button generates an '''acpi event''' &amp;quot;ibm/hotkey HKEY 00000080 00001018&amp;quot;, so we have the event file &amp;lt;tt&amp;gt;/etc/acpi/events/ThinkVantage&amp;lt;/tt&amp;gt; for it which executes the script &amp;lt;tt&amp;gt;/etc/acpi/actions/fakekey-macro.sh&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
event=ibm/hotkey HKEY 00000080 00001018&lt;br /&gt;
action=/etc/acpi/actions/fakekey-macro.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In turn, the executable &amp;lt;tt&amp;gt;/etc/acpi/actions/fakekey-macro.sh&amp;lt;/tt&amp;gt; script calls acpi_fakekey with the '''key number''' defined in &amp;lt;tt&amp;gt;/usr/share/acpi-support/key-constants&amp;lt;/tt&amp;gt; as $KEY_MACRO which is 112 (you could just as well choose an other key number, just make sure that it doesn't belong to something else like the &amp;quot;j&amp;quot; key or something). &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
. /usr/share/acpi-support/key-constants&lt;br /&gt;
acpi_fakekey $KEY_MACRO &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
I have no idea how this actually corresponds to which xevent is generated, so I can find out out by running the program &amp;lt;tt&amp;gt;xev&amp;lt;/tt&amp;gt; and hitting the ThinkVantage button while the mouse is in the &amp;lt;tt&amp;gt;xev&amp;lt;/tt&amp;gt; window (remember to &amp;lt;tt&amp;gt;/etc/init.d/acpid restart&amp;lt;/tt&amp;gt; first if you just created the &amp;lt;tt&amp;gt;/etc/acpi/events/ThinkVantage&amp;lt;/tt&amp;gt; file). I get something popping up in the terminal where I ran xev that looks like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
KeyPress event, serial 30, synthetic NO, window 0x2800001,&lt;br /&gt;
    root 0x6a, subw 0x0, time 2000522842, (138,83), root:(781,500),&lt;br /&gt;
    state 0x0, keycode 239 (keysym 0x0, NoSymbol), same_screen YES,&lt;br /&gt;
    XLookupString gives 0 bytes: &lt;br /&gt;
    XmbLookupString gives 0 bytes: &lt;br /&gt;
    XFilterEvent returns: False&lt;br /&gt;
&lt;br /&gt;
KeyRelease event, serial 30, synthetic NO, window 0x2800001,&lt;br /&gt;
    root 0x6a, subw 0x0, time 2000522842, (138,83), root:(781,500),&lt;br /&gt;
    state 0x0, keycode 239 (keysym 0x0, NoSymbol), same_screen YES,&lt;br /&gt;
    XLookupString gives 0 bytes: &lt;br /&gt;
    XFilterEvent returns: False&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This tells me that the &amp;lt;tt&amp;gt;acpi_fakekey 112&amp;lt;/tt&amp;gt; as executed by hitting the ThinkVantage button generates KeyPress event followed by a KeyRelease event with '''keycode''' 239 and that this keycode has been assigned no corresponding '''keysym'''. Thus, I am free to assign the keycode to any keysym I want. You can find a list of available keysyms in &amp;lt;tt&amp;gt;/usr/share/X11/XKeysymDB&amp;lt;/tt&amp;gt;. Again try and pick one that is not likely to have already been taken by something, such as &amp;lt;tt&amp;gt;XF86LaunchA&amp;lt;/tt&amp;gt;. To assign this keysym to keycode 239, you can either edit ~/.Xmodmap on an individual user basis, or edit the systemwide &amp;lt;tt&amp;gt;/etc/X11/Xmodmap&amp;lt;/tt&amp;gt; file to contain the line&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
keycode 239 = XF86LaunchA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you choose to go with the former, you may need to run &amp;lt;tt&amp;gt;xmodmap ~/.Xmodmap&amp;lt;/tt&amp;gt; for every login session in order to read in your ~/.Xmodmap file if your window manager does not do it for you. Regardless of which option you choose, you can run &amp;lt;tt&amp;gt;xmodmap &amp;lt;file&amp;gt;&amp;lt;/tt&amp;gt; to read in the updated Xmodmap file without logging out and logging back in.&lt;br /&gt;
&lt;br /&gt;
You should now find that hitting the ThinkVantage button creates the following output from &amp;lt;tt&amp;gt;xev&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
KeyPress event, serial 55, synthetic NO, window 0x2800001,&lt;br /&gt;
    root 0x6a, subw 0x0, time 2001286078, (0,106), root:(643,523),&lt;br /&gt;
    state 0x0, keycode 239 (keysym 0x1008ff4a, XF86LaunchA), same_screen YES,&lt;br /&gt;
    XLookupString gives 0 bytes: &lt;br /&gt;
    XmbLookupString gives 0 bytes: &lt;br /&gt;
    XFilterEvent returns: False&lt;br /&gt;
&lt;br /&gt;
KeyRelease event, serial 55, synthetic NO, window 0x2800001,&lt;br /&gt;
    root 0x6a, subw 0x0, time 2001286078, (0,106), root:(643,523),&lt;br /&gt;
    state 0x0, keycode 239 (keysym 0x1008ff4a, XF86LaunchA), same_screen YES,&lt;br /&gt;
    XLookupString gives 0 bytes: &lt;br /&gt;
    XFilterEvent returns: False&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note the change of &amp;lt;tt&amp;gt;(keysym 0x0, NoSymbol)&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;(keysym 0x1008ff4a, XF86LaunchA)&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You're now ready to map &amp;lt;tt&amp;gt;XF86LaunchA&amp;lt;/tt&amp;gt; to executing xmms. This is highly dependent on what keygrabber you decide to use. For openbox, I edit my &amp;lt;tt&amp;gt;~/.config/openbox/rc.xml&amp;lt;/tt&amp;gt; file and add the following entry in the  &amp;lt;keyboard&amp;gt; section:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;lt;keybind key=&amp;quot;XF86LaunchA&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;action name=&amp;quot;Execute&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;startupnotify&amp;gt;&lt;br /&gt;
          &amp;lt;enabled&amp;gt;true&amp;lt;/enabled&amp;gt;&lt;br /&gt;
        &amp;lt;/startupnotify&amp;gt;&lt;br /&gt;
        &amp;lt;command&amp;gt;&lt;br /&gt;
	  xmms&lt;br /&gt;
	&amp;lt;/command&amp;gt;&lt;br /&gt;
      &amp;lt;/action&amp;gt;&lt;br /&gt;
    &amp;lt;/keybind&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
After, right clicking on the desktop and selecting the &amp;quot;Reconfigure&amp;quot; menu option, you should then have xmms pop up when you hit the ThinkVantage key.&lt;br /&gt;
&lt;br /&gt;
==Example Applications==&lt;br /&gt;
===Web Browsers===&lt;br /&gt;
====Firefox (&amp;lt;3.0)====&lt;br /&gt;
&lt;br /&gt;
There are various ways to assign actions to the browser keys. The easiest way is to install [http://mozilla.dorando.at/keyconfig.xpi keyconfig.xpi] from http://mozilla.dorando.at, which adds a menu entry Tools-&amp;gt;Keyconfig. Then you can assign any action you want to the F19/F20 keys (you still need to create {{path|~/.Xmodmap}} as explained above).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The remaining discussion gives you various more complicated ways to achieve the same thing. &lt;br /&gt;
To have firefox make use of the browser keys you need to modify one of its files{{footnote|4}}.&lt;br /&gt;
To do this you will first need to extract it from the {{path|browser.jar}} archive. Do...&lt;br /&gt;
&lt;br /&gt;
Step 1:  Edit .Xmodmap and add entries for F19 and F20 as explained above.&lt;br /&gt;
&lt;br /&gt;
Step 2:&lt;br /&gt;
&lt;br /&gt;
Note: &amp;lt;firefox-directory&amp;gt; is probably /usr/lib/firefox. Use your version so, if you have 3.0.1 or 3.0.2 use /usr/lib/firefox-3.0.1&lt;br /&gt;
&lt;br /&gt;
:{{cmdroot|cd &amp;lt;firefox-directory&amp;gt;/chrome}}&amp;lt;br /&amp;gt;&lt;br /&gt;
:{{cmdroot|unzip browser.jar}}&lt;br /&gt;
&lt;br /&gt;
The file of interest is {{path|content/browser/browser.xul}}. Edit it {and don't forget to make a backup copy first}...&lt;br /&gt;
:{{cmdroot|vi content/browser/browser.xul}}&lt;br /&gt;
&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;goBackKb&amp;quot; keycode=&amp;quot;VK_F19&amp;quot; command=&amp;quot;Browser:Back&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;key id=&amp;quot;goForwardKb&amp;quot; keycode=&amp;quot;VK_F20&amp;quot; command=&amp;quot;Browser:Forward&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Command you need for Next Tab &lt;br /&gt;
 &amp;lt;key id=&amp;quot;goBackTabKb&amp;quot; keycode=&amp;quot;VK_F19&amp;quot; oncommand=&amp;quot;gBrowser.mTabContainer.advanceSelectedTab(-1)&amp;quot; /&amp;gt;&lt;br /&gt;
For the Previous Tab &lt;br /&gt;
 &amp;lt;key id=&amp;quot;goForwardTabKb&amp;quot; keycode=&amp;quot;VK_F20&amp;quot; oncommand=&amp;quot;gBrowser.mTabContainer.advanceSelectedTab(1)&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now save the file and repackage the {{path|browser.jar}} archive...&lt;br /&gt;
:{{cmdroot|zip -rD0 browser.jar content/browser/}}&lt;br /&gt;
&lt;br /&gt;
That's it.&lt;br /&gt;
&lt;br /&gt;
Step 3:  Restart Firefox.&lt;br /&gt;
&lt;br /&gt;
{{HINT|Outdated: Another interesting Page on Firefox is http://dqd.com/~mayoff/notes/thinkpad/dqdnavkeys/ It uses different key mappings (F19 resp. F20) but a ready [http://dqd.com/~mayoff/notes/thinkpad/dqdnavkeys/dqdnavkeys-1.2.xpi .xpi] is provided which is pretty comfortable. However, this xpi file does not install on Firefox 1.5. or later.}}&lt;br /&gt;
&lt;br /&gt;
{{HINT| You can also use the [http://extensionroom.mozdev.org/more-info/keyconfig keyconfig] extension to configure custom keys.  This extension works with Firefox 1.5 and also with Firefox 2.0. The Command you need for Next Tab is gBrowser.mTabContainer.advanceSelectedTab(1,true); For Previous Tab its gBrowser.mTabContainer.advanceSelectedTab(-1,true); You can alternatively install the [http://www.pqrs.org/~tekezo/firefox/extensions/functions_for_keyconfig/index.html functions for keyconfig] and set the variable f4kc_NextTab to F20 and f4kc_PrevTab to F19.}}.&lt;br /&gt;
&lt;br /&gt;
====Firefox 3.0====&lt;br /&gt;
Thankfully the people at Mozilla decided to include the expected functionality for the XF86Back and XF86Forward keysyms in the new release so all you need to do is&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;# printf 'keycode 234 = XF86Back\nkeycode 233 = XF86Forward' &amp;gt;&amp;gt; /etc/X11/Xmodmap&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
And to make this take effect immediately (i.e., without having to log out and log in again), as a regular user run:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;{{cmduser|Xmodmap /etc/X11/Xmodmap}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Hardy Heron, the xmodmap command is all lowercase. Also, the /etc/X11/Xmodmap file is not being read on boot. I've added the command to my .bashrc to have it called on startup.&lt;br /&gt;
&lt;br /&gt;
====Konqueror====&lt;br /&gt;
KDE allows you set key mappings for KDE applications (Go to KMenu &amp;gt; System &amp;gt; Control Center &amp;gt; Regional &amp;amp; Accessibility &amp;gt; Keyboard Shortcuts). By default (at least in KDE 3.5), XF86Back and XF86Forward are set as alternatives to Alt-Left and Alt-Right, and are mapped to KDE Back and Forward navigation actions.  &lt;br /&gt;
&lt;br /&gt;
If you use Konqueror as your only browser, you only need to set up {{path|~/.Xmodmap}} as described [[#xmodmap configuration|above]] to assign ThinkPad back/forward keys to the symbols XF86Back/XF86Forward. This also make these keys work for other KDE applications such as Quanta Plus, KPackage and so on (not all KDE applications honor this setting, e.g. KDE help system doesn't).&lt;br /&gt;
&lt;br /&gt;
If you want to use Firefox, however, the above settings do not work. You will have to map ThinkPad back/forward keys to F19/F20 as described [[#Firefox|above]], and change KDE navigation key settings to use F19/F20 instead of the default.&lt;br /&gt;
&lt;br /&gt;
====Opera====&lt;br /&gt;
However this isn't a simple configration file, you can set your browser manually.&amp;lt;br /&amp;gt;&lt;br /&gt;
Go to &amp;lt;i&amp;gt;Tool &amp;gt; Settings &amp;gt; Mouse and keyboard &amp;gt; Keyboard settings &amp;gt; Edit &amp;gt; Browser Window&amp;lt;/i&amp;gt;. There add F19 - Back and F20 - Forward. Now you can surf using your TP keys ;-)&lt;br /&gt;
&lt;br /&gt;
====Epiphany====&lt;br /&gt;
To get the keys work in epiphany, you could use the extension from [http://crashman.homelinux.org/~andre/public/epiphany%20extensions/thinkpad%20browserkeys/ here]&lt;br /&gt;
You just need to edit your Xmodmap like described for Firefox &amp;lt; 3.0 (bind the keys on F19 and F20)&lt;br /&gt;
&lt;br /&gt;
===Open an application===&lt;br /&gt;
&lt;br /&gt;
To configure the ThinkVantage button to open a terminal window in Gnome:&lt;br /&gt;
&lt;br /&gt;
Step 1:&lt;br /&gt;
Use xev to find the keycode generated by the button on your machine.  In my case is is 159.&lt;br /&gt;
&lt;br /&gt;
Step 2:&lt;br /&gt;
Create an entry in .Xmodmap like so&lt;br /&gt;
&lt;br /&gt;
keycode 159 = XF86LaunchA&lt;br /&gt;
&lt;br /&gt;
replacing 159 by the keycode found in step 1.  Load the map using&lt;br /&gt;
&lt;br /&gt;
:{{cmd|xmodmap ~/.Xmodmap}}&lt;br /&gt;
&lt;br /&gt;
Step 3:&lt;br /&gt;
Configure the required function (e.g. open terminal window) in System-&amp;gt;Preferences-&amp;gt;Keyboard shortcuts&lt;br /&gt;
&lt;br /&gt;
===Window Managers===&lt;br /&gt;
====fvwm====&lt;br /&gt;
To get the {{ibmkey|Forward|#494949}} and {{ibmkey|Backward|#494949}} keys to cycle through pages in the virtual desktop, add this to your {{path|~/.fvwmrc}}:&lt;br /&gt;
 Key    XF86Back     A      A   Scroll     -100000   0&lt;br /&gt;
 Key    XF86Forward  A      A   Scroll     +100000   0&lt;br /&gt;
If you use multiple virtual desktops, you could instead use the keys to flip between them by using GotoDesk.&lt;br /&gt;
&lt;br /&gt;
====fluxbox====&lt;br /&gt;
To get the keys to cycle through pages in the virtual desktop, add this to your {{path|~/.fluxbox/keys}}:&lt;br /&gt;
 None F19 :PrevWorkspace&lt;br /&gt;
 None F20 :NextWorkspace&lt;br /&gt;
&lt;br /&gt;
====pekwm configuration====&lt;br /&gt;
You can make the two browser keys switch workspaces in pekwm, by adding the following two lines to the {{path|~/.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;br /&gt;
&lt;br /&gt;
====pwm====&lt;br /&gt;
Another example how to use these two keys to switch between pwm tabs. These two lines should be added to {{path|~/.pwm/keys-default.conf}} or {{path|/etc/pwm/keys-default.conf}}:&lt;br /&gt;
 kbind &amp;quot;Back&amp;quot;, &amp;quot;switch_rot&amp;quot;, -1&lt;br /&gt;
 kbind &amp;quot;Forward&amp;quot;, &amp;quot;switch_rot&amp;quot;, 1&lt;br /&gt;
&lt;br /&gt;
====IceWM====&lt;br /&gt;
To make IceWM cycle workspaces using the {{ibmkey|Forward|#494949}} and {{ibmkey|Backward|#494949}} keys, change these two options in {{path|~/.icewm/preferences}} (Provided you assigned keysyms F19 and F20 with xmodmap):&lt;br /&gt;
 # &amp;quot;Previous workspace&amp;quot; shortcut&lt;br /&gt;
 KeySysWorkspacePrev=&amp;quot;F19&amp;quot;&lt;br /&gt;
 # &amp;quot;Next workspace&amp;quot; shortcut&lt;br /&gt;
 KeySysWorkspaceNext=&amp;quot;F20&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Gnome/metacity ====&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.ubuntu.com/Keybindings Ubuntu guide].&lt;br /&gt;
&lt;br /&gt;
===Other Uses===&lt;br /&gt;
====Console tools configuraton====&lt;br /&gt;
To make the {{ibmkey|Forward|#494949}} and {{ibmkey|Backward|#494949}} keys useful in console, add this to your keymap ({{path|/etc/console/boottime.kmap.gz}} in {{Debian}}):&lt;br /&gt;
 keycode 158 = Decr_Console&lt;br /&gt;
 keycode 159 = Incr_Console&lt;br /&gt;
&lt;br /&gt;
Alternatively you can load this script (perhaps on system startup) to enable Backward/Forward button console (VT) switch:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 echo keycode 158 = Decr_Console | loadkeys&lt;br /&gt;
 echo keycode 159 = Incr_Console | loadkeys&lt;br /&gt;
&lt;br /&gt;
It should work with any distro.&lt;br /&gt;
&lt;br /&gt;
====Cycling through tabs====&lt;br /&gt;
In Gnome and Xfce4, Ctrl-PageUp/Ctrl-PageDown move to the previous/following open tab in all applications that have tabbed user interfaces (terminal emulator, web browser, ...). To make use of the {{ibmkey|Forward|#494949}} and {{ibmkey|Backward|#494949}} keys for this task, there're two possibilities.&lt;br /&gt;
&lt;br /&gt;
For both ways, you should map the keycodes 233 and 234 to XF86Back and XF86Forward as described in [[#xmodmap_configuration|xmodmap configuration]].&lt;br /&gt;
&lt;br /&gt;
=====Using xautomation=====&lt;br /&gt;
xautomation can be found [http://hoopajoo.net/projects/xautomation.html here].&lt;br /&gt;
&lt;br /&gt;
Create two files with permissions 755:&lt;br /&gt;
&lt;br /&gt;
{{path|/usr/local/bin/tp_back}}:&lt;br /&gt;
&amp;lt;bash&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
/usr/bin/xte 'keydown Control_L' 'keydown Page_Up' 'keyup Page_Up' 'keyup Control_L'&lt;br /&gt;
&amp;lt;/bash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{path|/usr/local/bin/tp_forward}}:&lt;br /&gt;
&amp;lt;bash&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
/usr/bin/xte 'keydown Control_L' 'keydown Page_Down' 'keyup Page_Down' 'keyup Control_L'&lt;br /&gt;
&amp;lt;/bash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use your desktop's keyboard shortcut editor to assign XF86Back as a shortcut for tp_back and XF86Forward as a shortcut for tp_forward.&lt;br /&gt;
&lt;br /&gt;
This should work in all distros and with all window managers (you might have to use other key combinations than Ctrl-PageUp and Ctrl-PageDown).&lt;br /&gt;
&lt;br /&gt;
=====Redirecting XF86Back/XF86Forward=====&lt;br /&gt;
Create {{path|/etc/X11/xkb/compat/thinkpad}}:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// $XFree86$&lt;br /&gt;
//  XFree86 special keysyms&lt;br /&gt;
default partial xkb_compatibility &amp;quot;basic&amp;quot;  {&lt;br /&gt;
    interpret.repeat= True;&lt;br /&gt;
&lt;br /&gt;
    interpret  XF86Back {&lt;br /&gt;
        action = Redirect(Key=&amp;lt;PGUP&amp;gt;, modifiers=Control);&lt;br /&gt;
    };&lt;br /&gt;
    interpret  XF86Forward {&lt;br /&gt;
        action = Redirect(Key=&amp;lt;PGDN&amp;gt;, modifiers=Control);&lt;br /&gt;
    };&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit {{path|/etc/X11/xkb/compat/complete}} and add &amp;lt;tt&amp;gt;'''augment &amp;quot;thinkpad&amp;quot;'''&amp;lt;/tt&amp;gt; so that it looks similar to the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// $XKeyboardConfig: xkbdesc/compat/complete,v 1.3 2005/10/17 00:42:11 svu Exp $&lt;br /&gt;
// $Xorg: complete,v 1.3 2000/08/17 19:54:34 cpqbld Exp $&lt;br /&gt;
default xkb_compatibility &amp;quot;complete&amp;quot;  {&lt;br /&gt;
    include &amp;quot;basic&amp;quot;&lt;br /&gt;
    augment &amp;quot;iso9995&amp;quot;&lt;br /&gt;
    augment &amp;quot;mousekeys&amp;quot;&lt;br /&gt;
    augment &amp;quot;accessx(full)&amp;quot;&lt;br /&gt;
    augment &amp;quot;misc&amp;quot;&lt;br /&gt;
    augment &amp;quot;xfree86&amp;quot;&lt;br /&gt;
    augment &amp;quot;level5&amp;quot;&lt;br /&gt;
    augment &amp;quot;thinkpad&amp;quot;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==External Sources==&lt;br /&gt;
*[http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-51537 IBMs page on configuring the ThinkPad buttons (ThinkPad, Access IBM, Mail, Search, and Home buttons) under Linux]&lt;br /&gt;
*[http://dqd.com/~mayoff/notes/thinkpad/dqdnavkeys/ Rob Mayoffs page on using IBM Keyboard Navigation Keys in Linux Mozilla and Firefox]&lt;br /&gt;
*[http://snarfed.org/space/thinkpad+keys+in+firefox Ryan Barretts blog article about using the browser keys in Firefox]&lt;br /&gt;
*[http://chaotika.org/~bluesceada/?page=soft&amp;amp;sub=thinkpad#acpibutn DennisG's help to get the ibm-acpi buttons do useful things] on a {{Z61e}} and possibly {{Z61m}}, {{Z61t}} and {{Z61p}}&lt;br /&gt;
&lt;br /&gt;
{{footnotes|&lt;br /&gt;
#Note that the associated functionality for Fn-F* key combinations is not consistent amongst all ThinkPads. We are maintaining [[Default meanings of special keys|a table of associated meanings]].&lt;br /&gt;
#if there are more than one tool listed, one is sufficient&lt;br /&gt;
#'full' means you can completely reassign any action to be triggered by the key, 'additional actions' means you can trigger actions in addition to the standard function of the key, which can not be changed.&lt;br /&gt;
#Thanks go to Ryan Barrett for writing the [http://snarfed.org/space/thinkpad+keys+in+firefox little howto] on [http://snarfed.org/space/start his blog].&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Low</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_get_special_keys_to_work&amp;diff=40197</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=40197"/>
		<updated>2008-12-10T20:46:41Z</updated>

		<summary type="html">&lt;p&gt;Low: /* xmodmap configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
The following table gives an overview over the special keys found on ThinkPads and what is needed to make them work.&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
! key !! standard function{{footnote|1}} !! tools supporting key{{footnote|2}} !! configurability{{footnote|3}} !! remarks&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}} || - || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full || on release without completed key combination&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F1}} || - || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F2}} || lock screen || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full || in models from T/X/Z 60 onwards&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F3}} || blank screen || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F4}} || suspend to ram || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full || may generate ACPI event when not enabled in the ibm-acpi hotkey mask&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F5}} || switch bluetooth || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full || in models starting from 2002&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F6}} || - || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F7}} || toggle display || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]], [[#tpb configuration|tpb]] || additional actions || [[Sample Fn-F7 script]]&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F8}} || toggle trackpoint/touchpad || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]], [[#tpb configuration|tpb]] || additional actions ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F9}} || eject from dock || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F10}} || - || [[#ibm-acpi events|ibm-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F11}} || - || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F12}} || hibernate || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]] || full || may generate ACPI event when not enabled in the ibm-acpi hotkey mask&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Home}} / {{key|Fn}}{{key|Pos1}} || brightness up || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]], [[#tpb configuration|tpb]], [[KMilo]] || additional actions ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|End}} || brightness down || [[thinkpad-acpi]], [[#tpb configuration|tpb]], [[KMilo]] || additional actions ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|PageUp}} || toggle thinklight || [[thinkpad-acpi]], [[#tpb configuration|tpb]], [[KMilo]] || additional actions ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Space}} || toggle zoom || [[thinkpad-acpi]], [[#tpb configuration|tpb]], [[KMilo]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Ins}} || - || [[#ibm-acpi events|ibm-acpi]], [[thinkpad-acpi]]|| full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Del}} || - || [[#ibm-acpi events|ibm-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Backspace}} || - || [[#ibm-acpi events|ibm-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|NumLock}} || - || [[#xmodmap configuration|xmodmap]] || make working ||&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Windows}} || - || [[#xmodmap configuration|xmodmap]] || remapping ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Access IBM|#495988}} or {{ibmkey|ThinkPad|#494949}} or {{ibmkey|ThinkVantage|#495988}} || help application || [[thinkpad-acpi]],[[#tpb configuration|tpb]], [[KMilo]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Home|#494949}} || open web browser || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]], [[KMilo]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Search|#494949}} || open search application || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]], [[KMilo]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Mail|#494949}} || open mail application || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]], [[KMilo]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Favorites|#494949}} || open favorites || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Reload|#494949}} || reload web page || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Abort|#494949}} || abort loading page || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full || only {{A30}}, {{A30p}}, {{A31}}, {{A31p}} and ext. keyboards&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Backward|#494949}} || previous page || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full ||  ext. keyboards and ThinkPads starting from 2002&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Forward|#494949}} || next page || [[#xmodmap configuration|xmodmap]], [[#tpb configuration|tpb]] || full || ext. keyboards and ThinkPads starting from 2002&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume up|#494949}} || volume up || [[thinkpad-acpi]], [[#tpb configuration|tpb]], [[KMilo]] || additional actions ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume down|#494949}} || volume down || [[thinkpad-acpi]], [[#tpb configuration|tpb]], [[KMilo]] || additional actions ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume mute|#494949}} || mute volume || [[thinkpad-acpi]], [[#tpb configuration|tpb]], [[KMilo]] || additional actions ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Play/Pause|#494949}} || start/pause playback  || [[#xmodmap configuration|xmodmap]] || full || {{X60s}} (Fn+Arrow Down)&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Stop|#494949}} || stop playback || [[#xmodmap configuration|xmodmap]] || full || {{X60s}} (Fn+Arrow Up)&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Next|#494949}} || play next || [[#xmodmap configuration|xmodmap]] || full || {{X60s}} (Fn+Arrow Right)&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Previous|#494949}} || play previous || [[#xmodmap configuration|xmodmap]] || full || {{X60s}} (Fn+Arrow Left)&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Power|#494949}} || shutdown || [[#ibm-acpi events|ibm-acpi]],[[thinkpad-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 events|ibm-acpi]], [[thinkpad-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| Ultrabay lid || announce ultrabay change || [[#ibm-acpi events|ibm-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| Dock eject || eject from dock || [[#ibm-acpi events|ibm-acpi]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet power|#494949}} || shutdown || [[#ibm-acpi events|ibm-acpi]] || full || triggered on pressing 3secs, but notebook goes off on 5sec press&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet orientation|#494949}} || rotates screen || [[#Mapping keys with setkeycodes|setkeycodes]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet shortcut|#494949}} || shortcut menu || [[#Mapping keys with setkeycodes|setkeycodes]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Esc|#494949}} || esc key || [[#Mapping keys with setkeycodes|setkeycodes]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Enter|#494949}} || enter key || [[#mapping keys with setkeycodes|setkeycodes]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Up|#494949}} || up key || [[#Mapping keys with setkeycodes|setkeycodes]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Down|#494949}} || down key || [[#Mapping keys with setkeycodes|setkeycodes]] || full ||&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet (unlabeled)|#494949}} || down key || [[#Mapping keys with setkeycodes|setkeycodes]] || full ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For completeness, note that the WiFi enable/disable switch is located (on the X61 and other models that have it) just under the front edge of the base of the machine.  You should see a small horizontal slider switch.  Enable by sliding it rightwards, disable by sliding it leftwards.&lt;br /&gt;
&lt;br /&gt;
==Triggering key events==&lt;br /&gt;
===ibm-acpi/thinkpad-acpi events===&lt;br /&gt;
Some of the following events require a {{cmdroot|echo enable,0xffff &amp;gt;/proc/acpi/ibm/hotkey}} (when using ibm-acpi) in order to make acpi able to get information on them. Since the newer thinkpad-acpi has a larger number of bits that can be set in the mask, you might try {{cmdroot|echo enable,0xffffffff &amp;gt;/proc/acpi/ibm/hotkey}} if you are using this driver. These events can be used to [[How to configure acpid|configure acpid]].&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
|+ events triggered by [[ibm-acpi]] for {{path|/etc/acpi/events}} files. May vary on different models.&lt;br /&gt;
! key !! event&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F1}} || ibm/hotkey HKEY 00000080 00001001&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F2}} || ibm/hotkey HKEY 00000080 00001002&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F3}} || ibm/hotkey HKEY 00000080 00001003&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F4}} || ibm/hotkey HKEY 00000080 00001004&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F5}} || ibm/hotkey HKEY 00000080 00001005&lt;br /&gt;
|- &lt;br /&gt;
| {{key|Fn}}{{key|F6}} || ibm/hotkey HKEY 00000080 00001006&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F7}} || ibm/hotkey HKEY 00000080 00001007&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F8}} || ibm/hotkey HKEY 00000080 00001008&lt;br /&gt;
|- &lt;br /&gt;
| {{key|Fn}}{{key|F9}} || ibm/hotkey HKEY 00000080 00001009 &lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F10}} || ibm/hotkey HKEY 00000080 0000100a&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F11}} || ibm/hotkey HKEY 00000080 0000100b &lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F12}} || ibm/hotkey HKEY 00000080 0000100c&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Backspace}} || ibm/hotkey HKEY 00000080 0000100d&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Ins}} || ibm/hotkey HKEY 00000080 0000100e &lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Del}} || ibm/hotkey HKEY 00000080 0000100f &lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Home}}/{{key|Fn}}{{key|Pos1}} || ibm/hotkey HKEY 00000080 00001010&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|End}} || ibm/hotkey HKEY 00000080 00001011&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|PgUp}} || ibm/hotkey HKEY 00000080 00001012&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Space}} || ibm/hotkey HKEY 00000080 00001014&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume up|#494949}}|| ibm/hotkey HKEY 00000080 00001015&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume down|#494949}} || ibm/hotkey HKEY 00000080 00001016&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume mute|#494949}} || ibm/hotkey HKEY 00000080 00001017&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Access IBM|#495988}} or {{ibmkey|ThinkPad|#494949}} or {{ibmkey|ThinkVantage|#495988}} || ibm/hotkey HKEY 00000080 00001018&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;
| Dock eject || ibm/dock GDCK 00000003 00000001 &lt;br /&gt;
|-&lt;br /&gt;
| Wireless switch || ibm/hotkey HKEY 00000080 00007000 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
By disassembling and editing the DSDT, more events can be added.  HKEY events are triggered by calls to the MKHQ function, e.g. &amp;lt;tt&amp;gt;\_SB.PCI0.LPC.EC.HKEY.MHKQ(0Ã—1007)&amp;lt;/tt&amp;gt; will trigger &amp;quot;ibm/hotkey HKEY 00000080 00001007&amp;quot;.  Most of these can be found in &amp;lt;tt&amp;gt;_Qxx&amp;lt;/tt&amp;gt; methods within the DSDT, which are executed on embedded controller events, e.g. _Q10 is triggered by pressing Fn-F7.  You can add a call to MKHQ into an existing &amp;lt;tt&amp;gt;_Qxx&amp;lt;/tt&amp;gt; method to get it recognized by ibm-acpi as well as creating new &amp;lt;tt&amp;gt;_Qxx&amp;lt;/tt&amp;gt; methods, which if you're lucky will correspond to an EC event that IBM never used (e.g. A 770 will send Fn-Home/End/PgUp/PgDn to ibm-acpi if hacked in this fashion). For example, [http://www.wormnet.eu/ibm-g40/morebuttons.dsl this is a modified block of DSDT for a G40].&lt;br /&gt;
&lt;br /&gt;
=== ACPI events from the &amp;lt;tt&amp;gt;button&amp;lt;/tt&amp;gt; module===&lt;br /&gt;
&lt;br /&gt;
A few keys can generate ACPI events that result from the &amp;lt;tt&amp;gt;button&amp;lt;/tt&amp;gt; kernel module, as long as they are masked off in the &amp;lt;tt&amp;gt;ibm-acpi&amp;lt;/tt&amp;gt;/&amp;lt;tt&amp;gt;thinkpad-acpi&amp;lt;/tt&amp;gt; hotkey's mask or the hotkey function of the latter module is disabled.&lt;br /&gt;
&lt;br /&gt;
If you want the ThinkPad's BIOS and ACPI methods to know about these keys being pressed, you probably want to leave them masked out from ibm-acpi, and use their non-HKEY events listed below, instead.&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
|+ events triggered by ACPI when hotkey is masked out or disabled. &lt;br /&gt;
! key !! event !! T60 event&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Power|#494949}} || button/power PWRF 00000080 xxxxxxxx || button/power PWRF 00000080 00000001&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F4}} || button/sleep SLPB 00000080 00000001 || button/sleep SLPB 00000080 00000001&lt;br /&gt;
|-&lt;br /&gt;
| Display lid || button/lid LID 00000080 xxxxxxxx || button/lid LID 00000080 00000001&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===tpb configuration===&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
|+ configuration keywords for [[tpb]] (to put in {{path|/etc/tpbrc}})&lt;br /&gt;
! key !! config keyword&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Access IBM|#495988}} or {{ibmkey|ThinkPad|#494949}} || THINKPAD&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Home|#494949}} || HOME&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Search|#494949}} || SEARCH&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Mail|#494949}} || MAIL&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Favorites|#494949}} || FAVORITES&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Reload|#494949}} || RELOAD&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Abort|#494949}} || ABORT&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Backward|#494949}} || BACKWARD&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Forward|#494949}} || FORWARD&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}} || FN&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Space}} || CALLBACK (zoom on/off)&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|PageUp}} || CALLBACK (thinklight on/off)&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F7}} || CALLBACK (display lcd/crt/both)&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|F8}} || CALLBACK (expand on/off)&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|Home}} / {{key|Fn}}{{key|Pos1}} || CALLBACK (brightness &amp;lt;percent&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}}{{key|End}} || CALLBACK (brightness &amp;lt;percent&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume up|#494949}} || CALLBACK (volume &amp;lt;percent&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume down|#494949}} || CALLBACK (volume &amp;lt;percent&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Volume mute|#494949}} || 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 &amp;lt;tt&amp;gt;XEVENTS OFF&amp;lt;/tt&amp;gt; in your {{path|/etc/tpbrc}}. &lt;br /&gt;
You can use an appropriate executable to [[How to inject fake keystrokes|inject fake keystrokes]].&lt;br /&gt;
&lt;br /&gt;
For Debian users, tpb is started from {{path|/etc/X11/Xsession.d/90tpb}}.&lt;br /&gt;
&lt;br /&gt;
'''Sound Button configuration'''&lt;br /&gt;
&lt;br /&gt;
''Note: Tested on T60p with Ubuntu 6.06 LTS''&lt;br /&gt;
&lt;br /&gt;
Most Thinkpads have a hardware sound mixer, thus the volumes buttons should work without configuration. However, this change is not reflected in the software mixer. tpb has a switch to enable software mixer support via OSS. The manual recommends this only for devices without a hardware mixer, but it also works for other hadware mixer enabled devices, even with the ALSA system. Just put MIXER ON in your {{path|/etc/tpbrc}} file and you can see the effect immediately in any ALSA mixer (e.g. kmix). For this to work you need write permissions to {{path|/dev/nvram}}.&lt;br /&gt;
&lt;br /&gt;
''Note: Tested on X21 with Ubuntu 6.06 LTS''&lt;br /&gt;
&lt;br /&gt;
On the ThinkPad X21 (and maybe some other older models) ACPI causes problems with tpb.  On an X21 using acpi the volume buttons would work occasionally, and the OSD for tpb functions would rarely work.  If a volume buttons was pressed too often, sometimes the computer would enter a low power (unplugged state) and would require a reboot.  The solution is to use APM instead of ACPI.  Instructions can be found in [[How_to_make_APM_work]].&lt;br /&gt;
&lt;br /&gt;
===KMilo configuration===&lt;br /&gt;
The programs to be executed by [[KMilo]] are configured via the KDE Control Center (&amp;lt;tt&amp;gt;kcontrol&amp;lt;/tt&amp;gt;), under &amp;lt;tt&amp;gt;System Administration --&amp;gt; IBM Thinkpad Laptop&amp;lt;/tt&amp;gt;. Note that you can use appropriate commands to [[How to inject fake keystrokes|inject fake keystrokes]].&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;
To discover the keycode that a certain keypress produces, use the tool {{cmduser|xev}} &lt;br /&gt;
&lt;br /&gt;
Usually you should write your keycode-keysym associations into the file {{path|~/.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 {{path|~/.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;
Load the assocation using the command&lt;br /&gt;
&lt;br /&gt;
{{cmduser|xmodmap ~/.Xmodmap}} &lt;br /&gt;
&lt;br /&gt;
(some configurations do this automatically upon X startup). &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;
{| {{prettytable}}&lt;br /&gt;
|+ keycodes and recommended keysyms&lt;br /&gt;
! key !! keycode !! keysym&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Access IBM|#495988}} or {{ibmkey|ThinkPad|#494949}} || 159 || XF86LaunchA&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Backward|#494949}} || 234 || XF86Back or F19&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Forward|#494949}} || 233 || XF86Forward or F20&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Play/Pause|#494949}} || 162 || XF86AudioPlay&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Stop|#494949}} || 164 || XF86AudioStop&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Next|#494949}} || 153 || XF86AudioNext&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Previous|#494949}} || 144 || XF86AudioPrev&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| {{ibmkey|Home|#494949}} || 178 || XF86HomePage&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Search|#494949}} || 229 || XF86Search&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Mail|#494949}} || 236 || XF86Mail&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Favorites|#494949}} || 230 || XF86AddFavorite or XF86Favorites&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Reload|#494949}} || 231 || XF86Reload&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Abort|#494949}} || 232 || XF86Stop&lt;br /&gt;
|-&lt;br /&gt;
| {{key|Fn}} || 227 || F35&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: You can also use xkeycaps (an X tool to display and edit the X keyboard mapping) to generate proper .Xmodmap.&lt;br /&gt;
&lt;br /&gt;
Note: if you are running [[tpb]] you might need to add the line &amp;lt;tt&amp;gt;XEVENTS=off&amp;lt;/tt&amp;gt; into your tpbrc to stop it from grabbing the key events and allow them to get through to X instead. See [[http://www.thinkwiki.org/wiki/Tpb]] for more detailed instruction on how to use tpb and xmodmap.&lt;br /&gt;
&lt;br /&gt;
Note: XF86Forward and XF86Back do not work correctly in Firefox. You may want to map them to F19 and F20 instead if you use Firefox.&lt;br /&gt;
&lt;br /&gt;
Note: The &amp;quot;XF86AudioPlay&amp;quot; etc. just works with a few programs. To make it work with more multimedia programs you have map the key to use something like [http://www.kde-apps.org/content/show.php/ReMoot?content=63140 ReMoot]. ReMoot is a command line wrapper that control 18 of the most common multimedia applications. &lt;br /&gt;
&lt;br /&gt;
=====Enabling the Windows and Menu Keys=====&lt;br /&gt;
On some systems the Windows and Menu keys may not be recognized.  You can enable then by&lt;br /&gt;
making the following changes:&lt;br /&gt;
&lt;br /&gt;
        keycode 115 = F13&lt;br /&gt;
        keycode 227 = F35&lt;br /&gt;
&lt;br /&gt;
F13 and F35 are used for the Windows and and Menu keys respectively.  Labelling keycpode 227 as &amp;quot;Menu&amp;quot; may conflict with the right-mouse-click event.&lt;br /&gt;
&lt;br /&gt;
=====Using Caps Lock as Super L (Windows key)=====&lt;br /&gt;
You can easily use Caps Lock as Win key by adding the following in your ~/.Xmodmap:&lt;br /&gt;
        ! No Caps Lock&lt;br /&gt;
        clear lock&lt;br /&gt;
        ! Caps Lock as Win key&lt;br /&gt;
        add mod4 = Caps_Lock&lt;br /&gt;
=====NumLock=====&lt;br /&gt;
On the ThinkPad {{600}}, {{T20}}, {{T21}}, {{T22}}, {{T30}}, {{X20}}, {{X21}},  {{X31}}, {{X40}}, {{T42p}}, {{T43}}, {{R51}}, {{R52}} and possibly other models, X does not recognize the keycode for {{key|NumLk}} = {{key|Shift}}+{{key|ScrLk}}. To fix this, add the following to {{path|~/.Xmodmap}} in your home directory or {{path|/etc/X11/Xmodmap}} and run &amp;lt;tt&amp;gt;xmodmap&amp;lt;/tt&amp;gt;, ex: &amp;lt;tt&amp;gt;xmodmap ~/.Xmodmap&amp;lt;/tt&amp;gt;:&lt;br /&gt;
 keycode 77 = Num_Lock&lt;br /&gt;
&lt;br /&gt;
This configuration also enables the respective LED.&lt;br /&gt;
&lt;br /&gt;
Please note, pressing the {{key|Shift}}+{{key|ScrLk}} key combination, without first following the above configuration, will start an accessibility feature, which will allow the numeric keypad to maneuver the mouse pointer.  Starting this accessibility feature and subsequently running xmodmap, as described above, results in the accessibility feature and the numeric lock LED functioning simultaneously.  As such, the above configuration should be completed before the accessibility feature is started in order to produce numbers.&lt;br /&gt;
======T60 (and possibly others)======&lt;br /&gt;
It seems that on the T60, PrtSc, ScrLk and Pause all generate the correct keycodes, however Fn-PrtSc (labelled as SysRq) generates keycode 64 (Alt_L) followed by the expected 111 (Sys_Req) on down and the same thing in the opposite order on release. Fn-ScrLk (labelled as NmLk) does indeed toggle the Numlock, but only seems to register as an X event the first time it is engaged. The above solution does not appear to work. This is perhaps because the Numlock toggle is built into the firmware rather than controlled by the kernel. Finally, Fn-Pause (labelled as Break) generates keycode 37 (Control_L) followed by the expected keycode 110 (Break) on down and the same thing in reverse order on release.&lt;br /&gt;
=====NumPad (KeyPad) keys access by a key combination=====&lt;br /&gt;
The current state is that you have to switch NumLock '''on''' via {{key|Fn}}+{{key|ScrLk}} and then e.g. type {{key|u}} to get a {{key|KP_4}} (NumPad 4). To get back to normal keyboard, you have to type {{key|Fn}}+{{key|ScrLk}} again.&lt;br /&gt;
&lt;br /&gt;
Some people (including me) are missing on recent Thinkpads the option to have Fn as a modifier key to access the NumPad instead, i.e. and e.g. {{key|Fn}}+{{key|u}} gives you {{key|KP_4}}.&lt;br /&gt;
&lt;br /&gt;
There is currently no way to make this work in a simple way (pleeeease correct me if I am wrong!), though there is a work-around. Instead of using {{key|Fn}} for accessing the NumPad, {{key|CapsLock}} can get this function by being mapped as Mode_switch (the {{key|AltGr}} on international keyboards). The {{key|Fn}} can be remapped to be Caps_Lock - while at the same time retaining its function to access the special laptop functions (e.g. {{key|Fn}}+{{key|F4}} for sleep}}, by using .Xmodmap.&lt;br /&gt;
&lt;br /&gt;
So on my R60 running fvwm@Slackware 12.1 the .Xmodmap would look like this:&lt;br /&gt;
&lt;br /&gt;
 ! Make the forward and back buttons work&lt;br /&gt;
    keycode 233 = XF86Forward&lt;br /&gt;
    keycode 234 = XF86Back&lt;br /&gt;
 ! Make the WIN key to Super modifier&lt;br /&gt;
    keycode 115 = Super_L&lt;br /&gt;
 ! Set the Caps_Lock physical key to Mode_switch (like AltGr on intl. keyboards)&lt;br /&gt;
    keycode 66 = Mode_switch&lt;br /&gt;
 ! Set the Fn key to work as Caps_Lock now. The special key combos like Fn-F4 for &amp;quot;sleep&amp;quot; still work then&lt;br /&gt;
    keycode 227 = Caps_Lock&lt;br /&gt;
 ! Now we activate those new keys. Find some free mod slots (xmodmap) and put them there.&lt;br /&gt;
    clear mod4&lt;br /&gt;
    clear mod5&lt;br /&gt;
 !clear lock&lt;br /&gt;
    add mod4 = Super_L&lt;br /&gt;
 !add lock = Caps_Lock&lt;br /&gt;
    add mod3 = Mode_switch&lt;br /&gt;
 ! It's time to add the keypad keys to the third position of the key definition (pure shift mode_switch shift+mode_switch)&lt;br /&gt;
    keycode 16 = 7 ampersand KP_7&lt;br /&gt;
    keycode 17 = 8 asterisk KP_8&lt;br /&gt;
    keycode 18 = 9 parenleft KP_9&lt;br /&gt;
      keycode 19 = 0 parenright KP_Divide&lt;br /&gt;
    keycode 30 = u U KP_4&lt;br /&gt;
    keycode 31 = i I KP_5&lt;br /&gt;
    keycode 32 = o O KP_6&lt;br /&gt;
      keycode 33 = p P KP_Multiply&lt;br /&gt;
    keycode 44 = j J KP_1&lt;br /&gt;
    keycode 45 = k K KP_2&lt;br /&gt;
    keycode 46 = l L KP_3&lt;br /&gt;
      keycode 47 = semicolon colon KP_Subtract&lt;br /&gt;
    keycode 58 = m M KP_0&lt;br /&gt;
 ! ... I have to use the coma key, too, on the keypad...so I set it to be F20 (which is not existing on normal keyboards and thus is free... check for side effects in programmes accepting F12+ keys!)&lt;br /&gt;
    keycode 59 = comma less F20 &lt;br /&gt;
    keycode 60 = period greater KP_Decimal    &lt;br /&gt;
      keycode  61 = slash question KP_Add&lt;br /&gt;
&lt;br /&gt;
{{WARN|Your keycodes might be different as well as your '''mod''#''''' settings.}}&lt;br /&gt;
Use {{cmduser|xmodmap}} and {{cmduser|xmodmap -pke}} to check your ModMap, and the tool {{cmduser|xev}} to obtain your exact key codes.&lt;br /&gt;
&lt;br /&gt;
===Mapping keys with setkeycodes===&lt;br /&gt;
You can use the setkeycodes command to remap certain keys. I.e. you can use {{cmdroot|setkeycodes 6e 109 6d 104 69 28 6b 1}} to map the Tablets Up and Down keys to the standard PageUp and PageDown keys and Tablet Escape and Enter to their respective keys.&lt;br /&gt;
&lt;br /&gt;
The following table shows the keycodes generated by the ThinkPad keys.&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
|+ keycodes&lt;br /&gt;
! key !! keycode&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet orientation|#494949}} || 0x6c&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Shortcut|#494949}} || 0x68&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Esc|#494949}} || 0x6b&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Enter|#494949}} || 0x69&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Up|#494949}} || 0x6d&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet Down|#494949}} || 0x6e&lt;br /&gt;
|-&lt;br /&gt;
| {{ibmkey|Tablet (unlabeled)|#494949}} || 0x67&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===acpi_fakekey===&lt;br /&gt;
You can turn acpi events into user-level xevents by putting &amp;lt;tt&amp;gt;acpi_fakekey&amp;lt;/tt&amp;gt; commands into the acpi action scripts. There are several layers involved in using acpi keys in this way, so I'll go through the example of using the ThinkVantage button to open xmms.&lt;br /&gt;
&lt;br /&gt;
My ThinkVantage button generates an '''acpi event''' &amp;quot;ibm/hotkey HKEY 00000080 00001018&amp;quot;, so we have the event file &amp;lt;tt&amp;gt;/etc/acpi/events/ThinkVantage&amp;lt;/tt&amp;gt; for it which executes the script &amp;lt;tt&amp;gt;/etc/acpi/actions/fakekey-macro.sh&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
event=ibm/hotkey HKEY 00000080 00001018&lt;br /&gt;
action=/etc/acpi/actions/fakekey-macro.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In turn, the executable &amp;lt;tt&amp;gt;/etc/acpi/actions/fakekey-macro.sh&amp;lt;/tt&amp;gt; script calls acpi_fakekey with the '''key number''' defined in &amp;lt;tt&amp;gt;/usr/share/acpi-support/key-constants&amp;lt;/tt&amp;gt; as $KEY_MACRO which is 112 (you could just as well choose an other key number, just make sure that it doesn't belong to something else like the &amp;quot;j&amp;quot; key or something). &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
. /usr/share/acpi-support/key-constants&lt;br /&gt;
acpi_fakekey $KEY_MACRO &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
I have no idea how this actually corresponds to which xevent is generated, so I can find out out by running the program &amp;lt;tt&amp;gt;xev&amp;lt;/tt&amp;gt; and hitting the ThinkVantage button while the mouse is in the &amp;lt;tt&amp;gt;xev&amp;lt;/tt&amp;gt; window (remember to &amp;lt;tt&amp;gt;/etc/init.d/acpid restart&amp;lt;/tt&amp;gt; first if you just created the &amp;lt;tt&amp;gt;/etc/acpi/events/ThinkVantage&amp;lt;/tt&amp;gt; file). I get something popping up in the terminal where I ran xev that looks like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
KeyPress event, serial 30, synthetic NO, window 0x2800001,&lt;br /&gt;
    root 0x6a, subw 0x0, time 2000522842, (138,83), root:(781,500),&lt;br /&gt;
    state 0x0, keycode 239 (keysym 0x0, NoSymbol), same_screen YES,&lt;br /&gt;
    XLookupString gives 0 bytes: &lt;br /&gt;
    XmbLookupString gives 0 bytes: &lt;br /&gt;
    XFilterEvent returns: False&lt;br /&gt;
&lt;br /&gt;
KeyRelease event, serial 30, synthetic NO, window 0x2800001,&lt;br /&gt;
    root 0x6a, subw 0x0, time 2000522842, (138,83), root:(781,500),&lt;br /&gt;
    state 0x0, keycode 239 (keysym 0x0, NoSymbol), same_screen YES,&lt;br /&gt;
    XLookupString gives 0 bytes: &lt;br /&gt;
    XFilterEvent returns: False&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This tells me that the &amp;lt;tt&amp;gt;acpi_fakekey 112&amp;lt;/tt&amp;gt; as executed by hitting the ThinkVantage button generates KeyPress event followed by a KeyRelease event with '''keycode''' 239 and that this keycode has been assigned no corresponding '''keysym'''. Thus, I am free to assign the keycode to any keysym I want. You can find a list of available keysyms in &amp;lt;tt&amp;gt;/usr/share/X11/XKeysymDB&amp;lt;/tt&amp;gt;. Again try and pick one that is not likely to have already been taken by something, such as &amp;lt;tt&amp;gt;XF86LaunchA&amp;lt;/tt&amp;gt;. To assign this keysym to keycode 239, you can either edit ~/.Xmodmap on an individual user basis, or edit the systemwide &amp;lt;tt&amp;gt;/etc/X11/Xmodmap&amp;lt;/tt&amp;gt; file to contain the line&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
keycode 239 = XF86LaunchA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you choose to go with the former, you may need to run &amp;lt;tt&amp;gt;xmodmap ~/.Xmodmap&amp;lt;/tt&amp;gt; for every login session in order to read in your ~/.Xmodmap file if your window manager does not do it for you. Regardless of which option you choose, you can run &amp;lt;tt&amp;gt;xmodmap &amp;lt;file&amp;gt;&amp;lt;/tt&amp;gt; to read in the updated Xmodmap file without logging out and logging back in.&lt;br /&gt;
&lt;br /&gt;
You should now find that hitting the ThinkVantage button creates the following output from &amp;lt;tt&amp;gt;xev&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
KeyPress event, serial 55, synthetic NO, window 0x2800001,&lt;br /&gt;
    root 0x6a, subw 0x0, time 2001286078, (0,106), root:(643,523),&lt;br /&gt;
    state 0x0, keycode 239 (keysym 0x1008ff4a, XF86LaunchA), same_screen YES,&lt;br /&gt;
    XLookupString gives 0 bytes: &lt;br /&gt;
    XmbLookupString gives 0 bytes: &lt;br /&gt;
    XFilterEvent returns: False&lt;br /&gt;
&lt;br /&gt;
KeyRelease event, serial 55, synthetic NO, window 0x2800001,&lt;br /&gt;
    root 0x6a, subw 0x0, time 2001286078, (0,106), root:(643,523),&lt;br /&gt;
    state 0x0, keycode 239 (keysym 0x1008ff4a, XF86LaunchA), same_screen YES,&lt;br /&gt;
    XLookupString gives 0 bytes: &lt;br /&gt;
    XFilterEvent returns: False&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note the change of &amp;lt;tt&amp;gt;(keysym 0x0, NoSymbol)&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;(keysym 0x1008ff4a, XF86LaunchA)&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You're now ready to map &amp;lt;tt&amp;gt;XF86LaunchA&amp;lt;/tt&amp;gt; to executing xmms. This is highly dependent on what keygrabber you decide to use. For openbox, I edit my &amp;lt;tt&amp;gt;~/.config/openbox/rc.xml&amp;lt;/tt&amp;gt; file and add the following entry in the  &amp;lt;keyboard&amp;gt; section:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;lt;keybind key=&amp;quot;XF86LaunchA&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;action name=&amp;quot;Execute&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;startupnotify&amp;gt;&lt;br /&gt;
          &amp;lt;enabled&amp;gt;true&amp;lt;/enabled&amp;gt;&lt;br /&gt;
        &amp;lt;/startupnotify&amp;gt;&lt;br /&gt;
        &amp;lt;command&amp;gt;&lt;br /&gt;
	  xmms&lt;br /&gt;
	&amp;lt;/command&amp;gt;&lt;br /&gt;
      &amp;lt;/action&amp;gt;&lt;br /&gt;
    &amp;lt;/keybind&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
After, right clicking on the desktop and selecting the &amp;quot;Reconfigure&amp;quot; menu option, you should then have xmms pop up when you hit the ThinkVantage key.&lt;br /&gt;
&lt;br /&gt;
==Example Applications==&lt;br /&gt;
===Web Browsers===&lt;br /&gt;
====Firefox (&amp;lt;3.0)====&lt;br /&gt;
&lt;br /&gt;
There are various ways to assign actions to the browser keys. The easiest way is to install [http://mozilla.dorando.at/keyconfig.xpi keyconfig.xpi] from http://mozilla.dorando.at, which adds a menu entry Tools-&amp;gt;Keyconfig. Then you can assign any action you want to the F19/F20 keys (you still need to create {{path|~/.Xmodmap}} as explained above).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The remaining discussion gives you various more complicated ways to achieve the same thing. &lt;br /&gt;
To have firefox make use of the browser keys you need to modify one of its files{{footnote|4}}.&lt;br /&gt;
To do this you will first need to extract it from the {{path|browser.jar}} archive. Do...&lt;br /&gt;
&lt;br /&gt;
Step 1:  Edit .Xmodmap and add entries for F19 and F20 as explained above.&lt;br /&gt;
&lt;br /&gt;
Step 2:&lt;br /&gt;
&lt;br /&gt;
Note: &amp;lt;firefox-directory&amp;gt; is probably /usr/lib/firefox. Use your version so, if you have 3.0.1 or 3.0.2 use /usr/lib/firefox-3.0.1&lt;br /&gt;
&lt;br /&gt;
:{{cmdroot|cd &amp;lt;firefox-directory&amp;gt;/chrome}}&amp;lt;br /&amp;gt;&lt;br /&gt;
:{{cmdroot|unzip browser.jar}}&lt;br /&gt;
&lt;br /&gt;
The file of interest is {{path|content/browser/browser.xul}}. Edit it {and don't forget to make a backup copy first}...&lt;br /&gt;
:{{cmdroot|vi content/browser/browser.xul}}&lt;br /&gt;
&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;goBackKb&amp;quot; keycode=&amp;quot;VK_F19&amp;quot; command=&amp;quot;Browser:Back&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;key id=&amp;quot;goForwardKb&amp;quot; keycode=&amp;quot;VK_F20&amp;quot; command=&amp;quot;Browser:Forward&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Command you need for Next Tab &lt;br /&gt;
 &amp;lt;key id=&amp;quot;goBackTabKb&amp;quot; keycode=&amp;quot;VK_F19&amp;quot; oncommand=&amp;quot;gBrowser.mTabContainer.advanceSelectedTab(-1)&amp;quot; /&amp;gt;&lt;br /&gt;
For the Previous Tab &lt;br /&gt;
 &amp;lt;key id=&amp;quot;goForwardTabKb&amp;quot; keycode=&amp;quot;VK_F20&amp;quot; oncommand=&amp;quot;gBrowser.mTabContainer.advanceSelectedTab(1)&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now save the file and repackage the {{path|browser.jar}} archive...&lt;br /&gt;
:{{cmdroot|zip -rD0 browser.jar content/browser/}}&lt;br /&gt;
&lt;br /&gt;
That's it.&lt;br /&gt;
&lt;br /&gt;
Step 3:  Restart Firefox.&lt;br /&gt;
&lt;br /&gt;
{{HINT|Outdated: Another interesting Page on Firefox is http://dqd.com/~mayoff/notes/thinkpad/dqdnavkeys/ It uses different key mappings (F19 resp. F20) but a ready [http://dqd.com/~mayoff/notes/thinkpad/dqdnavkeys/dqdnavkeys-1.2.xpi .xpi] is provided which is pretty comfortable. However, this xpi file does not install on Firefox 1.5. or later.}}&lt;br /&gt;
&lt;br /&gt;
{{HINT| You can also use the [http://extensionroom.mozdev.org/more-info/keyconfig keyconfig] extension to configure custom keys.  This extension works with Firefox 1.5 and also with Firefox 2.0. The Command you need for Next Tab is gBrowser.mTabContainer.advanceSelectedTab(1,true); For Previous Tab its gBrowser.mTabContainer.advanceSelectedTab(-1,true); You can alternatively install the [http://www.pqrs.org/~tekezo/firefox/extensions/functions_for_keyconfig/index.html functions for keyconfig] and set the variable f4kc_NextTab to F20 and f4kc_PrevTab to F19.}}.&lt;br /&gt;
&lt;br /&gt;
====Firefox 3.0====&lt;br /&gt;
Thankfully the people at Mozilla decided to include the expected functionality for the XF86Back and XF86Forward keysyms in the new release so all you need to do is&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;# printf 'keycode 234 = XF86Back\nkeycode 233 = XF86Forward' &amp;gt;&amp;gt; /etc/X11/Xmodmap&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
And to make this take effect immediately (i.e., without having to log out and log in again), as a regular user run:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;{{cmduser|Xmodmap /etc/X11/Xmodmap}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Hardy Heron, the xmodmap command is all lowercase. Also, the /etc/X11/Xmodmap file is not being read on boot. I've added the command to my .bashrc to have it called on startup.&lt;br /&gt;
&lt;br /&gt;
====Konqueror====&lt;br /&gt;
KDE allows you set key mappings for KDE applications (Go to KMenu &amp;gt; System &amp;gt; Control Center &amp;gt; Regional &amp;amp; Accessibility &amp;gt; Keyboard Shortcuts). By default (at least in KDE 3.5), XF86Back and XF86Forward are set as alternatives to Alt-Left and Alt-Right, and are mapped to KDE Back and Forward navigation actions.  &lt;br /&gt;
&lt;br /&gt;
If you use Konqueror as your only browser, you only need to set up {{path|~/.Xmodmap}} as described [[#xmodmap configuration|above]] to assign ThinkPad back/forward keys to the symbols XF86Back/XF86Forward. This also make these keys work for other KDE applications such as Quanta Plus, KPackage and so on (not all KDE applications honor this setting, e.g. KDE help system doesn't).&lt;br /&gt;
&lt;br /&gt;
If you want to use Firefox, however, the above settings do not work. You will have to map ThinkPad back/forward keys to F19/F20 as described [[#Firefox|above]], and change KDE navigation key settings to use F19/F20 instead of the default.&lt;br /&gt;
&lt;br /&gt;
====Opera====&lt;br /&gt;
However this isn't a simple configration file, you can set your browser manually.&amp;lt;br /&amp;gt;&lt;br /&gt;
Go to &amp;lt;i&amp;gt;Tool &amp;gt; Settings &amp;gt; Mouse and keyboard &amp;gt; Keyboard settings &amp;gt; Edit &amp;gt; Browser Window&amp;lt;/i&amp;gt;. There add F19 - Back and F20 - Forward. Now you can surf using your TP keys ;-)&lt;br /&gt;
&lt;br /&gt;
====Epiphany====&lt;br /&gt;
To get the keys work in epiphany, you could use the extension from [http://crashman.homelinux.org/~andre/public/epiphany%20extensions/thinkpad%20browserkeys/ here]&lt;br /&gt;
You just need to edit your Xmodmap like described for Firefox &amp;lt; 3.0 (bind the keys on F19 and F20)&lt;br /&gt;
&lt;br /&gt;
===Open an application===&lt;br /&gt;
&lt;br /&gt;
To configure the ThinkVantage button to open a terminal window in Gnome:&lt;br /&gt;
&lt;br /&gt;
Step 1:&lt;br /&gt;
Use xev to find the keycode generated by the button on your machine.  In my case is is 159.&lt;br /&gt;
&lt;br /&gt;
Step 2:&lt;br /&gt;
Create an entry in .Xmodmap like so&lt;br /&gt;
&lt;br /&gt;
keycode 159 = XF86LaunchA&lt;br /&gt;
&lt;br /&gt;
replacing 159 by the keycode found in step 1.  Load the map using&lt;br /&gt;
&lt;br /&gt;
:{{cmd|xmodmap ~/.Xmodmap}}&lt;br /&gt;
&lt;br /&gt;
Step 3:&lt;br /&gt;
Configure the required function (e.g. open terminal window) in System-&amp;gt;Preferences-&amp;gt;Keyboard shortcuts&lt;br /&gt;
&lt;br /&gt;
===Window Managers===&lt;br /&gt;
====fvwm====&lt;br /&gt;
To get the {{ibmkey|Forward|#494949}} and {{ibmkey|Backward|#494949}} keys to cycle through pages in the virtual desktop, add this to your {{path|~/.fvwmrc}}:&lt;br /&gt;
 Key    XF86Back     A      A   Scroll     -100000   0&lt;br /&gt;
 Key    XF86Forward  A      A   Scroll     +100000   0&lt;br /&gt;
If you use multiple virtual desktops, you could instead use the keys to flip between them by using GotoDesk.&lt;br /&gt;
&lt;br /&gt;
====fluxbox====&lt;br /&gt;
To get the keys to cycle through pages in the virtual desktop, add this to your {{path|~/.fluxbox/keys}}:&lt;br /&gt;
 None F19 :PrevWorkspace&lt;br /&gt;
 None F20 :NextWorkspace&lt;br /&gt;
&lt;br /&gt;
====pekwm configuration====&lt;br /&gt;
You can make the two browser keys switch workspaces in pekwm, by adding the following two lines to the {{path|~/.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;br /&gt;
&lt;br /&gt;
====pwm====&lt;br /&gt;
Another example how to use these two keys to switch between pwm tabs. These two lines should be added to {{path|~/.pwm/keys-default.conf}} or {{path|/etc/pwm/keys-default.conf}}:&lt;br /&gt;
 kbind &amp;quot;Back&amp;quot;, &amp;quot;switch_rot&amp;quot;, -1&lt;br /&gt;
 kbind &amp;quot;Forward&amp;quot;, &amp;quot;switch_rot&amp;quot;, 1&lt;br /&gt;
&lt;br /&gt;
====IceWM====&lt;br /&gt;
To make IceWM cycle workspaces using the {{ibmkey|Forward|#494949}} and {{ibmkey|Backward|#494949}} keys, change these two options in {{path|~/.icewm/preferences}} (Provided you assigned keysyms F19 and F20 with xmodmap):&lt;br /&gt;
 # &amp;quot;Previous workspace&amp;quot; shortcut&lt;br /&gt;
 KeySysWorkspacePrev=&amp;quot;F19&amp;quot;&lt;br /&gt;
 # &amp;quot;Next workspace&amp;quot; shortcut&lt;br /&gt;
 KeySysWorkspaceNext=&amp;quot;F20&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Gnome/metacity ====&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.ubuntu.com/Keybindings Ubuntu guide].&lt;br /&gt;
&lt;br /&gt;
===Other Uses===&lt;br /&gt;
====Console tools configuraton====&lt;br /&gt;
To make the {{ibmkey|Forward|#494949}} and {{ibmkey|Backward|#494949}} keys useful in console, add this to your keymap ({{path|/etc/console/boottime.kmap.gz}} in {{Debian}}):&lt;br /&gt;
 keycode 158 = Decr_Console&lt;br /&gt;
 keycode 159 = Incr_Console&lt;br /&gt;
&lt;br /&gt;
Alternatively you can load this script (perhaps on system startup) to enable Backward/Forward button console (VT) switch:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 echo keycode 158 = Decr_Console | loadkeys&lt;br /&gt;
 echo keycode 159 = Incr_Console | loadkeys&lt;br /&gt;
&lt;br /&gt;
It should work with any distro.&lt;br /&gt;
&lt;br /&gt;
====Cycling through tabs====&lt;br /&gt;
In Gnome and Xfce4, Ctrl-PageUp/Ctrl-PageDown move to the previous/following open tab in all applications that have tabbed user interfaces (terminal emulator, web browser, ...). To make use of the {{ibmkey|Forward|#494949}} and {{ibmkey|Backward|#494949}} keys for this task, there're two possibilities.&lt;br /&gt;
&lt;br /&gt;
For both ways, you should map the keycodes 233 and 234 to XF86Back and XF86Forward as described in [[#xmodmap_configuration|xmodmap configuration]].&lt;br /&gt;
&lt;br /&gt;
=====Using xautomation=====&lt;br /&gt;
xautomation can be found [http://hoopajoo.net/projects/xautomation.html here].&lt;br /&gt;
&lt;br /&gt;
Create two files with permissions 755:&lt;br /&gt;
&lt;br /&gt;
{{path|/usr/local/bin/tp_back}}:&lt;br /&gt;
&amp;lt;bash&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
/usr/bin/xte 'keydown Control_L' 'keydown Page_Up' 'keyup Page_Up' 'keyup Control_L'&lt;br /&gt;
&amp;lt;/bash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{path|/usr/local/bin/tp_forward}}:&lt;br /&gt;
&amp;lt;bash&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
/usr/bin/xte 'keydown Control_L' 'keydown Page_Down' 'keyup Page_Down' 'keyup Control_L'&lt;br /&gt;
&amp;lt;/bash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use your desktop's keyboard shortcut editor to assign XF86Back as a shortcut for tp_back and XF86Forward as a shortcut for tp_forward.&lt;br /&gt;
&lt;br /&gt;
This should work in all distros and with all window managers (you might have to use other key combinations than Ctrl-PageUp and Ctrl-PageDown).&lt;br /&gt;
&lt;br /&gt;
=====Redirecting XF86Back/XF86Forward=====&lt;br /&gt;
Create {{path|/etc/X11/xkb/compat/thinkpad}}:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// $XFree86$&lt;br /&gt;
//  XFree86 special keysyms&lt;br /&gt;
default partial xkb_compatibility &amp;quot;basic&amp;quot;  {&lt;br /&gt;
    interpret.repeat= True;&lt;br /&gt;
&lt;br /&gt;
    interpret  XF86Back {&lt;br /&gt;
        action = Redirect(Key=&amp;lt;PGUP&amp;gt;, modifiers=Control);&lt;br /&gt;
    };&lt;br /&gt;
    interpret  XF86Forward {&lt;br /&gt;
        action = Redirect(Key=&amp;lt;PGDN&amp;gt;, modifiers=Control);&lt;br /&gt;
    };&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit {{path|/etc/X11/xkb/compat/complete}} and add &amp;lt;tt&amp;gt;'''augment &amp;quot;thinkpad&amp;quot;'''&amp;lt;/tt&amp;gt; so that it looks similar to the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// $XKeyboardConfig: xkbdesc/compat/complete,v 1.3 2005/10/17 00:42:11 svu Exp $&lt;br /&gt;
// $Xorg: complete,v 1.3 2000/08/17 19:54:34 cpqbld Exp $&lt;br /&gt;
default xkb_compatibility &amp;quot;complete&amp;quot;  {&lt;br /&gt;
    include &amp;quot;basic&amp;quot;&lt;br /&gt;
    augment &amp;quot;iso9995&amp;quot;&lt;br /&gt;
    augment &amp;quot;mousekeys&amp;quot;&lt;br /&gt;
    augment &amp;quot;accessx(full)&amp;quot;&lt;br /&gt;
    augment &amp;quot;misc&amp;quot;&lt;br /&gt;
    augment &amp;quot;xfree86&amp;quot;&lt;br /&gt;
    augment &amp;quot;level5&amp;quot;&lt;br /&gt;
    augment &amp;quot;thinkpad&amp;quot;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==External Sources==&lt;br /&gt;
*[http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-51537 IBMs page on configuring the ThinkPad buttons (ThinkPad, Access IBM, Mail, Search, and Home buttons) under Linux]&lt;br /&gt;
*[http://dqd.com/~mayoff/notes/thinkpad/dqdnavkeys/ Rob Mayoffs page on using IBM Keyboard Navigation Keys in Linux Mozilla and Firefox]&lt;br /&gt;
*[http://snarfed.org/space/thinkpad+keys+in+firefox Ryan Barretts blog article about using the browser keys in Firefox]&lt;br /&gt;
*[http://chaotika.org/~bluesceada/?page=soft&amp;amp;sub=thinkpad#acpibutn DennisG's help to get the ibm-acpi buttons do useful things] on a {{Z61e}} and possibly {{Z61m}}, {{Z61t}} and {{Z61p}}&lt;br /&gt;
&lt;br /&gt;
{{footnotes|&lt;br /&gt;
#Note that the associated functionality for Fn-F* key combinations is not consistent amongst all ThinkPads. We are maintaining [[Default meanings of special keys|a table of associated meanings]].&lt;br /&gt;
#if there are more than one tool listed, one is sufficient&lt;br /&gt;
#'full' means you can completely reassign any action to be triggered by the key, 'additional actions' means you can trigger actions in addition to the standard function of the key, which can not be changed.&lt;br /&gt;
#Thanks go to Ryan Barrett for writing the [http://snarfed.org/space/thinkpad+keys+in+firefox little howto] on [http://snarfed.org/space/start his blog].&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Low</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Harddrive_Upgrade&amp;diff=40196</id>
		<title>Harddrive Upgrade</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Harddrive_Upgrade&amp;diff=40196"/>
		<updated>2008-12-10T20:04:55Z</updated>

		<summary type="html">&lt;p&gt;Low: /* Howto */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Why? =&lt;br /&gt;
&lt;br /&gt;
* More capacity&lt;br /&gt;
* Quieter drives&lt;br /&gt;
* Faster drives&lt;br /&gt;
* To replace a malfunctioning drive&lt;br /&gt;
&lt;br /&gt;
= Options =&lt;br /&gt;
&lt;br /&gt;
[http://www.seagate.com/www/en-us/products/laptops/momentus/ Seagate Momentus] 2.5-inch notebook drives are highly recommended.&lt;br /&gt;
&lt;br /&gt;
= Howto =&lt;br /&gt;
&lt;br /&gt;
# Buy the upgrade&lt;br /&gt;
# Buy a USB enclosure ~10USD&lt;br /&gt;
# Mount upgrade in the USB enclosure&lt;br /&gt;
# Boot with a liveCD such as Knoppix or Ubuntu's LiveCD&lt;br /&gt;
&lt;br /&gt;
Normally your hard drive would be /dev/hda and your external USB hard drive upgrade should be /dev/sda. Check with `dmesg` if this is the case. There is [http://thinkwiki.org/wiki/How_to_copy_a_Linux_installation several different irksome ways to migrate your data to the upgrade.] I've performed the `cat` method:&lt;br /&gt;
&lt;br /&gt;
 cat /dev/hda &amp;gt; /dev/sda&lt;br /&gt;
&lt;br /&gt;
This can take as much as an entire day to perform, depending on the size of your original hard drive. You can work out how long it takes if you know the USB throughput.&lt;br /&gt;
&lt;br /&gt;
And then resize the partition with the tool `parted`. This takes far less time thankfully, 30 minutes in my case.&lt;br /&gt;
&lt;br /&gt;
Now the tricky part, [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-42410 taking your hard drive out and replacing it with the upgrade.]&lt;br /&gt;
&lt;br /&gt;
# Shutdown the machine, disconnect from the mains and take out the battery.&lt;br /&gt;
# Take the upgrade out the USB enclosure. In my case my upgrade got stuck in the USB enclosure. Be wary of these types of awful situations!&lt;br /&gt;
# With a good Philips screw driver remove the hard drive. Refer to [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-42410 IBM's documentation how to do this.] My tips are to have the lid open when performing this. The hard drive is mounted typically just above your audio jacks - though this depends on your model. Again, check IBM's documentation - there's also step by step instructions available.&lt;br /&gt;
# The side panel covering on the hard drive mount clips off and now mounting the new upgrade should be straight forward.&lt;br /&gt;
# You need to put the b(l)ack panel back on the mount, otherwise it is very difficult to get the hard drive out of Thinkpad's enclosure.&lt;br /&gt;
# Once the swap is complete you should be able to boot into your new hard drive. Thinkpads typically automagically detect the hard drive so, that's it!&lt;br /&gt;
&lt;br /&gt;
= Source=&lt;br /&gt;
&lt;br /&gt;
* http://natalian.org/archives/2006/02/03/dreading-the-upgrade/&lt;/div&gt;</summary>
		<author><name>Low</name></author>
		
	</entry>
</feed>