2007年11月11日日曜日

Service Menu

あまり知られていないし、使われてもいない機能に「アプリケーション名 > サービス」メニューがあります。

たとえば「URL を開く」という命令があり、自分で書いたり貼り付けたりしたURLを確認したい時に利用できます。しかし、たくさんのアプリケーションが色々なサービスを提供したために、項目数が多すぎて「URL を開く」を選択するのは面倒で不便です。また、ショートカットが設定されたメニューがあるのに、「URL を開く」にはショートカットが設定されていません。

そこで、このメニューにショートカットを設定する方法を紹介します。

以下のアプリケーションを見つけてください。
  /System/Library/CoreServices/SystemUIServer
日本語表記では
  /システム/ライブラリ/CoreServices/SystemUIServer

この「SystemUIServer」をctrlキーを押しながらクリックし、ポップアップメニューから「パッケージの内容を表示」を選択します。「Contents」フォルダが表示さますので、そのなかの「Info.plist」と言う名前のファイルを「テキストエディタ」で開きます。以下のように書かれている場所を探します。
<key>NSServices</key>
  <array>
    <dict>
      <key>NSMenuItem</key>
      <dict>
        <key>default</key>
        <string>Open URL</string>
      </dict>
      <key>NSMessage</key>
      <string>openURL</string>
      <key>NSPortName</key>
      <string>SystemUIServer</string>
      <key>NSSendTypes</key>
      <array>
        <string>NSURLPboardType</string>
        <string>NSStringPboardType</string>
      </array>
    </dict>
  </array>


上記を以下のように項目を追加して保存します。
  <key>NSServices</key>
  <array>
    <dict>
      <key>NSKeyEquivalent</key> <-追加
      <dict> <-追加
        <key>default</key> <-追加
        <string>W</string> <-追加
      </dict> <-追加

      <key>NSMenuItem</key>
      <dict>
        <key>default</key>
        <string>Open URL</string>
      </dict>
      <key>NSMessage</key>
      <string>openURL</string>
      <key>NSPortName</key>
      <string>SystemUIServer</string>
      <key>NSSendTypes</key>
      <array>
        <string>NSURLPboardType</string>
        <string>NSStringPboardType</string>
      </array>
    </dict>
  </array>


以上の変更が終われば、再起動します。

「アプリケーション名 > サービス」メニューをみると、「URL を開く」の右にシフト+コマンド+Wのアイコン表示がでます。「スティッキーズ」を開いてURLを入れて「シフト+コマンド+W」を押すと、Webブラウザが起動してURLを表示します。

ただし、「テキストエディタ」では「シフト+コマンド+W」のショートカットは「ページサイズで表示」に割り当てられています。この場合にはアプリケーションのショートカット・キーが優先されます。「テキストエディタ」で使いたい人は<string>W</string> の「W」を他の文字に代えてください。

この方法は「サービス」メニューに表示されている他のアプリケーションにも応用できます。また、「サービス」メニューを表示できる全てのアプリケーションで共通して利用できるショートカットなので、System 9以前と似たような使い方ができるのが嬉しいです。

0 件のコメント: