使用しないアイテムをコンテキストメニューから削除する方法を知っている人はいますか?
例:「yadda yadda」をディスクに書き込む...
使用しないアイテムをコンテキストメニューから削除する方法を知っている人はいますか?
例:「yadda yadda」をディスクに書き込む...
回答:
あなたは、することができます実際に、コンテキストメニューからネイティブMacOSの項目を削除する....残念ながら、あなたが上に示したものを削除することができます表示されません。とにかく、見てみたい場合は、
システム設定>キーボード>キーボードショートカット>サービス
次に、メニューに表示したくない項目のチェックを外します。
すべてを削除できないのは残念です。しかし、それは少なくともあなたが混乱のいくつかを取り除くのに役立ちます。
これに対する解決策を(これまでのところ)およびのようなデフォルトの 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の長さがゼロの場合、ローカライズリゾルバはツリーを逆方向にたどって、機能する祖先形式テンプレートを見つけます。そのメッセージクラスのすべての祖先をゼロにする限り、最終的にテンプレートを使い果たし、長さゼロの文字列をローカライズリクエスタに返します。
コンテキストメニューレンダラーは、長さがゼロであることを認識し、コンテキストメニューリスト項目からそれを省略し、よりスリムなコンテキストメニューを取得します。
NSStringのフォーマットはCとは異なることを知っていますが、Objective-Cの男ではなく、printfの観点から考える必要がある場合、次の例もこの演習の目的では基本的に同じです。
"Throw ^1 into the ^2"
"Throw %s into the %s", arg1, arg2
。変更を加えてFinderを再起動した後、影響が及んでいないようです-右クリックコンテキストメニュー以外の場所でローカライズ文字列を変更している可能性があります。変更を元に戻し、Finderを再起動してもう一度お試しください。この手順をスキップすると、コンテキストメニュー以外のものを変更してしまい、数日後まで気付かない場合があります。
これは基本的にハックであることを理解してください。期待どおりに機能しない場合があります。価値のあることについては、少なくとも数週間はこれらの変更(およびそれ以上)を実行しており、悪影響はありませんでした。
まず、OPの投稿から取られた「前の」画像を見てみましょう。これは、膨らみのある典型的なデフォルトのFinderコンテキストメニューを示しています。
ひどい!
Appleデバイスの大部分はDVDバーナーを搭載していませんが、Burn "^1" to disc
貴重なスペースを占有しています。
均等に無用言うまでもありませんQuick Look
、Duplicate
、Make Alias
、Copy ^1
、など
私はそれを得ることができる限り取り除いた。ファイルを選択する場合、デフォルト
Open
とOpen with..
メニュー項目があることに注意してください。
省略しない限り、何も失われません。
必要に応じて、物事をかなりまばらにすることができます。
cd /System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj
plutil -convert xml1 Localizable.strings
、Localizable.stringsをプレーンテキストXML plistファイルに変換します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ウィンドウを開きます。右クリックしてコンテキストメニューを開き、すべてが適切に表示されることを確認します。