Estoy interesado en escribir un programa para Linux que lea TODAS las pulsaciones de teclas, las procese y LUEGO las envíe al resto de los procesos en ejecución. Esencialmente, TODAS las entradas del teclado deben ir a este programa y solo a este programa... Entonces el programa actuará como el teclado para el resto de la computadora. Básicamente, quiero hacer algo como texto predictivo en dispositivos Android, por lo que mi programa actuará como un filtro.
Lo que estoy preguntando es básicamente cómo dirigir todos los eventos del teclado a mi programa. Si bien no estoy buscando código, me gustaría saber qué parte de la programación/sistema Linux tengo que aprender para poder completar esta tarea. esto, porque estoy haciendo esto en un intento de aprender mejor Linux.
No debe modificar los controladores de teclado, ya que esto requerirá que tenga una solución para cada fabricante de teclados (y hay muchos de estos).
En su lugar, debe aplicar un parche a una función del kernel que llamen todos los controladores antes de pasar la entrada más arriba en la pila.
Para empezar, puede parchear input_event , que generalmente es llamado por todos los controladores de entrada; consulte la documentación aquí (no solo el teclado sino también el mouse y otros dispositivos)
En cualquier caso, tendrá que "decodificar" el código de escaneo de entrada donde puede encontrar útil esta documentación.
Para obtener más información sobre la aplicación de parches al kernel, lea aquí y aquí .