¿Una función de devolución de llamada cada vez que se presiona una tecla (independientemente de qué ventana tenga el foco)?

Quiero escribir un programa (en python) en Linux (Ubuntu Linux 9.10) que hará un seguimiento de la cantidad de pulsaciones de teclas por segundo / minuto que hago. Esto incluye teclas de letras normales, y control / shift / space / etc.

¿Hay alguna forma de conectarse a X para que pueda decir "cuando se presiona una tecla, llamar a esta función?". Como quiero que esto se ejecute en segundo plano mientras trabajo normalmente, esta función de llamada tendrá que poder estar al tanto de todas las pulsaciones de teclas para todos los programas. Supongo que es un poco como un keylogger.

Esto es solo algo personal, por lo que no me importa hacer que funcione en Windows / OSX, y no me importa cuando las personas tienen lujosas sesiones remotas de X, etc.

Respuestas a la pregunta(2)

Su respuesta a la pregunta