ファインダーのコンテキストメニューからエントリを削除しますか?


14

使用しないアイテムをコンテキストメニューから削除する方法を知っている人はいますか?

例:「yadda yadda」をディスクに書き込む...

ここに画像の説明を入力してください


/System/Library/CoreServices/Finder/Contents/Resources/English.lproj/Menubar.nibは、すべてのエントリがありますが、私は、文字列を削除する方法がわからない

回答:


5

あなたは、することができます実際に、コンテキストメニューからネイティブMacOSの項目を削除する....残念ながら、あなたが上に示したものを削除することができます表示されません。とにかく、見てみたい場合は、

システム設定>キーボード>キーボードショートカット>サービス

次に、メニューに表示したくない項目のチェックを外します。

ここに画像の説明を入力してください

すべてを削除できないのは残念です。しかし、それは少なくともあなたが混乱のいくつかを取り除くのに役立ちます。


私の解決策を確認してください-OPリクエストとまったく同じように、Finderのデフォルトのコンテキストメニュー項目を削除できます。
シンセサイザー

5
  • これに対する解決策を(これまでのところ)およびのようなデフォルトの Finderの右メニューコンテキストアイテムで動作するようにBurn to diskしましたBurn "^1" to disc。これがまさにOPリクエストの目標です。

  • Applescriptまたは実行可能プラグインの形でサービスをインストールすることから来る別の種類のコンテキストメニューの肥大化があります。

    それらは簡単に取り除くことができます。それらの名前が何であれ、その文字列をディスクで検索するだけです。つまり、Inject Potatos!最終的にサービスはという名前のファイルで見つかりますInject Potatos!.<something>。それらの形状やサイズは他にもあるかもしれませんが、それらは簡単に解決できる問題であり、OP投稿の範囲外です。

  • 英語以外のユーザーの場合:このソリューションは言語に依存しません。デフォルトの文字列+ argsを、変数が拡張されたローカライズされた文字列に変換するローカライズ関数を利用します。

一連のワイルドな推測でどのように機能するかを説明します

Objective-Cの内部構造についてはわかりませんが、これと似たようなことが起こっているのではないかと思います。

snprintf(str, 0, "", var1, var2, ..);

フォーマット文字列(つまり "")がないため、常にstr長さがゼロになります。

strの長さがゼロの場合、ローカライズリゾルバはツリーを逆方向にたどって、機能する祖先形式テンプレートを見つけます。そのメッセージクラスのすべての祖先をゼロにする限り、最終的にテンプレートを使い果たし、長さゼロの文字列をローカライズリクエスタに返します。

コンテキストメニューレンダラーは、長さがゼロであることを認識し、コンテキストメニューリスト項目からそれを省略し、よりスリムなコンテキストメニューを取得します。

重要

  • 何をしているのかわからない場合は、Finderを台無しにする可能性があります。このチェックリストを使用して、カンフーを持っていることを確認してください。
  • シェルを快適に使用する
  • vim、nano、emacsなどのプレーンテキストエディターの使用方法を知っている。
  • 編集する前に、常に編集したファイルのバックアップを作成してください。
  • 一度に1つの変更を行い、Finderを強制終了し、すべてが正常に見えることを確認します。10に進みます。
  • NSStringのフォーマットはCとは異なることを知っていますが、Objective-Cの男ではなく、printfの観点から考える必要がある場合、次の例もこの演習の目的では基本的に同じです。

    • Obj-Cテンプレート: "Throw ^1 into the ^2"
    • printfテンプレート:"Throw %s into the %s", arg1, arg2

    変更を加えてFinderを再起動した後、影響が及んでいないようです-右クリックコンテキストメニュー以外の場所でローカライズ文字列を変更している可能性があります。変更を元に戻し、Finderを再起動してもう一度お試しください。この手順をスキップすると、コンテキストメニュー以外のものを変更してしまい、数日後まで気付かない場合があります。

  • これは基本的にハックであることを理解してください。期待どおりに機能しない場合があります。価値のあることについては、少なくとも数週間はこれらの変更(およびそれ以上)を実行しており、悪影響はありませんでした。


Stock Finderコンテキストメニューの例

まず、OPの投稿から取られた「前の」画像を見てみましょう。これは、膨らみのある典型的なデフォルトのFinderコンテキストメニューを示しています。

Bloated Finderコンテキストメニュー

ひどい!

Appleデバイスの大部分はDVDバーナーを搭載していませんが、Burn "^1" to disc貴重なスペースを占有しています。

均等に無用言うまでもありませんQuick LookDuplicateMake AliasCopy ^1、など


新しいホットネスコンテキストメニュー

新しい辛さ

私はそれを得ることができる限り取り除いた。ファイルを選択する場合、デフォルトOpenOpen with..メニュー項目があることに注意してください。

省略しない限り、何も失われません。

必要に応じて、物事をかなりまばらにすることができます。


説明書

  • 興味のある$ LANGUAGE.lprojファイルを見つけます。私の場合、私は英語を話します。
  • cd /System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj
  • 実行してplutil -convert xml1 Localizable.strings、Localizable.stringsをプレーンテキストXML plistファイルに変換します
  • Localizable.stringsのバックアップを作成します。何かを台無しにした場合は、変更を元に戻せるようにしたいと思うでしょう。
  • Localizable.stringsをプレーンテキスト/コードエディターで開く(vi、pico、emacs、jedなど-TextEdit.appは* .txtファイルを保存できないため、避ける必要があります)

    非表示にする値を見つけます。私の場合、それはキーBC50_V2である「ディスクへの「^ 1」の書き込み」でした。

    <key>BN50_V1</key>
    <string>Burn to Disc…</string>
    <key>BN50_V2</key>
    <string>Burn “^1” to Disc…</string>
  • 私の最初の試みは、キーと値のペアを完全に削除することでしたが、これにより、BC50_V1の文字列がメニューに表示されました。

    一部のフォーマット文字列は、存在する場合、より一般的なテンプレートにフォールバックします。その場合、複数の値をゼロにする必要があります。

    この動作は、BC50_V1にフォールバックするBC50_V2で確認できます。

    Burn...メニュー項目をすべて削除したかったので、BC50_V1もゼロにする必要がありました。

    複数のフォールバックがある他のキーと値のペアがありますが、同じプレフィックスBC50_と数値的に増加するサフィックスがあるため、通常は識別が非常に簡単です_V1, _V2, _V..

  • 元のキー/値ペアのXMLフラグメントのコピーをXMLコメント内に保持することにより、変更に注釈を付けることができます。

    変更するフラグメントのコピーを作成し、説明で古いフラグメントをコメントアウトし、コピーに変更を加えます。そうすれば、簡単に元に戻すことができ、バージョン管理を使用したり、ファイルの複数のコピーを作成したりする必要はありません。

<!-- OLD Burn.*to Disc... 

    <key>BN50_V1</key>
    <string>Burn to Disc…</string>
    <key>BN50_V2</key>
    <string>Burn “^1” to Disc…</string>

-->

<!-- NEW Burn.*to Disc -->
<key>BN50_V1</key>
<string></string>
<key>BN50_V2</key>
<string></string>
  • 文字列を完全に削除するのではなく変更したい場合は、それもできます。変数は、フォームを使用してアクセスできるようです^<number>。次に、numberはn番目の引数を表します。あなたが特にポンピーを感じていたなら、あなたはに変更できBurn "^1" to DiscましたArchive "^1" forever utilizing an optical disk!
  • 変更内容をディスクに保存します
  • killall -HUP Finder Finderを再起動するには
  • open .現在の作業ディレクトリでFinderウィンドウを開きます。右クリックしてコンテキストメニューを開き、すべてが適切に表示されることを確認します。
  • 全部できた!Localization.stringsファイルをテキストplist形式で保持してもペナルティはないようですので、変更を加えるたびにバイナリ形式またはテキスト形式の内外への変換について心配する必要はありません。

エルキャピタンでは、必要なファイルを変更するにはシステムの整合性モードをオフにする必要があります。stackoverflow.com/questions/32590053/…–
macycron

バックアップを変更または実行しようとする私の試みはすべて、次のようになります:操作は許可されていません。sudo、su、またはユーザーを使用しても関係ありません。
カールズアルコレア
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.