[ltp] How are hotkey and ACPI events handled on newer Thinkpads (2010+) with 3.x kernels?

Jonas Camillus Jeppesen linux-thinkpad@linux-thinkpad.org
Mon, 21 Jan 2013 02:01:15 +0100


Hi everyone

This is my first message to this mailing list, thank you for reading it.

I am trying to understand how hotkeys (special keys, thinkpad extra 
keys, fn-combinations) and ACPI events are handled on newer Thinkpads 
(lets say from 2010 and onwards. I am hoping to cover my own T420) when 
they run Linux with a 3.x kernel. The reason being that I would like to 
use no established desktop environment, but just a window manager and 
status bar (xmonad+xmobar).

Right now only brightness up/down (fn+home/end) works if I choose not to 
launch gnome-settings-daemon (i.e. toggle touchpad, volume etc. does not 
work).

I have been reading everything I can find on ThinkWiki about the 
thinkpad acpi and also searched around the web for hours without finding 
anything good. The only semi usable thing I've been able to find is that 
maybe the things are controlled by event files in /etc/acpi/events. They 
name key combinations and scripts in /etc/acpi and those scripts in 
/etc/acpi actually gets called (I've inserted something like "echo 
`date`: $0 >> /tmp/acpi-log" right after #!/bin/.. to keep track on when 
they get called). fn+f8 results in a script called 
/etc/acpi/thinkpad-stretchortouchpad.sh being called. When 
gnome-settings-daemon is running this script gets called and the 
toggling of the touchpad works. When gnome-settings-daemon is not 
running the script still gets called but the toggling of the touchpad 
does not work. So these scripts do nothing after all it seems.

What is then happening behind the scene? The thinkwiki seems pretty out 
dated (everywere it is filled with notes about the 2.6 kernel and 
examples for T6x laptops). Also the thinkpad acpi readme seems very old 
(http://ibm-acpi.sourceforge.net/README) being from 2008. Is this still 
the driver / module being used? thinkpad_acpi places some entries in my 
syslog on boot (reporting different things being found like a screen 
supporting brightness control etc.) so it is still alive, but is it 
being used? Also acpid is running listening for events in 
/etc/acpi/events but above I seem to have concluded that those script in 
/etc/acpi do nothing.

Thank you for your input!

Best regards
Jonas C. J.