日本語キーボードでcliclickのテキスト入力を強引に使えるようにする

MacOSでのGUI操作自動化といえばAutomatorやActionScriptが挙げられますが、これらのツールでは操作できないケースがあったり、そもそも、単純に「この座標をクリック」とか、「ここでキー入力」という操作を記述したいというケースがあります。

そんな時に用いられるのがcliclickというコマンドツールです。cliclickはシェル上で、コマンド一発でマウスやキーボード操作を自動化できます。


# 座標100,100を右クリック
$ cliclick rc:100,100


これをつないで行くと一連の操作が書けるのですが、テキスト入力をしようとしたらこんなエラーメッセージが表示され、コマンドが途中で中断されます。

Sorry, cliclick cannot handle your keyboard layout, so emulating typing is not possible.

惜しい。なので、とりあえずなんとかしました。ほとんどテストしていないため、本当にこれでOKかは謎です。

ソースコード取得

ソースはこちらにあります。ので、これを取得します。

$ git clone https://github.com/BlueM/cliclick

XCodeで開く

XCodeを起動し、cliclick.xcodeprojを開きます。

コードを修正する

KeycodeInformer.mの51行目あたりに

keyboard = TISCopyCurrentKeyboardInputSource();


という記述があります。これを、

keyboard = TISCopyCurrentKeyboardLayoutInputSource();

に書き換えます。よーく見ると、ちょっと違う。
こちらの議論を参考にしました。

ビルドする

ビルドして実行ファイルを生成します。

実行ファイルを普段使うディレクトリにコピー

実行ファイルはこの辺りに出力されています。

~/Library/Developer/Xcode/DerivedData/(プロジェクト名 + ランダムな文字列)/Build/Products/[Release|Debug]

英数字程度なら、これで使えそうです。