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」にフォルダを置いて作業することになりますし、アクションを削除したい場合はこのフォルダから削除する必要があります。

Alfredで複数のアプリケーションを一括で起動するWorkflowの作成方法
macOSのシステム環境設定「Mission Control」の設定見直し
FontExplorer X Proを使ってフォントの管理を行う
Path Finder 8.5がリリース!ファイル圧縮形式の種類が増えたり、細かい機能がいくつか追加
npmをGUIで管理するアプリケーション「ndm – npm desktop manager」
メニューバーアイコン管理の鉄板ツール「Bartender 4」で使用頻度の高いアプリだけメニューバーに表示させる
macOSのシステム環境設定「アクセシビリティ」内にあるVoiceOverの設定見直し
MacDownでシンタックスハイライト機能を使う方法と設定
Google Chromeのブックマークを綺麗に整理するコツ
Keyboard Maestroのバージョン9.0がリリース!ダークモード対応やJSON関連のアクションが追加
iTerm2で「Use System Window Restoration Setting」を設定しているとアラートが表示されて機能しない
Google Chromeのサイト内検索(カスタム検索)機能を別のプロファイルに移行する方法
iPadで入力モードを切り替えずに数字や記号をすばやく入力する方法
iPhoneやiPadでYouTubeの再生速度を3倍速や4倍速にする方法
Keynoteで有効にしているはずのフォントが表示されない現象
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
AirPodsで片耳を外しても再生が止まらないようにする方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
Bartender 6で追加されたWidgets機能で自作メニューバーアイテムを簡単に作成する
Googleカレンダーを便利に活用するための小技集(祝日だけを表示・月末の繰り返しイベントを追加)
Obsidianを使った「自己流PKM」で行う知識トレーニング
テキストエディタ・ノートアプリ関連のショートカットキーをKeyboard Maestroで統一する
Path Finderを使ってキーボードだけでファイル操作する方法(応用編)
macOSのコマンドパレット比較!SpotlightとAlfred、Raycastどれを使えばいい?
1つのノートアプリにすべて集約するのをやめた理由|2025年時点のノートアプリの使い分け
Notionログイン時の「マジックリンク」「ログインコード」をやめて普通のパスワードを使う
AlfredでNotion内の検索ができるようになるワークフロー「Notion Search」