15 votes

Supprimer les entrées du menu contextuel du Finder ?

Quelqu'un sait-il comment supprimer du menu contextuel les éléments que je n'utilise jamais ?

Par exemple : Graver "yadda yadda" sur disque...

enter image description here

0 votes

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

0 votes

En supprimant la section "Tags" : apple.stackexchange.com/questions/387849/

7voto

ismail Points 19146

Vous peut Il est possible de supprimer les éléments natifs de MacOS 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 coup d'œil, rendez-vous à l'adresse suivante

System Prefs > Keyboard > Keyboard Shortcuts > Services

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

enter image description here

C'est malheureux que vous ne puissiez pas tous les supprimer. Mais ça peut au moins vous aider à vous débarrasser de un peu de du désordre.

0 votes

Vérifiez ma solution - elle vous permet de supprimer l'élément de menu contextuel par défaut du Finder exactement comme le demande le PO.

6voto

synthesizerpatel Points 204
  • J'ai mis au point une solution qui fonctionne (pour l'instant) dans les cas suivants par défaut Les éléments contextuels du menu droit du Finder, tels que Burn to disk y Burn "^1" to disc . C'est exactement le but de la demande du PO.

  • Il y a un autre la race de menu contextuel bloqué qui vient de l'installation de Services sous la forme d'Applescript ou de plugins exécutables.

    Il est facile de s'en débarrasser. Quel que soit le nom qu'on leur donne, il suffit de rechercher cette chaîne sur votre disque. Par exemple Inject Potatos! se trouvera finalement dans un fichier nommé Inject Potatos!.<something> . Il peut y avoir d'autres formes et d'autres tailles, mais c'est le problème le plus facile à résoudre et il est hors de portée de l'article du PO.

  • Pour les utilisateurs non anglophones : Cette solution est indépendante de la langue. Nous tirons profitons des fonctions de localisation qui convertissent les chaînes par défaut + args en chaînes localisées avec des variables étendues.

Comment cela fonctionne, expliqué par une série de suppositions.

Je ne suis pas sûr des aspects internes de l'Objective-C, mais je soupçonne que quelque chose de similaire à ceci se passe

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

Il n'y a pas de chaîne de format (c'est-à-dire ""), donc on obtient toujours le résultat suivant str étant de longueur nulle.

Si la chaîne est de longueur nulle, le résolveur de localisation remontera l'arbre pour trouver un modèle de format ancestral qui fonctionne. Tant que vous mettez à zéro tous les ancêtres de cette classe de message, il finira par épuiser les modèles et retournera une chaîne de longueur nulle au demandeur de localisation.

Le moteur de rendu du menu contextuel reconnaît qu'il s'agit d'une longueur nulle et l'omet des éléments de la liste du menu contextuel, ce qui permet d'obtenir un menu contextuel plus fin.

IMPORTANT

  • Si vous ne savez pas ce que vous faites, vous risquez d'abîmer le Finder. Utilisez cette liste de contrôle pour vérifier que vous avez le kung-fu.

  • Être à l'aise dans l'utilisation de la coquille

  • Savoir utiliser un éditeur de texte en clair tel que vim, nano, emacs, etc.

  • Faites toujours des sauvegardes de tous les fichiers que vous modifiez AVANT de les modifier.

  • Faites UN seul changement à la fois, arrêtez le Finder, vérifiez que tout semble correct, passez à 10. Si vous faites un tas de changements et que cela fait des dégâts, vous devrez de toute façon revenir sur tous vos changements.

  • Je sais que le formatage de NSString est différent de celui du C, mais si vous n'êtes pas un spécialiste de l'Objective-C, et que vous devez y penser en termes de printf, les deux exemples suivants sont fondamentalement les mêmes pour les besoins de cet exercice.

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

    Si vous effectuez une modification et qu'après avoir redémarré le Finder, elle ne semble pas prendre effet, il se peut que vous modifiiez une chaîne de localisation dans une zone autre que le menu contextuel du clic droit. Annulez votre modification, redémarrez le Finder et réessayez. Si vous sautez cette étape, vous risquez de modifier quelque chose d'autre que le menu contextuel et de ne vous en rendre compte que plusieurs jours plus tard.

  • Comprenez qu'il s'agit essentiellement d'un hack, il se peut qu'il ne fonctionne pas comme vous le souhaitez ou l'attendez. Pour ce que ça vaut, je fonctionne avec ces changements (et d'autres) depuis au moins deux semaines maintenant et je n'ai ressenti aucun effet négatif.


Exemple de menu contextuel de Stock Finder

Tout d'abord, regardons une image " avant " tirée de l'article de l'OP qui nous montre un menu contextuel par défaut typique du Finder, plein de fioritures.

Bloated Finder Context Menu

Terrible !

La majorité des appareils Apple ne sont même plus livrés avec des graveurs de DVD, mais il y a Burn "^1" to disc en prenant des biens immobiliers de valeur.

Sans parler du tout aussi inutile Quick Look , Duplicate , Make Alias , Copy ^1 etc.


Menu contextuel "New Hotness

New Hotness

Je l'ai démonté autant que possible. Gardez à l'esprit que si nous sélectionnions un fichier, nous aurions l'option par défaut Open y Open with.. les éléments du menu.

Vous ne perdez rien, sauf si vous l'omettez.

Les choses peuvent être rendues 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 texte clair.
  • FAIRE UNE SAUVEGARDE DE Localizable.strings . Si vous faites une erreur, vous voudrez pouvoir revenir sur vos modifications.
  • Ouvrez Localizable.strings dans un éditeur de texte en clair / code (vi, pico, emacs, jed, etc -- TextEdit.app ne peut pas sauvegarder les fichiers *.txt et doit être évité)

    Trouvez la valeur que vous voulez cacher. Dans mon cas, il s'agissait de '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 entièrement la paire clé-valeur, mais la chaîne de BC50_V1 est apparue dans mon menu.

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

    Vous pouvez constater ce comportement avec BC50_V2 qui retombe sur BC50_V1.

    Comme je voulais me débarrasser complètement de tout Burn... j'ai dû mettre à zéro BC50_V1 également.

    Il existe d'autres paires clé-valeur qui ont plusieurs solutions de repli, mais elles sont généralement faciles à identifier car elles ont le même préfixe. BC50_ et des suffixes à incrémentation numérique _V1, _V2, _V..

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

    Je fais une copie du fragment à modifier, je commente l'ancien fragment avec une description et je fais mes modifications sur la copie. De cette façon, je peux facilement revenir en arrière et je n'ai pas besoin d'utiliser le contrôle de version ou d'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 de caractères au lieu de la supprimer entièrement, vous pouvez également le faire. Les variables semblent être accessibles en utilisant la forme ^<number> . Le nombre représente alors le nième argument. Si vous vous sentez particulièrement pimpant, vous pouvez modifier 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 correct.
  • C'est fait ! Il ne semble pas y avoir d'inconvénient à conserver le fichier Localization.strings au format texte plist. Vous n'avez donc pas à vous préoccuper de la conversion entre les formats binaire et texte à chaque fois que vous apportez des modifications.

0 votes

Il est à noter que 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/

0 votes

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.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X