macOSでコンテキストメニューを編集する方法

Macが新品のとき、コンテキストメニューは比較的短くシンプルです。そして大部分はそのままの状態を保ちます。しかし、これを追加または削除したい場合、macOSでは限られた柔軟性があります。

残念ながら、macOSのコンテキストメニューはWindowsのようには柔軟ではありません。Windowsでは、ほとんどのコンテキストメニュー項目を少しのレジストリハッキングで削除できます。より「厳格な」オペレーティングシステムであるmacOSは、そのような簡単な方法を提供していません。

Dropboxのようにコンテキストメニューを編集するには、Finderアプリケーション自体をハッキングする必要があります。それは我々の知識やこの投稿の範囲を超えているので、コンテキストメニューに表示される内容を制御する方法にとどまります。

関連記事: macOSのメニューバーをカスタマイズする方法

Macのコンテキストメニューからサービスを追加/削除する

macOSのコンテキストメニューからコンテキストメニュー項目を追加・削除する主な方法はサービスを通じて行います。サービスは、右クリックメニューの下部にある「サービス」ドロップダウンに表示されます。macOSでは、ここでコンテキストメニュー項目を追加および削除するためのGUIベースの方法を提供しています。

  1. Appleメニューから「システム環境設定」アプリケーションを開きます。

edit-context-menu-macos-5

  1. 「キーボード」設定パネルをクリックします。

edit-context-menu-macos-3

  1. ウィンドウの上部にある「ショートカット」タブをクリックします。

edit-context-menu-macos-2a

  1. 左のメニューパネルから「サービス」を選択します。

edit-context-menu-macos-1a

  1. これにより、取る入力に基づいて主なカテゴリに整理されたすべての利用可能なサービスのリストが表示されます。チェックボックスをクリックして関連するサービスの可視性を切り替えます。

edit-context-menu-macos-7

  1. アプリケーションはここで独自のサービスを追加できます。コンテキストメニュー項目がどのような種類のアイテム(ファイル、フォルダ、テキスト)を取るかに基づいて見つけることができます。たとえば、選択したテキストを右クリックしたときにコンテキストメニュー項目が表示される場合、「テキスト」ドロップダウンの下にサービスが見つかります。

edit-context-menu-macos-8

主要なコンテキストメニューにサービスを表示する

サービスがたくさんある場合や頻繁に使用する場合、ドロップダウンが開くのを常に待つのは面倒です。ターミナルコマンドを使用して、すべてのサービスをメインのドロップダウンメニューに表示させることができます。

  1. 「アプリケーション -> ユーティリティ -> Terminal.app」の場所にあるターミナルを開きます。

  2. ターミナルに次のコマンドを貼り付けます:

defaults write-g NSServicesMinimumItemCountForContextSubmenu -int999

このコマンドは、サービスのサブメニューを作成するために必要な最小サービス数のデフォルトを編集します。最後の数字(この例では999)は、サービスサブメニューを作成するために必要な項目数を設定します。サービスの数がこの値未満の場合、サービスサブメニューは表示されません。この場合、999は無限大から意味的には変わりませんので、常にすべてのサービス項目が表示されます。

  1. 次のターミナルコマンドでFinderを終了して再起動します:
killall Finder

「このアプリケーションで開く」メニューを編集

コンテキストメニュー内の1つのサブメニュー「このアプリケーションで開く」メニューは、少し乱雑になる傾向があります。これにはいくつかの方法で対処できます。

1. 「このアプリケーションで開く」コンテキストメニューから重複を削除する

時々、LaunchServicesデータベースが破損し、「このアプリケーションで開く」メニュー内の項目が大量に重複することがあります。

  1. 次のターミナルコマンドを実行してLaunchServicesデータベースを再構築します:
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill-r-domainlocal-domain system -domain user
  1. killall FinderでFinderを終了して再起動します。LaunchServicesが再構築されるまで数分待つ必要があるかもしれません。

2. 特定の拡張子に対するアプリを手動で禁止する

「このアプリケーションで開く」メニューに特定のファイル拡張子に関連付けられないように、特定のアプリケーションを禁止することができます。plistファイルを編集することに自信がある場合のみ進んでください。

  1. エントリを編集したいアプリケーションを右クリックし、「パッケージの内容を表示」をクリックします。

edit-context-menu-macos-11

  1. 「Contents」フォルダを開きます。

edit-context-menu-macos-14

  1. 「Info.plist」ファイルを複製し、「info-backup.plist」などの名前に変更してバックアップファイルを作成します。

  2. TextEditなどのテキストエディタでInfo.plistを開きます。

edit-context-menu-macos-10

  1. ドキュメント内をCommand + Fで「CFBundleTypeExtensions」と検索します。

edit-context-menu-macos-12

  1. これにより多くの情報が表示されます。Photoshopのような複雑なアプリケーションの場合、拡張子ごとに1つずつ表示されます。「…」の場所を見つけて、禁止したいファイルタイプを確認します。たとえば、PNGファイルでPhotoshopを「このアプリケーションで開く」メニューから削除したい場合、CFBundleTypeExtensionsの下で「png」を探す必要があります。

  2. 関連する「…」エントリを削除します。この場合、「png」を削除します。

edit-context-menu-macos-13

  1. ターミナルを開いてkillall Finderを実行して変更を適用します。

結論

macOSのコンテキストメニューに関しては、Windowsのように多くの制御を持っているわけではありませんが、メニューのいくつかのカスタマイズを行うことはできます。macOSのAutomatorアプリケーションを使用して、さらに多くのオプションをサービスメニューに追加することも可能です。