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