2 votos

Atajo de teclado para un servicio dejado de funcionar

He hecho un método abreviado de teclado para el Buscador que se ejecuta un script que copia la ruta completa del archivo en el portapapeles. El atajo Control + Alt + Comando + C.

Ha trabajado siempre, pero hoy de repente dejó de funcionar. Traté de olfateo para cualquier programa que se activa cuando el acceso directo se prensan /usr/bin/sudo opensnoop en Terminal, pero sin ningún éxito. No he instalado recientemente nuevos programas y no puedo recordar nada de lo particular ocurre que podría ser el culpable.

¿Cómo puedo obtener mi acceso directo en la espalda?

Mi flujo de trabajo de Automator se parece a esto (las acciones son en sueco): enter image description here

3voto

qarma Puntos 71

Este es un comentario extendido contiene algunas sugerencias de cosas para tratar y ayudar a diagnosticar un problema, pero no estoy diciendo que cualquiera de estos sin duda será resolver el problema:

Compruebe defaults buscar choque atajos de teclado

El servicio se ejecuta con un diferente acceso directo y en el interior de Automator. Así que es posible que exista un conflicto de acceso directo que ha aparecido y está bloqueando el original.

En la Terminal (o de otro emulador de terminal), puede recuperar todos los activos específicos de la aplicación atajos de teclado:

defaults find NSUserKeyEquivalents

y su servicio de flujo de trabajo de los accesos directos:

defaults find NSServicesStatus 

Los símbolos usados para representar las teclas modificadoras son:

  • @: command
  • $: shift
  • ~: alt/option
  • ^: ctrl

Por lo tanto, +++C es simbolizado como @~^c (la c está en minúscula).

Usted puede hacer una general defaults búsqueda a través de todos los archivos de preferencias para buscar que la combinación específica de caracteres:

defaults find '@~^c'

También puede buscar la coincidencia de los archivos de preferencias:

grep -iE '@~\^c' ~/Library/Preferences/* /Library/Preferences/* 2>/dev/null

que, en correspondencia, la salida será algo como:

Binary file /Users/CK/Library/Preferences/com.apple.ServicesMenu.Services.plist matches

y, a continuación, puede orientar el dominio específico para examinar su defaults:

defaults read com.apple.ServicesMenu.Services

Aplicación de terceros

Hay aplicaciones de terceros que te permiten ver lo que los atajos de teclado están siendo utilizados por el cual las aplicaciones en su sistema. El que yo conozco es KeyCue:

No estoy avalando el producto y nunca he utilizado yo mismo, pero creo que sería muy útil en la búsqueda de si hay interferencia de otra aplicación o desde el Buscador de dejar de usar esa combinación de teclas.

Es una aplicación de pago (€19.99), pero tiene un período de evaluación:

Todos nuestros productos están disponibles para la evaluación antes de la compra. Mientras que usted no tiene una clave de licencia, KeyCue opera en modo de prueba y en algunas ocasiones muestra un aviso de registro lugar de la tabla de acceso directo.


ADDENDUM : Su Flujo de trabajo

Gracias por publicar una captura de pantalla de su flujo de trabajo. No parece ser nada obstructiva, lo que, evidentemente, la causa de que dejara de responder a un acceso directo.

Sin embargo, voy a aprovechar la oportunidad para sugerir algunas modificaciones, como puedo ver lo que tu AppleScript está haciendo, pero no hacerlo de la manera más óptima.

Aquí está su flujo de trabajo actual:

The OP's current workflow

Empieza por tomar los archivos/carpetas se pasa a la de servicio/acción rápida y copiarlos en el portapapeles. No es necesario y sólo lo hace de Automator hacer más trabajo de lo que tiene que hacer. En su lugar, puede eliminar esa primera acción, y tiene los archivos/carpetas pase directamente en el AppleScript, donde serán almacenados en la variable input.

El AppleScript sí hace uso de application "BBEdit" innecesariamente, por lo tanto, sugiero la eliminación de eso y te voy a mostrar cómo hacer los cambios sin necesidad de llamarlo a él.

Si estoy interpretando su objetivo correctamente de lo que usted dice y de lo que veo en tu flujo de trabajo, desea seleccionar algunos archivos o carpetas, pulse la combinación de teclas, y tienen el URL del archivo de referencias a los archivos/carpetas se copian en el portapapeles, por ejemplo file:///Users/CK/Desktop/somefile.txt.

Su método funciona bien en algunas situaciones, pero se producirá resultados incorrectos en algunas situaciones:

  • Cualquier archivo/carpeta con un espacio en su nombre no va a volver un correcto archivo y hacer clic en un enlace URL. Por ejemplo, el archivo con path /Users/CK/Shared Items/myfile.ext será copiado en el portapapeles como file:///Users/CK/Shared Items/myfile.ext, que es una forma incorrecta de dirección URL codificada de la cadena, por lo tanto el hipervínculo aparecerá de la siguiente forma: file:///Users/CK/SharedItems/myfile.ext. (Técnicamente, otras entidades de carácter necesario para ser codificados por ciento para formar una dirección URL válida, pero creo que es menos importante si usted simplemente está buscando para utilizar de forma local en el Buscador.)

  • Su método actual sustituye a las apariciones de "/Volumes" y las apariciones de "/Users" con "file:///Volumes" y "file:///Users", respectivamente. Esto puede causar problemas para cualquier ruta de acceso del archivo que podría ser algo como esto:

    /Users/CK/Backup/Preferences/Volumesettings/Volumes.dat
    

    Hay tres reemplazos esperando a suceder allí, lo que produciría:

    file:///Users/CK/Backup/Preferencesfile:///Volumesettingsfile:///Volumes.dat
    

Haber limpiado el script, y elimina lo superfluo de acción, aquí es lo que yo estoy sugiriendo que sería una forma más inteligente para implementar su servicio/acción rápida:

Suggested edit to workflow

El AppleScript:

property text item delimiters : linefeed


on run {FSItems}
    local FSItems

    tell application "System Events" to repeat with FSItem in FSItems
        set FSItem's contents to the URL of FSItem
    end repeat

    set the clipboard to FSItems as text
end run

Utiliza los Eventos del Sistema (que es un rostro, aplicación de fondo que puede realizar eficiente de las operaciones del sistema de archivos) para tomar cada archivo/carpeta pasado en el flujo de trabajo y obtener un AppleScript propiedad denominada URL, que convenientemente se sostiene perfectamente formateado, validado la dirección URL del archivo de referencia para un archivo. Una vez que se tiene una lista de direcciones Url de archivos, los combina en una sola pieza de texto-archivos de una URL por línea y lugares que en el portapapeles.

Por lo tanto, seleccionar los siguientes archivos/carpetas en el Finder (si usted se imagina, he seleccionado tres archivos y una carpeta, a continuación, pulsa la tecla de acceso directo para activar el servicio):

/Usuarios/CK/Desktop/NSImage.png
/Usuarios/CK/Desktop/Imágenes GIF
/Volúmenes/Leptón 1.5.2-alfa-2
/Users/CK/Desktop/mandelbrot.js

daría el siguiente contenido del portapapeles (esta es una prueba en vivo):

file:///Users/CK/Desktop/NSImage.png
file:///Users/CK/Desktop/GIF%20Images/
file:///Volumes/Lepton%201.5.2-alpha-2/
file:///Users/CK/Desktop/mandelbrot.js

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X