¿Eliminar entradas del menú contextual del buscador?

14

¿Alguien sabe cómo puedo eliminar elementos que nunca uso del menú contextual?

por ejemplo: Grabar "yadda yadda" en el disco ...

ingrese la descripción de la imagen aquí

philberndt
fuente
/System/Library/CoreServices/Finder/Contents/Resources/English.lproj/Menubar.nib tiene toda la entrada pero no sé cómo eliminar cadenas

Respuestas:

5

En realidad, puede eliminar elementos nativos de MacOS del menú contextual ... pero desafortunadamente, no parece que pueda eliminar los que indicó anteriormente. De todos modos, si quieres echar un vistazo, dirígete a

Preferencias del sistema> Teclado> Atajos de teclado> Servicios

y luego desmarque los elementos que no desea en el menú.

ingrese la descripción de la imagen aquí

Es lamentable que no puedas eliminarlos a todos. Pero por lo menos puede ayudarle a deshacerse de algunos de la confusión.

LloydDobbler
fuente
Verifique mi solución: le permite eliminar el elemento predeterminado del menú contextual del Finder exactamente como lo solicita OP.
sintetizadorpatel
5
  • He encontrado una solución para esto que (hasta ahora) funciona para los elementos de contexto del menú derecho del Finder predeterminado como Burn to disky Burn "^1" to disc. Este es exactamente el objetivo de la solicitud de OP.

  • Hay otra clase de hinchazón del menú contextual que proviene de la instalación de Servicios en forma de Applescript o complementos ejecutables.

    Esos son fáciles de eliminar. Independientemente de cómo se llamen, simplemente busque en su disco esa cadena. es decir, el Inject Potatos!servicio finalmente se encontrará en un archivo llamado Inject Potatos!.<something>. Puede haber algunas otras formas y tamaños, pero son el problema fácil de resolver y están fuera del alcance de la publicación de OP.

  • Para usuarios que no hablan inglés: esta solución es independiente del idioma. Aprovechamos las funciones de localización que convierten cadenas + argumentos predeterminados en cadenas localizadas con variables expandidas.

Cómo funciona explicado con una serie de conjeturas salvajes

No estoy seguro de los aspectos internos de Objective-C, pero sospecho que algo similar a esto está sucediendo ...

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

No hay una cadena de formato (es decir, ""), por lo que siempre terminas strsiendo de longitud cero.

Si el str es de longitud cero, el solucionador de localización caminará hacia atrás en el árbol para encontrar una plantilla de formato ancestral que funcione. Siempre que ponga a cero todos los antepasados ​​de esa clase de mensaje, eventualmente agotará las plantillas y devolverá una cadena de longitud cero al solicitante de localización.

El renderizador del menú contextual reconoce que es de longitud cero y lo omite de los elementos de la lista del menú contextual y obtiene un menú contextual más delgado.

IMPORTANTE

  • Si no sabes lo que estás haciendo, podrías arruinar Finder. Use esta lista de verificación para verificar que tiene el kung-fu.
  • Siéntete cómodo usando la carcasa
  • Sepa cómo usar un editor de texto sin formato como vim, nano, emacs, etc.
  • Siempre haga copias de seguridad de los archivos que edite ANTES de editarlos.
  • Realice UN cambio a la vez, elimine Finder, verifique que todo se ve bien, pase a 10. Si realiza un montón de cambios y lo arregla, solo tendrá que revertir todos los cambios de todos modos.
  • Sé que el formato NSString es diferente a C, pero si no eres un tipo Objective-C y necesitas pensarlo en términos de printf, los siguientes ejemplos también son básicamente los mismos para los propósitos de este ejercicio.

    • Plantilla Obj-C: "Throw ^1 into the ^2"
    • printf plantilla: "Throw %s into the %s", arg1, arg2.

    Si realiza una modificación y después de reiniciar Finder, parece que no está teniendo efecto: puede estar modificando una cadena de localización en otra área que no sea el menú contextual del botón derecho. Revierta su cambio, reinicie Finder e intente nuevamente. Si omite este paso, puede terminar modificando algo que no sea el menú contextual y no darse cuenta hasta días después.

  • Comprende que esto es básicamente un truco, puede que no funcione de la manera que deseas o esperas. Por lo que vale, he estado ejecutando estos cambios (y más) durante al menos un par de semanas y no he tenido efectos negativos.


Ejemplo del menú contextual de Stock Finder

Primero echemos un vistazo a una imagen 'antes' tomada de la publicación del OP que nos muestra un menú contextual predeterminado típico del Buscador lleno de hinchazón.

Menú contextual del buscador hinchado

¡Terrible!

La mayoría de los dispositivos de Apple ya ni siquiera se entregan con grabadoras de DVD, sin embargo, Burn "^1" to discocupan bienes inmuebles valiosos.

Por no mencionar el igualmente inútiles Quick Look, Duplicate, Make Alias, Copy ^1, etc.


Nuevo menú contextual de Hotness

Nuevo calor

Despojado hasta donde pude conseguirlo. Tenga en cuenta que si seleccionáramos un archivo tendríamos los elementos predeterminados Openy de Open with..menú.

No pierdes nada a menos que lo omitas.

Las cosas pueden hacerse bastante escasas si lo desea.


Instrucciones

  • Encuentre el archivo $ LANGUAGE.lproj que le interesa. En mi caso, hablo inglés.
  • cd /System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj
  • ejecutar plutil -convert xml1 Localizable.strings, para convertir Localizable.strings en un archivo de texto plano XML plist
  • HAGA UNA COPIA DE SEGURIDAD DE Cuerdas Localizable . Si arruinas algo, querrás poder revertir tus cambios.
  • Abra Localizable.strings en un editor de texto sin formato / código (vi, pico, emacs, jed, etc. - TextEdit.app no ​​puede guardar archivos * .txt y debe evitarse)

    Encuentra el valor que deseas ocultar. En mi caso fue 'Burn "^ 1" to disk', que es la clave BC50_V2.

    <key>BN50_V1</key>
    <string>Burn to Disc…</string>
    <key>BN50_V2</key>
    <string>Burn “^1” to Disc…</string>
  • Mi primer intento fue eliminar el par clave-valor por completo, pero esto resultó en que la cadena BC50_V1 apareciera en mi menú.

    Algunas cadenas de formato recurrirán a plantillas más genéricas si existen. En ese caso, tendrá que poner a cero múltiples valores.

    Puede ver este comportamiento con BC50_V2 que retrocede a BC50_V1.

    Como quería completar la eliminación de las Burn...entradas del menú, también tuve que poner a cero BC50_V1.

    Hay otros pares de valores clave que tuvieron múltiples fallos, pero generalmente son bastante fáciles de identificar, ya que tendrán el mismo prefijo BC50_y sufijos de incremento numérico_V1, _V2, _V..

  • Puede anotar sus cambios manteniendo una copia del fragmento XML del par clave / valor original dentro de un comentario XML.

    Hago una copia del fragmento para cambiar, comento el fragmento antiguo con una descripción y hago mis modificaciones a la copia. De esa manera puedo revertir fácilmente y no tener que usar el control de versiones o tener múltiples copias del archivo.

<!-- 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 desea cambiar una cadena en lugar de eliminarla por completo, también puede hacerlo. Las variables parecen ser accesibles utilizando el formulario ^<number>. Entonces número representa el enésimo argumento. Si usted se sentía especialmente pimpy podría modificar Burn "^1" to Disca Archive "^1" forever utilizing an optical disk!.
  • Guarda tus modificaciones en el disco
  • killall -HUP Finder reiniciar Finder
  • open .para abrir una ventana del Finder en su directorio de trabajo actual. Haga clic derecho para abrir el menú contextual, verifique que todo se vea bien.
  • ¡Todo listo! No parece haber ninguna penalización por mantener el archivo Localization.strings en el formato de plist de texto, por lo que no necesita preocuparse por convertir dentro y fuera de los formatos binarios o de texto cada vez que realice cambios.
sintetizadorpatel
fuente
Solo una nota en El Capitan debe desactivar el modo de integridad del sistema para cambiar los archivos necesarios. stackoverflow.com/questions/32590053/…
macycron
Todos mis intentos de modificar o incluso hacer copias de seguridad terminan con: Operación no permitida. No importa si uso sudo, su o mi usuario.
Carles Alcolea