I've debugged this further, and when using kbd instead of evdev for the keyboard, some hotkeys on my Lenovo X61 start working (battery, hibernate..). What I also noticed is that only suspend and lock screen are handled by the default keyboard driver in the kernel, and the rest is up to the "Thinkpad Extra Buttons" device (handled by thinkpad_acpi module).
The reason is that evdev grabs the device, you can see that on the Xorg logfile. This can be easily worked around by installing an fdi file that matches the device and doesn't set the driver (input.x11_driver). But, that's probably not the correct way to fix this. Running evtest on the input device shows all the keycodes (and more), so whatever should listen to them should be fixed.
I've debugged this further, and when using kbd instead of evdev for the keyboard, some hotkeys on my Lenovo X61 start working (battery, hibernate..). What I also noticed is that only suspend and lock screen are handled by the default keyboard driver in the kernel, and the rest is up to the "Thinkpad Extra Buttons" device (handled by thinkpad_acpi module).
The reason is that evdev grabs the device, you can see that on the Xorg logfile. This can be easily worked around by installing an fdi file that matches the device and doesn't set the driver (input.x11_driver). But, that's probably not the correct way to fix this. Running evtest on the input device shows all the keycodes (and more), so whatever should listen to them should be fixed.