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

macOSのシステム環境設定「Siri」の設定見直し
ちょっとした作業をラクにするアプリとそのTips #1日1Tips – 2019年9月
weblocファイルを作成してサイトのリンク情報をFinder上に保存しておく方法
PCの単語登録(辞書登録機能)の辞書分類やルールについて改めて考えてみる
1Passwordでウェブサイトの入力フォームを一瞬で入力する方法
Macのホームディレクトリにある設定ファイルをDropboxで管理する
「SimpleExtManager」でChrome拡張機能のオン・オフを素早く行う
Apple Watchでスクリーンショットを撮る方法
ATOKの変換領域(文節区切り)を選択しやすくするカスタマイズ
スニペットとしてもドキュメント検索としても使える「Dash 6」でコードや定型文を管理する
iTerm2で「Use System Window Restoration Setting」を設定しているとアラートが表示されて機能しない
Google Chromeのサイト内検索(カスタム検索)機能を別のプロファイルに移行する方法
iPadで入力モードを切り替えずに数字や記号をすばやく入力する方法
iPhoneやiPadでYouTubeの再生速度を3倍速や4倍速にする方法
Keynoteで有効にしているはずのフォントが表示されない現象
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
AirPodsで片耳を外しても再生が止まらないようにする方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
かゆいところに手が届く「Supercharge」でMac環境を便利にカスタマイズする
超軽量なコードエディタ 「Zed」をサブエディタとして活用する
Bartender 6で追加されたWidgets機能で自作メニューバーアイテムを簡単に作成する
Googleカレンダーを便利に活用するための小技集(祝日だけを表示・月末の繰り返しイベントを追加)
Obsidianを使った「自己流PKM」で行う知識トレーニング
テキストエディタ・ノートアプリ関連のショートカットキーをKeyboard Maestroで統一する
Path Finderを使ってキーボードだけでファイル操作する方法(応用編)
macOSのコマンドパレット比較!SpotlightとAlfred、Raycastどれを使えばいい?
1つのノートアプリにすべて集約するのをやめた理由|2025年時点のノートアプリの使い分け