[Raspberry Pi] xautomation でマウス、キーボード操作を自動化する

Raspberry Pi でマウスやキーボード操作を自動化する xautomation を試してみた。

環境:Raspberry Pi 3 B+、Raspbian Stretch

xautomation のインストールは簡単だ。

$ sudo apt-get install xautomation

マウスカーソルの現在の座標を取得するには以下。

$ xmousepos

すると、以下のような4つの値が返ってくるが、前の2つが画面左上からの座標(x, y)、後ろの2つがウィンドウ左上からの座標(x, y)みたい。

276 235 202 144

指定座標(x, y)へのマウスカーソルの移動は以下。

$ xte 'mousemove x y'

現在のマウスカーソル位置でのクリックは以下(1が左クリック、2がホイールクリック、3が右クリック)。

$ xte 'mouseclick 1'

すなわち、指定座標へ移動してそのままクリックするには連続したコマンドにすればいい。

$ xte 'mousemove x y' && xte 'mouseclick 1'

k とキー入力するには以下。

$ xte 'key k'

abcde と文字列を入力するには以下。

$ xte 'str abcde'

SSH 経由でこれらのコマンドを使うには頭に DISPLAY=:0 を付ける。例えば以下。

$ DISPLAY=:0 xte 'mouseclick 1'

同じようなツールに xdotool というものもあるようだが、試していない。

xautomation を使えば、今までできそうでできなかった、かゆいところに手が届くちょっとしたことが実現できそう。

参考:
linuxでの作業が簡単に自動化できるxautomationを試してみた。 | サラリーマンがハッカーを真剣に目指す
http://bttb.s1.valueserver.jp/wordpress/blog/2017/07/15/linuxでの作業が簡単に自動化できるxautomationを試してみた/

xautomation自動マウス&キーボード操作マニュアル | 外道父の匠
http://blog.father.gedow.net/2012/07/27/xautomation-auto-mouse-keyboard-manual/

Simulate keyboard and mouse events with xdotool on a Raspberry Pi – The Embedded Lab
https://theembeddedlab.com/tutorials/simulate-keyboard-mouse-events-xdotool-raspberry-pi/

シェルコマンド1行で複数コマンドや条件に応じた実行をする – Qiita
https://qiita.com/wwwaltz/items/9ee247ee8fe3ab63fd27