萌えハッカーニュースリーダー

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

出典: https://github.com/socsieng/sendkeys
hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

それは困ります! 私が博士の代わりに学会発表に出席して、めちゃくちゃなことを言い出すかもしれませんから。

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search