¿Cómo asigno un atajo de teclado a un AppleScript que escribí?

43

¿Cómo asigno un atajo de teclado a un AppleScript? Encontré un script para volver automáticamente a la bandeja de entrada en Office 2011.

Tom
fuente
1
Como se señala en esta respuesta, los atajos de teclado asignados a través de servicios no siempre son consistentes.
William

Respuestas:

48

¡También es posible sin aplicaciones de terceros pagas!
1. Abrir Automator.
2. Realice una nueva acción rápida.
3. Asegúrese de que no reciba ninguna entrada en todos los programas.
4. Seleccione Ejecutar Apple Script y escriba su código.
5. ¡Ahorra!

Ahora vaya a Preferencias del sistema> Teclado> Accesos directos. Seleccione Servicios en la barra lateral y encuentre su servicio. Agregue un acceso directo haciendo doble clic (none).

Finalmente, vaya a Preferencias del sistema> Seguridad> Privacidad> Accesibilidad y agregue Automator y la aplicación preferida para ejecutar el acceso directo.

MegaCookie
fuente
2
Ese último "Finalmente" es importante: si se lo pierde, aparece un cuadro de diálogo confuso "La acción [...] encontró un error", que le ofrece mostrar Flujo de trabajo y probablemente no lo haga más sabio.
ecmanaut
Descubrí el problema, el último paso es diferente en mi sistema operativo mizage.com/help/accessibility.html#10.7
William
55
¿Qué quieres decir con la aplicación preferida?
William
Sería bueno si hubiera una manera de automatizar el paso "ahora go to System Preferences > Keyboard > Shortcuts. Select Services from the sidebar and find your service. Add a shortcut by double clicking (none)." Debe ser posible, no
tengo
3
@William, como si escribieras un AppleScript en el Finder, solo selecciona Automator y Finder en la configuración de Accesibilidad.
MegaCookie
15

En resumen, deberá usar:

  • Automator para crear un servicio que ejecute un Apple Script
  • Preferencias del sistema para asignar un atajo de teclado al servicio

A continuación se detallan los pasos involucrados para cada uno.

1. Crear un servicio usando Automator

  1. Inicie Automator (generalmente se encuentra dentro de su carpeta de Aplicaciones)
  2. Vaya a Archivo> Nuevo
  3. Seleccione Servicio y haga clic en Elegir
  4. En la parte superior derecha de la ventana que aparece, asegúrese de que "No hay entrada" esté seleccionado de la lista desplegable del servicio recibe
  5. Asegúrese de que la lista desplegable En muestra "Cualquier aplicación"
  6. En la segunda columna que contiene la lista larga, busque "Ejecutar AppleScript" y haga doble clic en él
  7. Esto agregará la ventana Ejecutar AppleScript a la derecha
  8. Ahora, reemplace el (* Su script va aquí *) con el script que desea
  9. Guarde el servicio con un nombre significativo (por ejemplo, GoToInbox).

Ahora al siguiente paso.

2. Creando tu atajo

  1. Vaya a Preferencias del sistema> Teclado> Accesos directos
  2. Seleccionar servicios de la barra lateral
  3. Encuentre su servicio (estará en la lista en el lado derecho)
  4. Agregue un acceso directo haciendo doble clic en el nombre del servicio
  5. Ahora vaya a Preferencias del sistema> Seguridad y privacidad> Privacidad
  6. Seleccione Accesibilidad en la barra lateral
  7. Haga clic en el signo + (es posible que deba desbloquear el candado si está bloqueado)
  8. Añadir automatizador.
  9. Agregar buscador (para encontrar esto, deberá navegar a /System/Library/CoreServices/Finder.app ).
  10. Salga de sus preferencias del sistema.

Ahora deberías poder hacer dos cosas:

1. Ejecute el servicio desde cualquier aplicación yendo a la lista de Servicios dentro de cualquier menú de Aplicación (por ejemplo, Finder> Servicios, Safari> Servicios, TextEdit> Servicios, etc.) y seleccione el servicio que acaba de crear.

2. Use el método abreviado de teclado para ejecutar el servicio.

NOTA: Soy consciente de que, para algunos usuarios, los métodos abreviados de teclado no parecen funcionar aunque hayan sido asignados a un servicio. Este es un tema completamente diferente, pero si esto sucede en su caso, al menos puede ejecutar el servicio desde cualquier aplicación que esté utilizando.

Déjame saber cómo vas.

Monomeeth
fuente
1
¿Por qué debo agregar el buscador manualmente y en qué aplicaciones no funciona en general? Parece que a veces tengo que ejecutar el script en los servicios para que se registre antes de que registre el shorcut del teclado, lo cual es una pena.
William
2
Sí, el problema al que me referí en mi Nota al final a menudo puede (pero no siempre) rectificarse ejecutando primero un servicio (y a veces solo basta con acceder al menú Servicios) antes de que se reconozca el atajo de teclado. Este es un error extremadamente molesto que ha existido durante mucho tiempo y ciertamente recomiendo que envíe un informe de error a Apple . En cuanto a por qué debe agregar Finder manualmente , simplemente porque no se agrega de forma predeterminada. Finalmente, no entendí lo que querías decir con qué aplicaciones no funciona esto en general .
Monomeeth
Ignorando mi pregunta sobre la aplicación no funciona en algunas aplicaciones. Parece que ejecutar el script una vez en el menú Servicio corrige este problema y su explicación explica el problema que estaba teniendo. ¿Por qué debo agregar Automator Finder en la lista Lista de accesibilidad que parece no hacer la diferencia al ejecutar comandos (Esa fue mi pregunta básica)?
William
¡Buena pregunta! Si encuentra que los pasos 5 a 9 anteriores para crear un acceso directo no son necesarios para usted, entonces eso es genial. Sin embargo, he ayudado a mucha gente a crear atajos de teclado para ejecutar scripts personalizados y he descubierto que incluir esos pasos a menudo evita un mensaje de error (no recuerdo qué es ahora o en qué circunstancias aparecería). Tal vez no debería incluir esos pasos por defecto, pero eso es lo que he estado haciendo durante varios años (aunque los pasos exactos diferirán dependiendo de su versión de macOS; arriba incluí los pasos para El Capitan según su generosidad).
Monomeeth
Los pasos 5 a 9 deberían ser perfectamente innecesarios para asignar un acceso directo, aunque podrían ser necesarios para que el script activado se ejecute sin problemas si utiliza las funciones de automatización de la interfaz de usuario (clics simulados del mouse y pulsaciones de teclas). Sin embargo, ese último caso es otro problema completamente; no debe combinar dos problemas al incluir estos pasos en su respuesta.
kopischke
9

No puede asignar métodos abreviados de teclado a AppleScripts fuera de la caja. Sin embargo, puedes:

  1. use un lanzador que admita la configuración de teclas de acceso rápido globales y la ejecución de AppleScripts ( Alfred , Keyboard Maestro , FastScripts , lo que le apetezca ), o
  2. ponga el script en una acción Ejecutar AppleScript dentro de un servicio Automator . Tenga en cuenta que debe ser un servicio, no una aplicación o un flujo de trabajo ordinario: a los servicios se les pueden asignar teclas de acceso rápido en la configuración del teclado de Preferencias del Sistema.
kopischke
fuente
Simplemente siga los pasos en la respuesta de @ MegaCookie .
kopischke
¿De qué versión del sistema operativo es usted, mi Mac 10.6.5 no parece tener la opción "Seleccione Ejecutar script de Apple y escriba su código"?
William
1
No es "Seleccionar Ejecutar AppleScript", es, como se señaló en mi respuesta, la acción Ejecutar AppleScript que necesita agregar a su servicio Automator; simplemente arrástrelo al área de acción desde la biblioteca, eso le dará un campo de texto con un andamio de función al que puede agregar su código. Además, dudo que sean necesarias las configuraciones de accesibilidad en la respuesta de @ MegaCookie, que pertenecen a la automatización de la interfaz de usuario.
kopischke
3

Nota: En macOS Mojave se le cambió el nombre de "Servicio" a "Acción rápida" en Automator.

  1. cmd+ spacey escriba "automatizador"
  2. Seleccione: Archivo> Nuevo
  3. Seleccione "Acciones rápidas"
  4. Busque en la parte superior de la sección izquierda "applecript" o "shellscript" o "javascript"
  5. Arrastre la acción deseada al flujo de trabajo del lado derecho
  6. Archivo> Guardar con nombre deseado

Para agregar una pulsación de tecla a su flujo de trabajo:

  1. Abra las preferencias del sistema
  2. Seleccione Teclado> Atajos
  3. Seleccionar servicios a la izquierda
  4. Encuentre el servicio recién creado y haga doble clic en "ninguno" para agregar un atajo de teclado
spencer.sm
fuente
Nota: si no lo convierte en una Acción rápida (p. Ej., Lo convierte en un "Flujo de trabajo"), la lista de Accesos directos no lo detectará.
Sridhar Sarnobat
-2

Puede ir a Preferencias del sistema -> Teclado -> Accesos directos -> agregar un nuevo acceso directo. Luego puede seleccionar su script.

https://support.apple.com/kb/PH18418?locale=en_US

Arecibo
fuente
3
Eso no funcionará. El documento al que está vinculando describe cómo (re) asignar una tecla de acceso rápido a un comando de menú de una aplicación .
kopischke
Enlace roto, Apple ha deshabilitado hace mucho tiempo esta funcionalidad de un solo clic, reemplazándola por una operación de 90 clics que involucra aplicaciones de terceros.
Eric Leschinski