thinkpad_acpi.c | 387 ++++++++++++++++++++++++++++++++++++++++
thinkpad_acpi.h | 53 +++++++
2 files changed, 426 insertions(+), 14 deletions(-)
With the patch I've just proposed, the mute and volume up/down buttons get mapped to the hardware mixer, and this mixer is exposed through ALSA. This means that when you press the media buttons on recent thinkpads, you'll soon get a GNOME feedback volume widget and be able to control the hardware mixer in the volume applet in the panel.
Exporting a true hardware mixer
I've also made the other media buttons found on the side of some older thinkpads actually do something sane. I'm defining something sane as not running tpd as root executing random xosd commands. I'm exporting the buttons over a exported INPUT device like other patches I've written.
This means you can map the buttons to any session action in gnome-keybinding-properties, as I've done with my "ThinkVantage" button which is now mapped to lock screen.
This has taken me the best part of a day to implement properly, and removes years of hacks involving xosd, tpd and userspace polling.