Keylogger de plataforma cruzada

Estou procurando maneiras de assistir a eventos de mouse e teclado no Windows, Linux e Mac a partir do Python.

Meu aplicativo é um rastreador de tempo. Não estou olhando para o evento, apenas registro a hora em que acontece. Se não houver eventos por um determinado período, digamos 10 minutos, presumo que o usuário saiu e interrompeu o projeto atual.

Quando o usuário retorna (os eventos voltam a aparecer), espero um momento (para que isso não seja acionado pela equipe de limpeza, por seus animais de estimação ou por um terremoto). Se os eventos persistirem por um longo período, presumo que o usuário retornou e eu abro uma pequena janela inativa onde ele pode optar por adicionar o intervalo de tempo para "interromper", o projeto atual (reunião, etc.) ou um projeto diferente.

Eu resolvi o keylogger para Windows usando opyHook.

No Linux, encontrei uma solução, mas não gosto: posso assistir a todos os nós do dispositivo em / etc / input e atualizar um carimbo de data / hora em algum lugar em / var ou / tmp toda vez que vejo um evento. Existem duas desvantagens: 1. Não sei se o evento é do usuário que está executando o rastreador de tempo e 2. esse pequeno programa precisa ser executado como root (não é bom).

No Mac, ainda não faço ideia.

Questões:

Existe uma maneira melhor de saber se o usuário está criando eventos do que assistir aos dispositivos de eventos no Linux?

Alguma dica de como fazer isso em um Mac?

questionAnswers(2)

yourAnswerToTheQuestion