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

サイト上のSVG画像を簡単に保存できるChrome拡張機能「svg-grabber」
MacでYouTubeの動画再生速度を4倍速にする方法
Macの高機能diffツール「Kaleidoscope」
Homebrew Caskで自分がMacにインストールしているアプリの管理を行う
macOSのシステム環境設定「Dock」の設定見直し
Drive File Streamで接続しているGoogle Drive内の検索をするAlfred Workflowの作成方法
バッテリーの減りが早い?Macのバッテリー状態を確認する方法
いつも使っているアプリがタブに埋もれるのを防止するアプリ「Biscuit(ビスケット)」
AlfredでNotion内の検索ができるようになるワークフロー「Notion Search」
Google Chromeをショートカットキーで操作できるようにする
iTerm2で「Use System Window Restoration Setting」を設定しているとアラートが表示されて機能しない
Google Chromeのサイト内検索(カスタム検索)機能を別のプロファイルに移行する方法
iPadで入力モードを切り替えずに数字や記号をすばやく入力する方法
iPhoneやiPadでYouTubeの再生速度を3倍速や4倍速にする方法
Keynoteで有効にしているはずのフォントが表示されない現象
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
AirPodsで片耳を外しても再生が止まらないようにする方法
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
1つのノートアプリにすべて集約するのをやめた理由|2025年時点のノートアプリの使い分け
Notionログイン時の「マジックリンク」「ログインコード」をやめて普通のパスワードを使う
Gitで1行しか変更していないはずのに全行変更した判定になってしまう
Macでアプリごとに音量を調節できるアプリ「Background Music」
Macのターミナルでパスワード付きのZIPファイルを作成する方法
MacBook Proでディスプレイのサイズ調整をして作業スペースを広げる
SteerMouseの「自動移動」機能で保存ダイアログが表示されたら自動でデフォルトボタンへカーソルを移動させる
iPhoneでタッチが一切効かなくなった場合に強制再起動する方法