PopClip 自家製拡張の作り方。

popclip1

PopClipの拡張が増えてきましたね。活発に開発されているようです。

今回は、URLにクエリ(検索文字)を埋め込んで、辞書サイトや検索サイトを自由に使えるといいなと思い自家製拡張のレシピを書いておきました。

必要なもの
・Xcode (plistファイルを編集出来るもの)

あるといいもの
・アイコン用に透過pngを作れるソフト

ファイル構造

まず、以下のパスに移動します。

/Users/your_mac_name/Library/Application Support/PopClip/Extensions/
※your_mac_nameの部分はMacのアカウント名で人ごとに違います。
※環境によってホームのライブラリは隠しフォルダになっている場合があります。

ここに新規フォルダを作り、任意の名前に.popclipext拡張子を付けます。変更時に警告が出るので「追加」をクリック。
popclip2

自家製では、この中に置くファイルは3つ。


  my_own_extension.popclipext
      Config.plist
      my_icon.png
      my_script.sh

Config.plistはXcodeから新規作成します。
File>New>File>OS X>Resource>Property List

フォルダの中身を表示したい場合は、右クリックから「パッケージの内容を表示」を選びます。
popclip3

アイコン作成

256x256pxの透過png。アイコンは黒一色。名前は任意ですが、ここではmy_icon.pngとします。
w

スクリプト

名前は任意でここではmy_script.shとします。実行権は付けなく(644)てもOK。ファイル中の$POPCLIP_TEXTの部分に選択した文字が挿入されます。

例としてWeblioの英語検索URLを使います。熟語も調べられるようにスペースを"+"にあらかじめ変換します。


weblio_queue=`echo $POPCLIP_TEXT | tr " " "+"`
open http://ejje.weblio.jp/content/$weblio_queue

特定のブラウザで開きたいときは以下のように。


open -a Sleipnir http://ejje.weblio.jp/content/$weblio_queue
open -a Firefox http://ejje.weblio.jp/content/$weblio_queue
open -a Google\ Chrome http://ejje.weblio.jp/content/$weblio_queue
open -a Safari http://ejje.weblio.jp/content/$weblio_queue
open -a Opera http://ejje.weblio.jp/content/$weblio_queue

設定ファイル Config.plist

popclip4
Config.plistをXcodeで開けば、あとは画像のようにツリー構造状に要素を追加していきます。

Rootにマウスを合わせると「+」が出てくるので、これで追加していきます。
Typeの列もクリックすると選択肢が現れるので、画像のようにしてください。

Extension Nameは、次のように表示されます。
popclip5

Extension Descriptionは、拡張の説明を書きます。
Extension Identifierは、com.の後は自由に付けてください。
Image File、Shell Script Fileに先ほど作ったアイコン名とスクリプト名を書いて、ファイルを保存します。

反映させる

作成したフォルダのある階層
/Users/your_mac_name/Library/Application Support/PopClip/Extensions/
に戻り、作成したmy_own_extension.popclipextをダブルクリックします。

popclip6
自家製なのでこのような表示が出ます。
左の"English to Weblio"をインストールをクリックします。

popclip7
これでアイコンが出てきました。文字を選択してWマークを押すとWeblioでその英語を調べることが出来ます。

色々なサイトに応用できそうですね。

傑作が出来たら自家製ではなく、公式に共有してくれると人類にとって有り難いですね。もっとマニアックなことをしたい人は、既存のpopclipextファイルを眺めたり、Githubのページを読むといいと思います。

https://github.com/pilotmoon/PopClip-Extensions#introduction