Keyboard MaestroのThird Party Plug Insの作り方

Keyboard MaestroでThird Party Plug Insを作ってみたかったので、作り方をまとめました。
基本の設定
必要ファイル
Keyboard MaestroのThird Party Plug Insに必要なファイルは下記の3つです。
| ファイル | 入力内容 |
|---|---|
| スクリプトファイル | AppleScriptなら.scptファイル、シェルスクリプトなら.shを用意。中にプラグインの処理を書く |
| Icon.png | アクションに表示されるアイコン画像(64px × 64pxがベスト) |
| Keyboard Maestro Action.plist | アクションのタイトルや、入力項目を設定するファイル |
この3つを用意します。
Keyboard Maestro Action.plistの最低限の記述
Keyboard Maestro Action.plistで、アクションのタイトルや項目などの設定を入力します。
書き方は、<key>と<string>(もしくは<array>)がセットになっていて、<key>で項目を設定して、次の行の<string>で値を入力します。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Name</key>
<string>アクションの名前</string>
<key>Script</key>
<string>Action.scpt</string>
<key>Icon</key>
<string>Icon.png</string>
<key>Title</key>
<string>アクション上のタイトルに表示する項目</string>
<key>Parameters</key>
<array>
<dict>
<key>Label</key>
<string>ラベル名</string>
<key>Type</key>
<string>TokenString</string>
</dict>
</array>
</dict>
</plist>
<string>に入力する内容は下記の通りです。上記のサンプルコードはあくまでも最低限の設定なので、他に項目を追加したい場合は追加してください。
| key | stringに入力する内容 |
|---|---|
| Name | アクションの名前を入力 |
| Script | スクリプトファイルの名前を入力(拡張子も含める) |
| Icon | アイコン画像の名前を入力(基本はIcon.png) |
| Title | アクションの上の方に表示するタイトルを入力 |
| Timeout | タイムアウトまでの時間を秒単位で設定する(デフォルトは99時間) |
| Author | アクションの作者を入力 |
| URL | 作者に関連するURLを入力 |
| Help | ツールチップに表示させるヘルプ用の文章を入力 |
| Results | スクリプトの出力をどうするか設定する 設定できる値は下記の通り(複数選択する場合は |で区切る)
|
| Parameters | この先でアクションに表示させる項目を設定する |
アクションに表示させる項目の作成
<key>Parameters</key>の次の<array>内に、アクションに表示させる項目を設定していきます。
書き方の基本としては、先ほどの<key>で項目を設定して、次の行の<string>で値を入力するのと一緒です。
ただし、「<dict>で囲った部分が行になる」とだけ覚えておきましょう。
<key>の値でよく使うのは、ラベルを設定する「Label」と、入力項目を設定する「Type」のどちらかです。
| key | stringに入力する内容 |
|---|---|
| Label | ラベル名を入力する |
| Type | 入力フォームを設定する |
| Default | TypeでPopupMenuを選んだ場合は、 セレクトボックスのデフォルトの値を設定する |
| Menu | TypeでPopupMenuを選んだ場合は、 セレクトボックスの中身を設定する(選択肢は |で区切る) |
ちなみに、「Label」はあとで値を取得するために必須になってくるので、必然的にLabelとTypeは交互に入力することになります。
そして、この「Type」の次の行の<string>で、項目を選択します。
| stingに入力する内容 | 表示される項目 |
|---|---|
| String | 1行の文字入力欄 |
| TokenString | Tokenが入力できる1行の文字入力欄 |
| Calculation | 計算ができる文字入力欄 |
| Text | 複数行の文字入力欄 |
| TokenText | Tokenが入力できる複数行の文字入力欄 |
| Checkbox | チェックボックス |
| PopupMenu | セレクトボックス |
これらを組み合わせて、自分の作りたいアクションに必要な項目を作成していきます。
スクリプトファイルの作成
今回はAppleScriptで処理を書いていく方法をご紹介します。
普通にAppleScriptを書けばいいだけなのですが、Keyboard Maestroのアクション項目で入力した値を引っ張ってくるには、下記のコードで「Label」に入力した値を「KMPARAM_ラベル名」の形式で入力します。
set 変数名 to system attribute "KMPARAM_Label_Name"ちなみに、「Label」に半角スペースを入力している部分は、全て_(アンダースコア)に変更すると読み取ってくれます。
あとはこの変数名を使って処理を書いてあげればOK。
アクションの読み込み方
アクションを読み込む方法は2通りあります。
- 必要ファイルが入ったフォルダをZip形式で圧縮してKeyboard Maestroのアイコンにドラッグアンドドロップする方法
- 必要ファイルが入ったフォルダを、「Keyboard Maestro Actions」に格納する
「Keyboard Maestro Actions」フォルダは、下記パスにあります。
~/Library/Application\ Support/Keyboard\ Maestro/Keyboard\ Maestro\ Actions開発中はこの「Keyboard Maestro Actions」にフォルダを置いて作業することになりますし、アクションを削除したい場合はこのフォルダから削除する必要があります。

Google日本語入力のRomaji tableを設定して、ローマ字入力する感覚で絵文字を表示させる方法
撮影したスクリーンショットを、Hazleを使って自動的にImageOptimで画像圧縮する方法
Google Chromeに「タブを検索」機能が追加!開いているタブや最近閉じたタブから検索が可能に!
Client Folder Makerをショートカットキーからすぐ実行できるようにする
動画の圧縮をFinder右クリックメニューの「選択したビデオファイルをエンコード」から行う
Gmailでよく使う文章をテンプレートとして保存・使用する方法
Alfredを立ち上げたら自動で入力モードを「英数」に切り替える設定方法
Keyboard MaestroでGoogle Chromeのタブグループ化にショートカットキーを割り当てておく
BetterTouchToolを使って、ショートカットキーでAirPods ProをMacBook Proに接続する方法
macOSのコマンドパレット比較!SpotlightとAlfred、Raycastどれを使えばいい?
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
Macで画像の一括リサイズを行いたいときは、プレビュー.appを使う方法が手軽!
カーソルハイライトや入力したキーの表示など、デモに便利な機能が使える「Mouseposé」
クリップボード履歴を管理しよう!
Figmaで様々なグラフ・チャートが作れて、詳細な見た目の設定もできるプラグイン「Chart」
デフォルトのままじゃもったいない!Google日本語入力での品詞の設定方法と意味まとめ
手軽にコーディングの勉強ができるCodePenをもっと便利に使うための設定
macOS CatalinaでもQuick Lookのサードパーティー製プラグインを使う方法
Visual Studio CodeでCSVの編集を見やすく行う拡張機能「Edit csv」
Sketchのメニューバーにショートカットキーを割り当てる方法