¿Eliminar entradas del menú contextual del buscador?

¿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í

/System/Library/CoreServices/Finder/Contents/Resources/English.lproj/Menubar.nib tiene todas las entradas pero no sé cómo eliminar cadenas
eliminando la sección 'Etiquetas': apple.stackexchange.com/questions/387849/…

Respuestas (2)

En realidad, puede eliminar los 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 > Métodos abreviados de teclado > Servicios

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

ingrese la descripción de la imagen aquí

Es una pena que no puedas eliminarlos todos. Pero al menos puede ayudarte a deshacerte de algo del desorden.

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

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

    Esos son fáciles de eliminar. Se llamen como se llamen, simplemente busquen en su disco esa cadena. es decir Inject Potatos!, el servicio finalmente se encontrará en un archivo llamado Inject Potatos!.<something>. Puede haber algunas otras formas y tamaños de ellos, 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 acerca de las partes internas de Objective-C, pero sospecho que algo similar a esto es lo que está pasando...

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

No hay una cadena de formato (es decir, ""), por lo que siempre termina con struna longitud cero.

Si str tiene una longitud de cero, el solucionador de localización retrocederá en el árbol para encontrar una plantilla de formato de ancestro que funcione. Siempre que elimine a cero todos los ancestros 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 tiene una 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 sabe lo que está haciendo, podría estropear Finder. Use esta lista de verificación para verificar que tiene el kung-fu.
  • Siéntase cómodo usando el caparazón
  • Saber utilizar un editor de texto plano 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 vea bien, vaya a 10. Si realiza un montón de cambios y todo sale mal, tendrá que revertir todos los cambios de todos modos.
  • Sé que el formato NSString es diferente a C, pero si no eres un tipo de Objective-C y necesitas pensar 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"
    • plantilla de impresión: "Throw %s into the %s", arg1, arg2.

    Si realiza una modificación y, después de reiniciar Finder, parece que no tiene efecto; es posible que esté modificando una cadena de localización en alguna otra área que no sea el menú contextual del botón derecho. Revierta su cambio, reinicie Finder y vuelva a intentarlo. Si omite este paso, puede terminar modificando algo más que el menú contextual y no darse cuenta hasta días después.

  • Comprenda que esto es básicamente un truco, es posible que no funcione de la manera que desea o espera. Por lo que vale, he estado ejecutando estos cambios (y más) durante al menos un par de semanas y no he experimentado efectos nocivos.


Ejemplo de menú contextual de Stock Finder

Primero, veamos una imagen de 'antes' tomada de la publicación del OP que nos muestra un menú contextual predeterminado típico del Finder lleno de hinchazón.

Menú contextual del buscador hinchado

¡Horrible!

La mayoría de los dispositivos de Apple ya ni siquiera se envían con grabadoras de DVD, sin embargo, están Burn "^1" to discocupando un espacio valioso.

Sin mencionar los igualmente inútiles Quick Look, Duplicate, Make Alias, Copy ^1, etc.


Nuevo menú contextual de picor

nuevo picor

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

No pierdes nada a menos que lo omitas.

Las cosas se pueden hacer bastante escasas si lo desea.


Instrucciones

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

    Encuentre el valor que desea ocultar. En mi caso, fue 'Grabar "^1" en el disco', 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 deshacerme por completo de las Burn...entradas del menú, también tuve que poner a cero BC50_V1.

    Hay otros pares de valores clave que tenían múltiples alternativas, pero por lo general son bastante fáciles de identificar, ya que tendrán el mismo prefijo BC50_y sufijos que se incrementan numéricamente._V1, _V2, _V..

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

    Hago una copia del fragmento a cambiar, comento el fragmento anterior con una descripción y hago mis modificaciones a la copia. De esa manera, puedo revertir fácilmente y no tengo que usar el control de versiones ni tener varias 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 mediante el formulario ^<number>. Entonces el número representa el n-ésimo argumento. Si te sientes especialmente pimpy puedes modificar Burn "^1" to Disca Archive "^1" forever utilizing an optical disk!.
  • Guarde sus modificaciones en el disco
  • killall -HUP Finderpara 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 formatos binarios o de texto cada vez que realiza cambios.
Solo una nota en El Capitán: debe desactivar el modo de integridad del sistema para cambiar los archivos necesarios. stackoverflow.com/questions/32590053/…
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.