Sí, Automator es la mejor opción aquí. Para crear el servicio, siga estos pasos:
Abra Automator y seleccione Servicio:
Busque 'applescript' y arrastre la acción al panel derecho:
Cambie Service receives selected text
a Service receives no input
para que siempre aparezca en el menú Servicios:
Reemplazar (* Your script goes here *)
con:
do shell script "/usr/bin/osascript /path/to/your/script.scpt"
si desea ejecutar su .scpt
archivo existente . Tenga en cuenta que osascript no puede manejar la interacción del usuario como mostrar una ventana de diálogo:
Para superar esta limitación, use esta solución alternativa o simplemente reemplácela (* Your script goes here *)
con el contenido de su script.
Guárdalo:
Si lo desea, puede asignar un acceso directo a su nuevo servicio. Seleccione Servicios> Preferencias de servicios en Finder (o cualquier aplicación abierta):
Asigne un shorcut no tan común:
Ahora puede acceder a su servicio desde cualquier aplicación a través del acceso directo que asignó en el paso anterior:
Si alguna vez desea deshacerse del servicio abierto ~/Library/Services
, elimínelo y vacíe la papelera:
osascript
, como se explica en otras respuestas.osascript
en Automator para ejecutar su.scpt
archivo, una limitación y dos soluciones.osascript
necesita 4 segundos adicionales para ejecutar su script, pero Automator no es la causa de la demora, lo cual fue mi preocupación. Es posible que desee depurarosascript
, consulte opensourcehacker.com/2011/12/02/… y stackoverflow.com/questions/31045575/…En el script, agregue un
on run
argumento:Luego puede usar la acción "Ejecutar script de shell" de Automator con el
osascript
comando:osascript
es un comando que ejecuta AppleScript en el shell. Necesita las líneas en el script para permitir que el script se ejecute fuera del editor AppleScript.fuente
on run {input, arguments}
formulario especial , pero incluso en Automator puede eliminar el controlador de ejecución.Quizás desee echar un vistazo a este servicio , que le permite "crear servicios de Mac OS X a partir de cualquier script".
fuente
No recomendaría crear servicios de Automator para asignar accesos directos a los scripts. Hay un error en 10.7 y 10.8 donde los métodos abreviados de teclado para los servicios de Automator no siempre funcionan hasta que pasa el cursor sobre el menú de servicios desde la barra de menú. También hay un retraso relativamente largo (quizás de 0.1 a 1 s) antes de que se ejecuten los servicios.
Consulte esta respuesta para conocer otras formas de asignar métodos abreviados de teclado a los scripts. Yo uso FastScripts y Alfred yo mismo.
fuente
Puede EJECUTAR el script existente con un simple servicio de automatización como este. Y asigne su atajo desde dentro de los atajos del teclado de la forma habitual. Solo recuerde que algunas aplicaciones pueden necesitar ser relanzadas antes de que tomen los atajos.
ejemplo.
guión sayHello:
Servicio de automatización:
Que en este ejemplo usa:
La acción es un script de ejecución de shell. El código solo usa el osascript del comando de Unix y la ruta al archivo. La entrada de paso puede ser stdn o argumento
No es necesario hacer nada especial al guión.
Para obtener más detalles sobre el comando osascript, consulte las páginas del manual . La página del manual da otro ejemplo en el que puede pasar argumentos al script.
fuente
Para desarrollar un Servicio, necesita algún tipo de software que cree un Servicio como uno de los siguientes:
Todos los tipos de servicios anteriores son paquetes. Todas son carpetas que contienen un plist que especifica los atributos de un Servicio.
Así es como creé un Servicio usando Automator que usa una acción "Ejecutar AppleScript" Automator para llamar a un .script existente.
fuente