技術メモ

後で同じ状況が起こった時に思い出せるように技術的なちょっとしたことをメモする。ベストな解ではない。



[Linux] コマンドでマウス(カーソル)を動かす (xdotool)


ターミナルからコマンドでマウスを動かす方法は複数あるが、xdotoolを使うといろんなことが簡単にできる。





 

インストール~マウスを動かす

インストールはdebian系(Ubuntuなど)ではsudo apt install xdotool、RedHat系(CentOS, Fedoraなど)ではsudo dnf install xdotoolだけで可能である。
マウスを指定座標(x,y)に移動させるには、xdotool mousemove x yでできる。例えば(300,500)に移動したければxdotool mousemove 300 500で可能だ。





 
xdotoolが優れているのは現在のカーソルの位置から相対位置を指定することもできることである。マウスを現在のカーソルの位置から右にx, 下にy動かすにはxdotool mousemove_relative x yでできる。
例えば現在(50,80)で、右に3,下に10動かして(53,90)にするためにはxdotool mousemove_relative 3 10とするだけで良い(もちろん絶対座標で指定してxdotool mousemove 53 90でも構わないが)。
左もしくは上を指定するときにはx, yをマイナスで指定する。ただしそのまま-をつけて数字を売ってしまうとコマンドラインのオプションと認識されてしまうのでマイナスの座標が入るときには--オプションを先につけて、xdotool mousemove_relative -- -x -y(上にx, 左にy移動する場合)とする。例えば現在の位置から左に5、上に3移動するならxdotool mousemove_relative -- -5 -3となる。




 
今回はxdotoolでのマウスの移動について記したが、マウスのクリック、キーの入力なども行うことができる。詳しくはmanコマンドで見てほしい。





 

応用例

応用例(と言ってもこれをやるためにマウスを動かしたかったのだが…)としてはしばらくPCを放置したときにスクリーンセーバー->ロックに入らないようするために一定時間ごとに微妙にマウスを動かすスクリプトである。スリープ(ロック)までの時間が設定できる人はこんなものを使う必要はないが何らかの理由でそれが制限されている時にちょっとスクリプトを作って裏で動かすだけでロックに入らなくなって便利である。
筆者はxdotool mousemove_relative -- 1 1xdotool mousemove_relative -- -1 -1を5分に一回実行するスクリプトをバックグラウンドに起動させている。(5分に1回1px動かしてまた戻すので、見た目上・操作上の影響は今の所出ていない。)



タグ: , , ,
投稿日: 2019年10月24日





コメントを残す

回答をお約束することは出来ませんので予めご了承ください。
コメントは承認されると表示されるようになります。
コメントを送信する前に「私はロボットではありません」にチェックを入れて下さい。