Estoy tratando de inyectar pulsaciones de teclas en el daemon de entrada para simular escribir desde un script Bash. ¿Es esto posible y, de ser así, cómo puedo hacer que suceda?
linux
shell-script
keyboard
input
Naftuli Kay
fuente
fuente
Respuestas:
Si está operando en el nivel X (como en la pregunta de Gilles), use xdotool así:
Donde KEYSTROKE_SPECIFIER puede ser algo como "a" o "F2" o "control + j"
EDITAR: Perdí tu respuesta a la pregunta de Gilles, lo siento. Dejaré esta respuesta aquí como una solución para el caso X.
fuente
xte
opera al mismo nivel.Usa el
uinput
conductor. No creo que haya una utilidad para eso; Tendrás que escribir o adaptar un poco de código C. En una palabra:Referencias más completas:
fuente
Si NO está trabajando con programas X con ventanas a las que se pueden enviar claves, probablemente esté buscando
expect
un programa práctico y muy configurable para ejecutar otros programas de shell interactivos como si un usuario estuviera controlando el terminal. Puede configurar respuestas programáticas para responder a varias salidas con diferentes entradas.fuente
Escribí un código de Python que hace eso. Puedes encontrarlo en mi proyecto de código abierto.
http://code.google.com/p/pycopia/source/browse/trunk/core/pycopia/OS/Linux/event.py
Si ejecuta ese módulo como un script como root, puede ver una demostración en acción.
Esta funcionalidad básica se amplió para otro proyecto, powerdroid, que proporciona una implementación más concreta para un sistema integrado (Android).
http://code.google.com/p/powerdroid/source/browse/trunk/src/droid/devices.py
fuente