2012年3月1日木曜日

既存アプリに自作メニューを追加してショートカットキーを割り当てる方法

まずは「普段使うスクリプトはどこに置いたらいいの?」というお話から。

基本はここ


だいたいは「/Users/ユーザー名/Library/Script/」で大丈夫。
ここに置くと

120229_04

こんな感じで表示されます。
細かく言うとこれはユーザーに割り当ててます。

更にアプリに割り当てるときは「/Users/ユーザー名/Library/Script/Application/アプリ名/」に置きます。
すると

120229_05

120229_06

こんな感じになります。

あと「/Library/Scripts/」に置くとどのユーザーでも使えます。
ここまでは割と当たり前に置く場所。

例外もあるよ


上のアプリに割り当てるのとはちょっと違って、アプリのメニューバーに入るものがあります。
たとえばこんな感じ。

120229_07

iTunesとかMarsEditでは見ますよね。
フォルダは「/Users/ユーザー名/Library/アプリ名/Scripts/」ですが、ここに置いても表示されないアプリもあります。というか、試した感じほとんどのアプリは表示されません。
アプリが対応してるかどうかによるので、とりあえず置いてみて確認するしかないです。

基本と例外、なにが違うの?


で、「例外のとこに置くと何が違うの?」というのが本題です。
結論から言うと、ショートカットキーが割り当てられます。
手順はこんな感じ。

120229_08

120229_09

アプリのメニューバーに入るってのが意外と重要。
細かいことですけど、よく使う機能だと使い勝手はけっこう違うと思います。
この方法で機能を追加していけば、ほとんどキーボードだけで操作できるようになるでしょう。

で、こうなると「だったら対応してるやつは全部ここに置けばいいじゃん!」と思うんですが、案外そうでもないことも分かりました。
(まだ細かい理由云々は分からないけど、挙動だけ分かったとこなので曖昧です)

たとえとして、今回作った「歌詞をQuickLookで表示」のスクリプトをiTunesフォルダから実行したとしましょう。
このスクリプト、歌詞を表示してる間ずっとアクティブになるように作ってます。
そういうスクリプトを実行した場合、スクリプトを終了させるまでiTunesを操作できなくなります。

うん、ポルナレフ状態だね、すげー分かりづらいね。でもそういうもんなのです。
この現象は「/Users/ユーザー名/Library/Script/」のほうから実行した場合、歌詞表示スクリプトが動いてる間は同じフォルダに置いてる他のスクリプトが使えなくなります。

きっと、どのアプリに紐付いてるかってことなんでしょうね。
「/Users/ユーザー名/Library/Script/」のほうはScript Runner的なスクリプト実行用アプリに紐付いちゃうんだと思います。
仕組みをちゃんと分かってる人には当たり前なんだろうけど、今回はじめて知って勉強になりました。

余談ですけど、Alfredから起動するとAlfred内のScript Runnerが使われると思います。
だからたぶんAlfred動かない\(^o^)/ってなる。

どっちにするかは自分で決めて


「結局何が言いたかったんだよ」って話ですが、どっちも一長一短だよってことです。
そのスクリプトが動いてる間、何をしたいのかが大事なのかなーと。
まあ深く考えずショートカットキーを割り当てる方法がある!くらいでいいんじゃないでしょーか。

0 件のコメント:

コメントを投稿