¿Alguien sabe cómo puedo eliminar elementos que nunca uso del menú contextual?
por ejemplo: Grabar "yadda yadda" en el disco...
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ú.
Es una pena que no puedas eliminarlos todos. Pero al menos puede ayudarte a deshacerte de algo del desorden.
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 disk
y 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.
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 str
una 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.
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.
"Throw ^1 into the ^2"
"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.
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.
¡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 disc
ocupando un espacio valioso.
Sin mencionar los igualmente inútiles Quick Look
, Duplicate
, Make Alias
, Copy ^1
, etc.
Despojado hasta donde pude conseguirlo. Tenga en cuenta que si estuviéramos seleccionando un archivo, tendríamos los elementos predeterminados
Open
y deOpen with..
menú.
No pierdes nada a menos que lo omitas.
Las cosas se pueden hacer bastante escasas si lo desea.
cd /System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj
plutil -convert xml1 Localizable.strings
, para convertir Localizable.strings en un archivo plist XML de texto sin formatoAbra 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>
^<number>
. Entonces el número representa el n-ésimo argumento. Si te sientes especialmente pimpy puedes modificar Burn "^1" to Disc
a Archive "^1" forever utilizing an optical disk!
.killall -HUP Finder
para reiniciar Finderopen .
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.
usuario62370
paquete