KeyFlip desactiva el teclado interno de Linux al conectar uno externo
Una utilidad para GNOME que gestiona dispositivos de entrada mediante udev y prioriza la seguridad frente a la conveniencia.

KeyFlip es una nueva herramienta para entornos GNOME/Linux que soluciona un problema clásico de los desarrolladores que trabajan con teclado externo: los pulsos accidentales en el teclado integrado de la laptop. La aplicación detecta automáticamente la conexión de un periférico USB o Bluetooth y desactiva el dispositivo interno para evitar errores de entrada, todo ello supervisando los eventos en tiempo real.
El desarrollo de esta utilidad obliga a entender cómo el kernel de Linux gestiona los dispositivos de entrada. No existe un único "teclado", sino múltiples nodos evdev o libinput que el sistema operativo trata de forma independiente. La clave técnica de KeyFlip reside en cómo identifica correctamente cuál es el teclado interno y cuál el externo. En lugar de confiar en nombres de dispositivo inestables (como "AT Translated Set 2 keyboard"), el software analiza el tipo de bus y la ruta física. El teclado interno suele estar conectado a un bus i8042 o de plataforma, mientras que los externos aparecen en el bus USB o Bluetooth con sus identificadores de fabricante.
Para la detección de conexiones, KeyFlip descarta el polling (consultar periódicamente el estado) a favor de suscribirse a los eventos de udev. Este mecanismo, que el propio entorno de escritorio utiliza para el reconocimiento de hardware, permite una respuesta instantánea al conectar o desconectar el dispositivo, eliminando la latencia y el consumo innecesario de CPU de las verificaciones en bucle.
El diseño de la herramienta gira en torno a una filosofía de "falla abierta" (fail-open). Si el software no puede identificar con certeza el dispositivo externo, no actúa. Si el teclado externo se desconecta, el interno se reactiva inmediatamente. Además, si el daemon de la aplicación se cae, el teclado interno permanece activo por defecto. Esta decisión es crítica: una utilidad que maneja la entrada básica nunca debe ser un punto único de fallo que deje al usuario sin forma de interactuar con la máquina. La interfaz incluye un icono de bandeja para el control manual, permitiendo anular la lógica automática si la configuración del equipo es atípica.
Inicialmente el proyecto fue solo un script, pero su evolución hacia una herramienta empaquetada para Fedora ha elevado el nivel de madurez. La integración con el gestor de paquetes y la solicitud correcta de permisos para acceder a bajos niveles de hardware son aspectos tan importantes como la lógica de detección. KeyFlip demuestra que en herramientas de sistema, la robustez y la predictibilidad ante errores valen más que la complejidad de la detección perfecta.