[Python-es] Como capturar la tecla Ctrl (exclusivamente, sin pulsar otra simultáneamente) en un programa de consola en Raspbian

Carlos Zuniga carlos.zun en gmail.com
Lun Jul 13 22:39:04 CEST 2015


2015-07-12 3:59 GMT-05:00 Miguel Salcedo <trmsalcedo en gmail.com>:
> He desarrollado un programa de consola en el cual necesito detectar el
> momento en el que me pulsan la tecla Ctrl (solo Ctrl, sin pulsar ninguna
> otra al mismo tiempo). Inicialmente probé con getch() de curses, y luego
> seguí el código que hay en la sección FAQs de python.org, utilizando stdin,
> pero no detecta la pulsación de la tecla Ctrl si no se pulsa otra al mismo
> tiempo. He recurrido a varios foros pero no he obtenido una respuesta, por
> lo que les agradecería su ayuda. Mi desarrollo es sobre OS Raspbian y en
> modo consola. Gracias de antemano.
>

En consola no se puede. Ctrl, Shift y Alt son modificadores, no
generan input en stdin. Xev lo puede hacer por que utiliza una ventana
sobre las X.

Para hacer algo similar, detectar pulsaciones de los botones de un
joystick por consola sin X, utilicé SDL (aunque en c++) tal vez puedes
hacer lo mismo con PySDL2 (con PyGame no se puede, este siempre
necesita crear una ventana para poder escuchar eventos).


Más información sobre la lista de distribución Python-es