Mousetroke GitHub
日本語 ▾
ガイドの目次

キー送信の構文#

まずショートカットから#

キーを送るに ^c を貼り付けると Windows で Ctrl+C を、#c を貼り付けると Mac で Command+C を送ります。記録をクリックして組み合わせを押し、完了をクリックしても構いません。Lua は ms.keys(sequence) で同じ構文を使います。

文字は通常、US キーボードの位置のキーを表します。abc は A、B、C を順に押します。大文字の ABC でも Shift は付きません。Shift+A には +a を使います。Unicode や固定テキストはテキストとエスケープとクリップボードの使用例を参照してください。

修飾キーとグループ#

プレフィックスWindowsMac
^CtrlControl ⌃
%AltOption ⌥
+ShiftShift ⇧
#WinCommand ⌘

プレフィックスは、次のキーか括弧のグループに適用されます。^+t は Ctrl+Shift+T を送ります。^(ac) は Ctrl を A と C の両方に適用します。^ac は Ctrl を A だけに適用します。グループは入れ子にでき、括弧は対応させてください。グループの修飾キーは各キー動作に個別に付くため、キーの間も修飾キーが押され続けると期待しないでください。末尾に単独の修飾プレフィックスだけではキー押下になりません。修飾キー自体を送る必要があるときは、たとえば {CTRL} を使ってください。

Lua の ms.is_keys_pressed は、両プラットフォームで照会時点の全キーと修飾キーの和集合を確認します。^ac は Control、A、C が同時に押されていることを要求します。プレフィックスはどちらかの側で満たされ、明示的な {LCTRL}/{RCTRL} は側を保持します。繰り返しは無視され、SLEEP・テキスト・マウス・ホイールのステップがあると false を返します。過去に押したキーの並びは認識しません。

キー名、繰り返し、待機#

Enter には {ENTER} を使います。キー名の大文字小文字は区別されません。{LEFT 3} は Left を 3 回押します。正の回数はキーを繰り返し、0 以下の回数は 1 回にフォールバックします。{SLEEP 100} は 100 ms 待ちます。0 以上の整数が必要です。キー名と引数の間はスペースで区切ります。

例:Windows の ^c{SLEEP 100}^v はコピーし、少し待ってから貼り付けます。Mac では #c{SLEEP 100}#v です。

次の表は、パーサーが受け付けるキー名(別名と番号付きの F キー・テンキーの全キーを含む)を列挙します。ASCII の 1 文字(対応する US 句読点を含む)も波括弧の中に書けます。たとえば {a} や {+} です。

キー名意味
{ENTER}, {RETURN}Enter
{ESC}Escape
{TAB}Tab
{BACKSPACE}Backspace
{SPACE}Space
{CAPSLOCK}Caps Lock
{INSERT}, {INS}Insert(Windows 専用)
{DELETE}, {DEL}Delete/前方削除
{HOME}, {END}Home/End
{PGUP}, {PGDN}Page Up/Page Down
{UP}, {DOWN}, {LEFT}, {RIGHT}方向キー
{PRTSC}Print Screen(Windows 専用)
{BREAK}Break(Windows 専用)
{MEDIA_NEXT}, {MEDIA_PREV}, {MEDIA_STOP}, {MEDIA_PLAY}, {MEDIA_PLAY_PAUSE}メディアキー(キー列では Windows 専用)
{VOLUME_MUTE}, {VOLUME_DOWN}, {VOLUME_UP}音量キー(キー列では Windows 専用)
{CTRL}, {ALT}, {SHIFT}Control/Alt(Mac では Option)/Shift
{LCTRL}, {RCTRL}, {LSHIFT}, {RSHIFT}, {LALT}, {RALT}左右の修飾キー。Alt は Mac では Option
{LWIN}, {WIN}, {RWIN}Windows キー。Mac では Command
{F1}, {F2}, {F3}, {F4}, {F5}, {F6}, {F7}, {F8}, {F9}, {F10}, {F11}, {F12}, {F13}, {F14}, {F15}, {F16}, {F17}, {F18}, {F19}, {F20}, {F21}, {F22}, {F23}, {F24}ファンクションキー。Mac は F1~F20 に対応
{N0}, {N1}, {N2}, {N3}, {N4}, {N5}, {N6}, {N7}, {N8}, {N9}テンキーの数字 0~9
{MOUSE_LEFT}, {MOUSE_RIGHT}, {MOUSE_MIDDLE}, {MOUSE_X1}, {MOUSE_X2}マウスクリック(Windows 専用)
{MOUSE_WHEEL}, {MOUSE_HWHEEL}ホイール。例:{MOUSE_WHEEL 120}、{MOUSE_HWHEEL -120}(Windows 専用)
{SLEEP}待機。例:{SLEEP 100}、ミリ秒

マウスボタンとホイール#

Windows は {MOUSE_LEFT}、{MOUSE_RIGHT}、{MOUSE_MIDDLE}、{MOUSE_X1}、{MOUSE_X2} をクリックとしてサポートします。{MOUSE_LEFT 2} は 2 回クリックします。ポインターは移動しません。

{MOUSE_WHEEL 120} は 1 目盛り上へスクロールし、-120 は下へスクロールします。{MOUSE_HWHEEL 120} は右へ、-120 は左へスクロールします。引数は繰り返し回数ではなく、符号付きのホイール差分です。これは注入入力の慣例で、録画されたジェスチャーのホイールステップとは符号が異なります。

Mac はこれらのトークンを解析しますが、入力の実行時にマウスとホイールの動作をスキップします。ms.keys で Mac のクリックやスクロールを合成することはできません。

テキストとエスケープ#

テキスト優先モードは Lua の ms.keys(s, true) だけで使えます。キーを送るエディターは常にキーモードです。通常の文字は Unicode テキストになりますが、^、%、+、#、括弧、開き波括弧は引き続き構文として解釈されます。波括弧の中の 1 文字は、テキスト優先モードでもキー動作のままです。

テキスト優先モードの中でショートカットを送るには、キーを波括弧で囲みます。^{c} は Ctrl+C を、#{c} は Command+C を送ります。このモードで波括弧なしの ^c はテキストの c を出力し、修飾キーを破棄します。通常のキーモードで ms.keys("^c") を別に呼ぶこともできます。

文字キー列での書き方
^{^}
%{%}
+{+}
#{#}
({(}
){)}
{{{}
}}(波括弧なし)

バックスラッシュはキー列のエスケープ文字ではありません。引用符付きの Lua 文字列では 1 つのバックスラッシュに "\\" と書くか、長括弧文字列を使ってください。構文記号を含む任意のテキストには、クリップボードの方法で両方のエスケープを避けられます。

よく使うショートカット#

これらは、操作先のアプリケーションとオペレーティングシステムのショートカット設定に依存します。

目的Windows のキー列Mac のキー列
コピー^c#c
貼り付け^v#v
切り取り^x#x
すべて選択^a#a
元に戻す^z#z
新しいタブ^t#t
タブを閉じる^w#w
閉じたタブを開き直す^+t#+t
次のタブ^{TAB}^{TAB}
前のタブ^+{TAB}^+{TAB}
アプリの切り替え%{TAB}#{TAB}
前後のデスクトップ#^{LEFT} / #^{RIGHT}^{LEFT} / ^{RIGHT}
領域のスクリーンショット#+s#+4
デスクトップの表示#d{F11}
タスク マネージャー/アクティビティモニタ^+{ESC}アプリを開くで com.apple.ActivityMonitor
画面のロック#l^#q

Ctrl+Alt+Del を送れない理由#

Ctrl+Alt+Del は Windows の Secure Attention Sequence です。Windows はこのシーケンスに対する通常の合成入力を無視するため、^%{DEL} ではセキュリティ画面を開けません。タスク マネージャーには ^+{ESC} を、ロックには #l を使ってください。サインアウトには shutdown /l を含むコマンドを実行の動作を使います(セッションが終了します)。

制限とプラットフォームの注意点#

共有パーサーには、文字列長や繰り返し回数の全体的な上限はありません。繰り返し回数と待機時間は符号なし 32 ビット、ホイール差分は符号付き 32 ビットで保存されます。範囲外の値は変換時に折り返すことがあるため、実際的な小さい値を使ってください。不正なキー名や必須引数の不足はパースエラーになり、エディターは入力中に検証します。

Windows はワーカースレッドでシーケンスを実行し、{SLEEP ms} のあいだスリープします。Mac はタイマー駆動のバッチで入力を送ります。Mac では 16,384 バイトを超える動作文字列が拒否されます。解析済みの Lua 入力では、上限は 16,384 動作と、テキスト動作ごとに 16,384 バイトです。待機キューは 64 項目まで保持し、超過した入力は破棄されてログに記録されます。

Mac では F1~F20、テンキーの数字、マッピングされたナビゲーションキーが使えます。Insert/INS、PRTSC、BREAK、F21~F24、メディア/音量トークン、マウス/ホイールトークンは非対応でスキップされます。メディアと音量にはメディアとシステムを使ってください。ms.keys_down と ms.keys_up は Windows 専用です。Lua APIを参照してください。

まずはひとつの日常ジェスチャーから

Mousetroke を無料でダウンロードして、最初のジェスチャーを設定しましょう。Windows と Mac ベータ版で利用できます。