Você pode usar xdotool
que pode falsificar entradas de teclado / mouse, gerenciamento de janelas e muito mais.
Veja o script example.sh
para xcalc "4*9="
, para ver a imagem do resultado da captura:
#!/usr/bin/env bash
save="$DISPLAY" # save original X display number
export DISPLAY=:44 # set random choosen display for xvfb
case "$1" in # and x-programs called below
start) Xvfb $DISPLAY & ;; # starting xvfb server on :44
calc) xcalc & ;; # run x-calculator
xdo) xdotool mousemove 1 1 click 1 # focus with click on x:y=1:1
xdotool key 4 asterisk 9 # calc 4*9
xdotool key equal ;; # =
show) #capture root window ('36' result image) and display it to saved Xno
xwd -root | xwud -display $save & ;;
stop) ps auxww | grep "Xvfb $DISPLAY" | awk '{print $2}' | xargs kill ;;
all) DISPLAY=$save; $0 start; $0 calc; sleep 1; $0 xdo; $0 show; $0 stop ;;
esac
Observação: as opções individuais podem ser usadas para testes ou executadas com ./example.sh all
.