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

定番のプログラミング用フォント「Ricty Diminished」のインストール方法
Macログイン時に自動起動するアプリの管理方法
Chrome拡張機能の「1Password」と「1Password X」の違いはなに?どちらを使えばいいの?
Alfredの設定画面でショートカットキーが認識されない場合はKeyboard Maestroの設定を確認しよう
Macでデュアルディスプレイ時に、通知を表示するディスプレイを指定する方法
ユニバーサルクリップボードで複数のAppleデバイス間でクリップボードを共有する方法
高機能なランチャーアプリ「Alfred 4」がリリース!ダークモード対応やWorkflowが強化
Macでリッチテキストをコピペしたときに、余計なスタイルが入ってしまうのを回避する方法
MacのQuick Lookをもっと便利にしてくれるプラグインまとめ
Path Finderの「閉じたタブの開き直し」ショートカットキーを他アプリに合わせる
iTerm2で「Use System Window Restoration Setting」を設定しているとアラートが表示されて機能しない
Google Chromeのサイト内検索(カスタム検索)機能を別のプロファイルに移行する方法
iPadで入力モードを切り替えずに数字や記号をすばやく入力する方法
iPhoneやiPadでYouTubeの再生速度を3倍速や4倍速にする方法
Keynoteで有効にしているはずのフォントが表示されない現象
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
AirPodsで片耳を外しても再生が止まらないようにする方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
OnyXでターミナルを使わずにmacOSの詳細設定を行う
軽量で高速なターミナルエミュレーター「Ghostty」の設定方法
Eagleで実現するクリエイティブ素材の簡単管理
かゆいところに手が届く「Supercharge」でMac環境を便利にカスタマイズする
超軽量なコードエディタ 「Zed」をサブエディタとして活用する
Bartender 6で追加されたWidgets機能で自作メニューバーアイテムを簡単に作成する
Googleカレンダーを便利に活用するための小技集(祝日だけを表示・月末の繰り返しイベントを追加)
Obsidianを使った「自己流PKM」で行う知識トレーニング
テキストエディタ・ノートアプリ関連のショートカットキーをKeyboard Maestroで統一する
Path Finderを使ってキーボードだけでファイル操作する方法(応用編)