2016-02-18 5 views
1

Я хочу, чтобы иметь возможность запускать скрипт bash, который отправляет нажатия клавиш и клики по нескольким окнам. Это НЕ обязательно нужно делать с помощью xdotool, если есть альтернатива, я был бы рад ее использовать. Предпочтительно, он будет работать с bash.Отправить xdotool keypresses/clicks для нескольких окон одновременно

Итак, если бы у меня было три окна, все из которых я хотел отправить ключу «w», мне нужно было бы сделать что-то вроде активного окна, как каждое в быстрой последовательности, а затем отправить ключ w.

Я хочу, чтобы иметь возможность делать это одновременно, так что это не будет работать очень хорошо.

ответ

1

Вы должны были бы знать имена окон заранее, т.е. перед запуском сценария .. Вы можете сделать это таким образом

#!/bin/bash 
for winname in "[email protected]" 
do 
    xdotool type --window $(xwininfo -int -name "$winname" | egrep -o 'Window id: [0-9]+' | cut -d ' ' -f 3) w 
done 

Выход

$./script1.bash "*Untitled 1 - Mousepad" "*(Untitled)" "[No Name] + - GVIM" 

Выше сценарий посылает w нажатие клавиши на все окно имена, указанные в командной строке.

PS: для меня 3 редакторов открыт в следующем порядке: Mousepad, Leafpad и GVim

+0

Все немного сложнее для меня, однако, после немного возиться, я заставил его работать нормально. Спасибо за помощь! Я просто должен понять, как это работает. – Raven

1

Вы можете использовать xdotool делать тяжелую работу за вас.
Он будет искать окно, используя имя, класс или имя класса (используйте xprop или xwininfo для получения информации).
Вот пример, который выведет «Hello World» во все запущенные записи документа libreoffice.