bash - programas - script linux ejemplos
xdotool-¿Por qué dormir antes de ejecutar comandos? (1)
El problema tiene que ver más con el estado del teclado que con cualquier concepto de SO especial. Si solo se dice que la tecla está "presionada" cuando pasa de los estados "arriba" a "abajo".
Cuando una aplicación intenta enviar una pulsación de tecla, enviará una tecla seguida de una tecla. Si la clave ya está en el estado "inactivo", enviar una clave no se registrará presionando una tecla porque el estado de la tecla no pasó de "arriba" a "abajo", simplemente permaneció en el estado "abajo". (Enviar un keydown cuando ya está en un estado "inactivo" es equivalente a simplemente mantener presionada la tecla, sin presionarla en otro momento).
Estoy usando xdotool
para automatizar comandos en ejecución, abrir pestañas nuevas, etc.
Lo que pasa es que al hacerlo en la ventana actual, tengo que dormir específicamente por algún tiempo o usar xdotool keyup Return
antes de hacer algo o sino xdotool
no presionará la tecla enter.
kartik@kartikpc:~/junk/xdotool$ cat automate
#!/bin/bash
# Release the Return key
# xdotool keyup Return
# Or sleep 1
xdotool type --delay 1 --clearmodifiers "clear"
xdotool key --clearmodifiers Return
kartik@kartikpc:~/junk/xdotool$ source automate
clearkartik@kartik-lappy:~/junk/xdotool$ clear
Lo que he leído de muy pocas fuentes es
% dormir 1; xdotool escriba "$ (printf" hello / nworld / n ")" (el sueño es para permitirme liberar mi clave de ''devolución'' real antes de escribir)
Entiendo que la tecla ''devolver'' se presiona cuando invoco específicamente mi script presionando ''Enter'' en el teclado. Pero ¿por qué no se lanza automáticamente?
Incluso cuando xdotool
está escribiendo cosas usando el xdotool type
, no debería lanzarse la tecla ''volver'' hasta ese momento, o cada letra debería haber ido línea tras línea, en lugar de estar en la misma línea