2013-08-01 4 views
0
xprop | grep WM_CLASS\(STRING\) 

После ввода этого термина в терминал мне нужно щелкнуть по окну, чтобы получить результат.Автоматически вызывать xprop в названной точке на рабочем столе (X11, Ubuntu)

Я хочу автоматизировать это. Я хотел бы получить имя WM_NAME-Window в именованной позиции, скажем, x = 10 и y = 40 (BFB).

xprop | grep WM_NAME\(STRING\) 
sleep(1) 
xdotool mousemove 10 40 click 1 

Каждая команда сама по себе работает, но не все вместе. Как я могу поместить это в скрипт, который выполняет все команды?

+0

Wny не использовать идентификатор или имя окна? –

ответ

0

Проблема в том, что xprop блокирует щелчок мышью, поэтому это необходимо сделать в фоновом режиме. wait не является абсолютно необходимым, но делает скрипт более чисто, ожидая завершения xprop.

#!/bin/bash 
xprop | grep WM_NAME\(STRING\) & 
pid=!$ 
sleep 1 
xdotool mousemove 10 40 click 1 
wait $pid 
+0

Сэр, спасибо большое, он работает :) – user2366975

+0

Хм, было бы неплохо сбросить мышь на предыдущую позицию. Вы знаете, как это сделать? – user2366975

+0

Попробуйте xdotool mousemove 10 40 click 1 mousemove restore – parkydr

0

Чтобы получить что питон код, если кто-то интересуется:

import subprocess as s 

p=s.Popen(["xprop", "WM_NAME"], stdout=s.PIPE) 
r=s.Popen(["xdotool", "mousemove", "10", "40", "click", "1", "mousemove", "restore"], stdout=s.PIPE) 

out, err = p.communicate() 
print(out) 

Если вы хотите немного изменить выход, типа «WM_CLASS».