きみにもできる!ちょうお手軽なPopClip拡張のつくりかた
さっきのつづきー。
Githubで公開したATOKイミクル用の拡張の内容をひもときながら、PopClipの拡張ってじつはすごく簡単に作れることを解説しちゃうね。
プログラミングの知識すら必要ないんだよ!
まず
PopClipの拡張を作るのに必要な情報は、すべてここで公開されている。
わからないことがあったら、上のドキュメントを参照するか、ドキュメントからリンクされている拡張の内部をのぞいて、何をやっているのか調べるといいよ。
フォルダをつくる
新しいフォルダをつくって、そのフォルダに.popclipextという拡張子をつける。
PopClipインストール済みの環境であれば、これだけで、そのフォルダはPopClip拡張のパッケージとみなされる。
macOSにおけるパッケージはただのフォルダ。
内容にアクセスしたい場合は、Finderでパッケージを右クリックして、コンテキストメニューから「パッケージの内容を表示」すればいい。
Config.plistを書く
作成したフォルダの下に、Config.plistというファイルをつくる。
実体はただのテキストファイル。
プログラミングの知識がいらないって書いたのはうそじゃない。
かんたんな拡張であれば、このConfig.plistを適切に書くだけで実現できるんだ!
Config.plistだけで実現できる拡張
サービスを呼び出す
PopClipから、macOSの標準機能であるサービスを呼び出すことができる。
さっき紹介したATOKイミクル用の拡張も、自前ですごいことをやっているわけじゃなくて、ATOK側が用意してくれたサービスを呼び出しているだけなんだ。
PopClipからサービスを呼び出すには、所定の場所に、サービスメニューの文言(たとえば、ATOKイミクルの場合は「ATOKイミクルで検索」)を正確に記入するだけでいい。
ショートカットキーを押す
選択文字列を対象に、ショートカットキーが押されたという情報を発信できる。
PopClipはポインティングデバイス操作時の煩雑さを解消するためのアプリだから、ポインティングデバイスから手を離さずにショートカットを押せるだけで、十分うれしいよね。
ショートカットキーは、文字もしくはキーコードと、拡張キーのビットマスクを指定する形式。
<key>Key Combo</key> <dict> <key>keyCode</key> <integer>51</integer> <key>modifiers</key> <integer>0</integer> </dict>
みたいに指定する。
くわしくは上のドキュメントの最後を見てね。
URLを呼び出す
たとえば、
<key>URL</key> <string>http://translate.google.com/?langpair=auto%7Cauto&text={popclip text}</string>
みたいに、選択した文字列を引数にして、特定のURLを呼び出すことができる。
Config.plistの例
これがATOKイミクル用拡張の実際のConfig.plist.
項目の意味を説明していくね。
Actions
文字列を選択したときに表示されるPopClipのアクションを指定する。
Titleにはアクションのタイトルを入力。
さっき説明したとおり、ここではOS標準のサービスを呼び出している。
この場合、Service Nameに、サービスメニューの文言を入力するだけでいい。
Apps
このPopClip拡張に関する情報を記入する欄。
- Extension Name
- 拡張の名前。
- Extension Identifier
- 拡張の識別子。ほかとかぶらないものにする必要がある。
- Extension Description
- 拡張に関する説明。
- Check Installed
- この項目をTrueにすると、Bundle Identifier (String)もしくはBundle Identifiers (Array) にバンドル識別子が記載されたアプリケーションがインストールされているかどうか、拡張の実行時にチェックが行われる。インストールされていない場合、Linkで指定されたURLを開くかどうか尋ねられる。Nameはその際に表示されるアプリケーション名。
- Requirements
- 拡張もしくはアクションがメニューに表示される条件を指定できる。上の場合、「コピー」が利用できる環境でなければ、拡張はメニューに表示されない。
まめちしき
アイコン画像は必須ではない
たまに誤解している人がいるけど、PopClipの拡張でAppsやActionsに指定するアイコン画像は必須じゃない。
あくまでオプション。
わざわざアイコンを自作しなくても、PopClipの拡張は作れるんだ!
AppsのImage Fileはアクション一覧の左側に表示されるもの。
すぐ横に拡張のタイトル文字列が表示されているから、アイコンがなくても内容はわかる。
アクションにImage Fileを指定しなかった場合、Title欄に入力した文字列がそのまま使われる。
タイトルを長くするとポップアップの横幅が長くなりすぎてしまうから、ATOKイミクル用拡張では、イミクルの「イ」だけをタイトルにしている。
絵心がなくても安心だね!
ひとつの拡張は複数のアクションを持てる
ActionsはArrayだから、その下に複数の項目を持つことができる。
あるアプリ用のアクションをひとつの拡張にまとめると便利かも。
適用対象のアプリケーションを限定(もしくは除外)できる
AppsもしくはActionsの下にRequired Appsを指定することで、あるアプリで文字列を選択したときにのみ、その拡張(もしくは指定したアクション)が有効になるよう設定できる。
Blocked Appsを指定することで、一部のアプリだけをブロックすることもできるんだ。
たとえば次のように。
<key>Required Apps</key> <array> <string>com.dayoneapp.dayone</string> <string>5U8NS4GX82.dayoneapp2</string> <string>com.bloombuilt.dayone-mac</string> <string>com.bloombuilt.dayone-agent</string> </array>
指定するのはアプリケーションのバンドル識別子。
調べるのはちょろっとめんどくさいけど、 ~/Library/Preferences/に潜ってアプリ名でgrepをかけると、それっぽいのが見つかりやすいかも。