Supprimer les entrées du menu contextuel du Finder?

14

Quelqu'un sait-il comment supprimer des éléments que je n'utilise jamais dans le menu contextuel?

par exemple: Graver "yadda yadda" sur le disque ...

entrez la description de l'image ici

philberndt
la source
/System/Library/CoreServices/Finder/Contents/Resources/English.lproj/Menubar.nib a toutes les entrées mais je ne sais pas comment supprimer les chaînes

Réponses:

5

Vous pouvez supprimer les éléments MacOS natifs du menu contextuel .... mais malheureusement, il ne semble pas que vous puissiez supprimer ceux que vous avez indiqués ci-dessus. Quoi qu'il en soit, si vous voulez y jeter un œil, rendez-vous sur

Préférences système> Clavier> Raccourcis clavier> Services

puis décochez les éléments que vous ne voulez pas dans le menu.

entrez la description de l'image ici

Il est regrettable que vous ne puissiez pas tous les supprimer. Mais il peut au moins vous aider à se débarrasser de certains de l'encombrement.

LloydDobbler
la source
Vérifier ma solution - cela vous permet de supprimer l'élément de menu contextuel par défaut du Finder exactement comme les demandes OP.
synthesizerpatel
5
  • J'ai trouvé une solution pour cela qui (jusqu'à présent) fonctionne pour les éléments de contexte du menu droit du Finder par défaut tels que Burn to disket Burn "^1" to disc. C'est exactement l'objectif de la demande de PO.

  • Il existe une autre race de ballonnement dans le menu contextuel qui vient de l'installation des services sous la forme d'Applescript ou de plugins exécutables.

    Celles-ci sont simples à éliminer. Quel que soit leur nom, recherchez simplement cette chaîne sur votre disque. c'est-à-dire que le Inject Potatos!service sera finalement trouvé dans un fichier nommé Inject Potatos!.<something>. Il peut y avoir d'autres formes et tailles, mais c'est le problème facile à résoudre et hors de portée du poste OP.

  • Pour les utilisateurs non anglais: cette solution est indépendante de la langue. Nous profitons des fonctions de localisation qui convertissent les chaînes + arguments par défaut en chaînes localisées avec des variables développées.

Comment cela fonctionne expliqué avec une série de suppositions sauvages

Je ne suis pas sûr des internes d'Objective-C, mais je soupçonne quelque chose de similaire à ce qui se passe ..

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

Il n'y a pas de chaîne de format (c'est-à-dire ""), donc vous vous retrouvez toujours avec strune longueur nulle.

Si la chaîne est de longueur nulle, le résolveur de localisation remontera dans l'arborescence pour trouver un modèle de format ancêtre qui fonctionne. Tant que vous mettez à zéro tous les ancêtres de cette classe de messages, cela épuisera éventuellement les modèles et renverra une chaîne de longueur nulle au demandeur de localisation.

Le rendu du menu contextuel reconnaît qu'il est de longueur nulle et l'omet des éléments de liste du menu contextuel et vous obtenez un menu contextuel plus mince.

IMPORTANT

  • Si vous ne savez pas ce que vous faites, vous pourriez gâcher Finder. Utilisez cette liste de contrôle pour vérifier que vous avez le kung-fu.
  • Soyez à l'aise avec la coque
  • Savoir utiliser un éditeur de texte en clair comme vim, nano, emacs, etc.
  • Sauvegarde toujours tous les fichiers que vous modifiez AVANT de les modifier.
  • Effectuez UN changement à la fois, tuez Finder, vérifiez que tout a l'air bien, passez à 10. Si vous apportez un tas de changements et que cela bouge, vous n'aurez qu'à aller annuler tous vos changements de toute façon.
  • Je sais que le formatage NSString est différent de C, mais si vous n'êtes pas un gars Objective-C et que vous devez y penser en termes de printf, les exemples suivants sont également les mêmes pour les besoins de cet exercice.

    • Modèle Obj-C: "Throw ^1 into the ^2"
    • modèle printf: "Throw %s into the %s", arg1, arg2.

    Si vous apportez une modification et après le redémarrage du Finder, il ne semble pas que cela prenne effet - vous pouvez modifier une chaîne de localisation dans une autre zone que le menu contextuel du clic droit. Annulez votre modification, redémarrez le Finder et réessayez. Si vous sautez cette étape, vous pouvez finir par modifier quelque chose d'autre que le menu contextuel et ne vous en rendre compte que quelques jours plus tard.

  • Comprenez qu'il s'agit essentiellement d'un piratage, il peut ne pas fonctionner comme vous le souhaitez ou si vous vous y attendez. Pour ce que ça vaut, je cours avec ces changements (et plus) depuis au moins quelques semaines maintenant et je n'ai subi aucun effet néfaste.


Exemple de menu contextuel du Stock Finder

Voyons d'abord une image `` avant '' prise à partir du post de l'OP qui nous montre un menu contextuel par défaut du Finder plein de ballonnement.

Menu contextuel du Finder gonflé

Terrible!

La majorité des appareils Apple ne sont même plus livrés avec des graveurs de DVD, mais ils Burn "^1" to discoccupent un terrain précieux.

Sans parler de la même inutile Quick Look, Duplicate, Make Alias, Copy ^1, etc.


Nouveau menu contextuel Hotness

New Hotness

Dépouillé autant que je pouvais l'obtenir. Gardez à l'esprit que si nous sélectionnions un fichier, nous aurions les éléments par défaut Openet de Open with..menu.

Vous ne perdez rien sauf si vous l'omettez.

Les choses peuvent être assez clairsemées si vous le souhaitez.


Instructions

  • Trouvez le fichier $ LANGUAGE.lproj qui vous intéresse. Dans mon cas, je parle anglais.
  • cd /System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj
  • exécuter plutil -convert xml1 Localizable.strings, pour convertir Localizable.strings en un fichier plist XML en clair
  • FAIRE UNE SAUVEGARDE DE Localizable.strings . Si vous gâchez quelque chose, vous voudrez pouvoir annuler vos modifications.
  • Ouvrez Localizable.strings dans un éditeur de texte en clair / code (vi, pico, emacs, jed, etc. - TextEdit.app ne peut pas enregistrer les fichiers * .txt et doit être évité)

    Trouvez la valeur que vous souhaitez masquer. Dans mon cas, c'était "Graver" ^ 1 "sur le disque" qui est la clé BC50_V2.

    <key>BN50_V1</key>
    <string>Burn to Disc…</string>
    <key>BN50_V2</key>
    <string>Burn “^1” to Disc…</string>
  • Ma première tentative a été de supprimer complètement la paire clé-valeur, mais cela a entraîné l'affichage de la chaîne BC50_V1 dans mon menu.

    Certaines chaînes de format reviendront à des modèles plus génériques s'ils existent. Dans ce cas, vous devrez mettre à zéro plusieurs valeurs.

    Vous pouvez voir ce comportement avec BC50_V2 qui revient à BC50_V1.

    Étant donné que je voulais terminer de supprimer toutes les Burn...entrées de menu, j'ai également dû mettre à zéro BC50_V1.

    Il existe d'autres paires de valeurs clés qui ont eu plusieurs solutions de rechange, mais elles sont généralement assez faciles à identifier car elles auront le même préfixe BC50_et les mêmes suffixes à incrémentation numérique_V1, _V2, _V..

  • Vous pouvez annoter vos modifications en conservant une copie du fragment XML de paire clé / valeur d'origine dans un commentaire XML.

    Je fais une copie du fragment à modifier, commente l'ancien fragment avec une description et j'apporte mes modifications à la copie. De cette façon, je peux facilement revenir en arrière et ne pas avoir à utiliser le contrôle de version ou avoir plusieurs copies du fichier.

<!-- 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>
  • Si vous souhaitez modifier une chaîne au lieu de la supprimer entièrement, vous pouvez également le faire. Les variables semblent accessibles via le formulaire ^<number>. Ensuite, nombre représente le nième argument. Si vous vous sentiez particulièrement maussade, vous pourriez vous adapter Burn "^1" to Discà Archive "^1" forever utilizing an optical disk!.
  • Enregistrez vos modifications sur le disque
  • killall -HUP Finder pour redémarrer le Finder
  • open .pour ouvrir une fenêtre du Finder dans votre répertoire de travail actuel. Faites un clic droit pour ouvrir le menu contextuel, vérifiez que tout semble bon.
  • Terminé! Il ne semble pas y avoir de pénalité à conserver le fichier Localization.strings au format text plist, vous n'avez donc pas à vous soucier de la conversion vers et depuis des formats binaires ou texte chaque fois que vous apportez des modifications.
synthétiseurpatel
la source
Juste une note dans El Capitan, vous devez désactiver le mode d'intégrité du système pour modifier les fichiers nécessaires. stackoverflow.com/questions/32590053/…
macycron
Toutes mes tentatives de modification ou même de sauvegarde aboutissent à: Opération non autorisée. Peu importe si j'utilise sudo, su ou mon utilisateur.
Carles Alcolea