The way to fix this would probably be to make sleepd open /dev/input/event* and read from it. When it gets output, it can reset its idle timer.
This would need to be done in a non-blocking select so that the rest of sleepd still has a chance to watch for battery etc events (and irqs). I'm too tired to code it tonight, but there ya go. -- see shy jo
signature.asc
Description: Digital signature