ウェブサイト検索

Xdotool を使用して Linux でマウスのクリックとキーストロークを刺激する方法


Xdotool は、マウス クリックとキーストロークをシミュレートするための無料のオープン ソース コマンド ライン ツールです。この記事では、xdotool を使用してキーボードとマウスの入力を自動化するための簡単なガイドについて説明します。 Xdotool は X ディスプレイ サーバーでのみ動作し、Wayland はサポートされていません (この記事の執筆時点では)。

Xdotool のインストール

Ubuntu に xdotool をインストールするには、以下のコマンドを実行します。

$ sudo apt install xdotool

他の Linux ディストリビューションに xdotool をインストールするには、パッケージ マネージャーで「xdotool」という用語を検索します。 Xdotool は、ほとんどの Linux ディストリビューションのリポジトリに含まれています。

キーストロークをシミュレートする

以下のコマンドを実行すると、xdotool を使用してキーストロークをシミュレートできます。 「n」をキーボード レイアウトの有効なキーまたは文字に置き換えます。

$ xdotool key n

上記のコマンドは、キーを押すこととキーを離すことの両方を次々にシミュレートし、これらのイベント間の遅延に気付かないことに注意してください。それらを個別にシミュレートする場合は、次のコマンドを使用します。

$ xdotool keydown n
$ xdotool keyup n

修飾キーを使用してキーストロークをシミュレートする

修飾キーは、2 つ以上のキーが同時に押されたときのキー押下の動作を変更します。例えば。 など。 xdotool を使用してキーの組み合わせを実行するプロセスもかなり似ています。

$ xdotool key ctrl+s

次のコマンドを使用すると、キーボードのキーの正しい名前を見つけることができます。

$ xev

小さな窓が開きます。フォーカスを維持したまま、いずれかのキーを押します。ターミナル出力にキーの名前が表示されます。

リピートキー/ターボ/ラピッドファイアをシミュレート

一定期間にわたって複数のキー押下をシミュレートするには、キー押下をシミュレートする回数と、各キー押下間の遅延を指定する必要があります。これを行うには、次の形式でコマンドを実行します。

$ xdotool key --repeat 5 --delay 50 n

要件に応じて、「 –repeat 」および「 –lay 」スイッチの値 (ミリ秒単位) を置き換えます。遅延を 500 ミリ秒以上に設定すると、繰り返しの問題が発生することに注意してください。これはバグまたは意図された動作である可能性があります。同様の問題に直面している場合は、高い遅延値を設定しないでください。 「for 」および「while 」ループ ステートメントを使用すると、この制限を克服できます。

以下に示すコマンドは、「n」キーを 2 秒の間隔をあけて 3 回入力します。

$ for i in {1..3}; do xdotool key n; sleep 2; done

また、while ループを使用して、 キーを使用してループを手動で中断するまでキー入力を繰り返しシミュレートすることもできます。

$ while true; do xdotool key n; sleep 2; done

キーシーケンスをシミュレートする

複数のキーを次々にシミュレートするには、次の形式のコマンドを使用します。

$ xdotool key x y z

マウスクリックをシミュレートする

ポインタの現在の位置での右クリックをシミュレートするには、以下のコマンドを実行します。

$ xdotool click 3

「3 」を以下の参照の任意の数字に置き換えます。

  • 1 – 左クリック

  • 2 – 中クリック

  • 3 – 右クリック

  • 4 – ホイールを上にスクロールします

  • 5 – ホイールを下にスクロールします

別の座標セットを使用する場合は、次の形式のコマンドを使用します。

$ xdotool mousemove 100 100 click 3

「100 」を、画面の左上隅からの「X 」および「Y 」として希望の座標に置き換えます。

なお、これまでキーストロークで説明してきたさまざまな例は、マウスクリックでも使用できます。

アクティブなウィンドウを取得して最小化する

次のコマンドは、現在フォーカスされているウィンドウの ID を取得し、それを最小化します。

$ xdotool getactivewindow windowminimize

マニュアルページを参照してください

Xdotool には多数のオプションが含まれており、無数の異なる組み合わせを使用してキーストロークやマウス クリックの動作をカスタマイズできます。ここですべてのユースケースをカバーすることはできません。以下のコマンドを実行してマニュアル ページを参照できます。

$ man xdotool

オンラインでマニュアルページにアクセスすることもできます。

Xdotool コマンドとスクリプトをキーボード ショートカットにマップする

ディストリビューションのシステム設定で利用可能なキーボード ショートカット構成 GUI を使用して、単純な xdotool コマンドをカスタム キーボード ショートカットに割り当てることができます。複雑な複数のステートメントの場合は、コマンドをスクリプトに保存し、そのスクリプトをキーボード ショートカットにマップします。

結論

Xdotool は、Linux でキーボードとマウスの入力を自動化するために利用できる最高のユーティリティの 1 つです。複数のシミュレートされた入力を連鎖させることで、単純なマクロだけでなく複雑なコマンドも実行できます。

関連記事: