Um retorno de chamada de função toda vez que uma tecla é pressionada (independentemente de qual janela tem foco)?

Eu quero escrever um programa (em python) no Linux (Ubuntu Linux 9.10) que irá acompanhar quantas pressionamentos de tecla por segundo / minuto eu faço. Isso inclui as teclas de letras normais e control / shift / space / etc.

Existe alguma maneira de ligar em X para que eu possa dizer "quando uma tecla é pressionada chamar esta função?". Como eu quero que isso funcione em segundo plano enquanto eu trabalho normalmente, essa chamada de função terá que estar ciente de todas as teclas pressionadas para todos os programas. Eu suponho que é um pouco como um keylogger.

Isso é apenas uma coisa pessoal, então eu não me importo em fazê-lo funcionar no Windows / OSX, e eu não me importo quando as pessoas têm sessões X remotas, etc.

questionAnswers(2)

yourAnswerToTheQuestion