Keylogger multiplataforma

Estoy buscando formas de ver eventos de mouse y teclado en Windows, Linux y Mac desde Python.

Mi aplicación es un rastreador de tiempo. No estoy investigando el evento, solo registro el momento en que sucede. Si no hay eventos durante un tiempo determinado, digamos 10 minutos, supongo que el usuario se fue y detuve el proyecto actual.

Cuando el usuario regresa (los eventos vuelven a aparecer), espero un momento (para que el equipo de limpieza, sus mascotas o un terremoto no lo activen). Si los eventos persisten durante un período de tiempo más largo, supongo que el usuario ha regresado y aparece una ventana pequeña e inactiva donde puede elegir agregar el intervalo de tiempo para "interrumpir", el proyecto actual (reunión, etc.) o Un proyecto diferente.

He resuelto el keylogger para Windows usando elpyHook.

En Linux, he encontrado una solución, pero no me gusta: puedo ver todos los nodos del dispositivo en / etc / input y actualizar una marca de tiempo en algún lugar de / var o / tmp cada vez que veo un evento. Hay dos inconvenientes: 1. No puedo decir si el evento es del usuario que ejecuta el rastreador de tiempo y 2. este pequeño programa debe ejecutarse como root (no es bueno).

En Mac, todavía no tengo idea.

Preguntas:

¿Hay una mejor manera de saber si el usuario está creando eventos que viendo los dispositivos de eventos en Linux?

¿Algún indicador de cómo hacer eso en una Mac?

Respuestas a la pregunta(2)

Su respuesta a la pregunta