cliclick - シェルから利用できるmacOS用のマウス・キーボードエミュレーター

[PR]記事内のアフィリエイトリンクから収入を得る場合があります
  • URLをコピーしました!

S 2017 06 05 10 47 50

macOSのキーボード・マウス関連のアクションをエミュレーションをエミュレートすることができるツール「cliclick」。ターミナルやシェルスクリプトから呼び出すことが可能で、AppleScriptやGUI系のツールが利用しづらい場面で活用することができます。

OS X 10.6以降で動作し、BSD-3-ClauseでライセンスされたObjective-C製ソースコードがGitHubで公開されています。

マウスのクリックやドラッグ、キーのイベントなどをシェルから発行し、各種処理を自動化したい場合に利用できるツールです。

以下使用方法を説明します。

目次

cliclickの使用方法

cliclickの実行ファイルは公式サイトからダウンロードすることができます。またはMacPortsおよびHomebrewを利用してインストールすることもできます。

Homebrewの場合以下のコマンドでインストール可能です。

brew install cliclick

「cliclick -h」で利用可能なオプションが確認できます。

USAGE
  cliclick [-m ] [-f ] [-w ] [-r] command1 [command2] [...]

OPTIONS
  -r        Restore initial mouse location when finished
  -m  The mode can be either “verbose” (cliclick will print a
            description of each action to stdout just before it is
            performed) or “test” (cliclick will only print the
            description, but not perform the action)
  -f  Instead of passing commands as arguments, you may instead
            specify a file from which cliclick will read the commands
            (or stdin, when - is given as filename).
            Each line in the file is expected to contain a command
            in the same format/syntax as commands given as arguments
            at the shell. Additionally, lines starting with the hash
            character # are regarded as comments, i.e.: ignored. Leading
            and trailing whitespace is ignored, too.
  -w   Wait the given number of milliseconds after each event.
            If you find that you use the “wait” command too often,
            using -w could make things easier. Please note that “wait”
            is not affected by -w. This means that invoking
            “cliclick -w 200 wait:500” will wait for 700 milliseconds.
            The default (and minimum) value for -w is 20.
  -V        Show cliclick version number and release date
  -o        Open version history in a browser
  -d        Send a donation

COMMANDS
To use cliclick, you pass an arbitrary number of commands as arguments. A command consists of a command identifier (a string that tells cliclick what kind of action to perform) and usually one or more arguments to the command, which are separated from the command identifier with a colon. Example: “c:123,456” is the command for clicking (the “c” is the command identifier for clicking) at the position with x coordinate 123 and y coordinate 456. See below for a list of all commands and the arguments they expect.
Whenever a command expects a pair of coordinates, you may provide relative values by prefixing the number with “+” or “-”. For example, “m:+50,+0” will move the mouse 50 pixels to the right. Of course, relative and absolute values can be mixed, and negative values are possible, so “c:100,-20” would be perfectly valid. (If you need to specify absolute negative values in case you have a setup with a second display arranged to the left of your main display, prefix the number with “=”, for instance “c:100,=-200”.)

LIST OF COMMANDS

  c:x,y   Will CLICK at the point with the given coordinates.
          Example: “c:12,34” will click at the point with x coordinate
          12 and y coordinate 34. Instead of x and y values, you may
          also use “.”, which means: the current position. Using “.” is
          equivalent to using relative zero values “c:+0,+0”.

多数のコマンドが利用可能です。複数のコマンドを同時に指定することもできます。

もっとも簡単な指定の位置をクリックするコマンドは「cliclick c:10,10」のように実行します。cがマウスクリックを、その後の数字がクリックする座標を表しています。

S 20170605 105710

▲実際に実行してみると、座標の10,10に位置するアップルアイコンがクリックされ、メニューバーが表示されたことがわかります。

ドラッグ&ドロップをエミュレートすることもできます。dd:x,yは指定座標からのドラッグの開始を、du:x,yは指定座標へのドロップを表し、これを組み合わせます。

Drag and drop

すなわち「cliclick dd:30,30 du:100,100」と実行すると、その位置に存在した画像の位置が移動します。

まとめ

cliclickを利用すれば、ターミナルやシェルスクリプトからマウス・キーボードイベントをエミュレートすることができます。制限によりログインウィンドウを制御することはできないそうですが、開発作業や各種自動化に役立ちそうなツールです。

S icon タイトル cliclick
公式サイト https://www.bluem.net/en/mac/cliclick/
ソフトアンテナ https://softantenna.com/softwares/7580-cliclick
説明 シェルから利用できるmacOS用のマウス・キーボードエミュレーター。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次