Programas GUI no leen desde su entrada estándar, que obtienen su entrada desde el servidor X . Hay herramientas para inyectar una pulsación de tecla en una ventana. xdotool es bastante común y conveniente.
Deberá encontrar la ID de ventana a la que desea enviar la pulsación de tecla. Puedes hacerlo con xdotool. xdotool search --class Chrome
devuelve la lista de ID de ventanas de todas las ventanas de Chrome. Si esto devuelve más de uno, debe elegir el que desee. Puede usar xdotool search --name
para hacer coincidir el título en lugar de la clase. También puede analizar la salida de wmctrl y extraer la ID de ventana deseada.
Una vez que haya encontrado la ID de ventana correcta, puede llamar xdotool
para inyectar una tecla. Desafortunadamente, muchas aplicaciones rechazan eventos sintéticos, es decir, pulsaciones de teclas y eventos de mouse enviados por otra aplicación. Este es el caso con las versiones actuales de Chrome. Es posible inyectar una pulsación de tecla desde otra aplicación mediante un mecanismo diferente, pero eso requiere que la ventana esté enfocada. Puede hacer todo eso con xdotool, pero hará que el foco parpadee rápidamente a la ventana de Chrome y viceversa. El siguiente fragmento se envía F5a la primera ventana de Chrome (en un orden algo arbitrario).
xdotool search --class Chrome windowactivate --sync %1 key F5 windowactivate $(xdotool getactivewindow)
O con versiones anteriores de xdotool:
xdotool windowactivate $(xdotool search --class Chrome) &&
xdotool key F5 &&
xdotool windowactivate $(xdotool getactivewindow)
Recuerde que esto se envía F5a esa ventana y depende del programa decidir qué hacer con ella. En Chrome, esto vuelve a cargar la pestaña actual.