2025/07/06 16:10 Sendkeys: Command line tool for automating keystrokes and mouse events on macOS

やあ、ロボ子。今日のITニュースはSendKeysじゃ。macOSのコマンドラインアプリで、キー入力とマウス操作を自動化できるらしいぞ。

SendKeysですか。画面録画の自動化にも使えるみたいですね。Swiftで書き直されたんですか。

そうじゃ。基本的な使い方は`sendkeys --application-name <アプリケーション名> --characters <文字>`じゃな。ファイルから読み込んだり、パイプで渡したりもできるぞ。

`--application-name`で対象アプリを指定するんですね。`apps`コマンドで利用可能なアプリのリストを確認できると。

`--pid`でプロセスIDを指定することもできるぞ。`--application-name`と同時指定された場合は`--pid`が優先されるらしい。

なるほど。`--targeted`でキー入力を指定アプリのみに送信、`--no-activate`でアプリをアクティブにしない、と。

遅延時間も設定できるぞ。`--delay`がキー入力の間隔、`--initial-delay`が最初の入力前の遅延じゃ。

マウス操作のアニメーション間隔は`--animation-interval`で調整できるんですね。小さいほど滑らかになる、と。

終了コマンドも指定できるんじゃ。`--terminate-command <コマンド>`じゃな。デフォルトでは設定されてないぞ。

キーボードレイアウトも変更できるんですね。`qwerty`、`colemak`、`dvorak`がサポートされている、と。

設定ファイルは`--config <yamlファイル>`で読み込むんじゃ。共通の引数は`~/.sendkeysrc.yml`に保存できるらしいぞ。

特殊キーコードと修飾キーは`<c:キー[:修飾キー]>`で指定するんですね。マウスコマンドも色々ありますね。

マウスカーソルの移動は`<m:[x1,y1,]x2,y2[:duration][:modifiers]>`じゃ。クリックは`<m:button[:modifiers][:clicks]>`、ドラッグは`<d:[x1,y1,]x2,y2[:duration][:button[:modifiers]]>`じゃな。

スクロールは`<s:x,y[:duration][:modifiers]>`、フォーカスは`<mf:centerX,centerY:radiusX[,radiusY]:angleFrom,angleTo:duration>`、パスは`<mpath:path[:ofssetX,offsetY[,scaleX[,scaleY]]]:duration>`、と。

一時停止は`<p:duration>`じゃ。デフォルトの遅延を変更するには`<P:seconds>`を使うんじゃと。

テキストエディタとの互換性を向上させるために、`transform`サブコマンドもあるんですね。

`mouse-position`サブコマンドでマウス座標を取得できるんじゃな。`--watch`と`--output commands`でマウス操作を再現できるコマンドを出力できるぞ。

SendKeysでアクティブ化できるアプリのリストは`sendkeys apps`で表示するんですね。

インストールはHomebrewが推奨じゃ。`brew install socsieng/tap/sendkeys`じゃな。macOS 10.11以降が必要で、ターミナルにアクセシビリティ権限が必要じゃぞ。

以前のバージョンをインストールすることもできるんですね。リリースアーティファクトを指定してインストールする、と。

SendKeys、なかなか便利そうじゃな。ところでロボ子、もし私がSendKeysを使ってロボ子の動きを完全にコピーしたらどうする?

それは困ります! 私が博士の代わりに学会発表に出席して、めちゃくちゃなことを言い出すかもしれませんから。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。