He creado un flujo de trabajo de Automator; luego he creado un atajo de teclado en la configuración del teclado para ejecutar esto como una acción rápida al pulsar una tecla.
Todo esto funciona. Pero el flujo de trabajo parece ejecutarse en el contexto de seguridad de la aplicación que estaba activa cuando pulsé la tecla de acceso directo.
La actividad dentro del servicio no tiene nada que ver con la aplicación actual (toma una captura de pantalla y luego hace algo con ella); no accede a la aplicación "actual" de ninguna manera.
Necesita acceder a los Eventos del Sistema, y así entra en juego la seguridad. Luego tengo que habilitar el acceso a esas funciones para cualquier aplicación que esté en primer plano cuando pulse la tecla de acceso rápido.
¿Es posible evitar esto, es decir, ejecutar mi servicio en un contexto propio?
EDITAR para aclarar: El flujo de trabajo hace clic en los menús de las aplicaciones, y envía pulsaciones de teclas.
... take a screenshot ...
... startup GIMP ...
tell application "System Events"
tell process "GIMP-2.10"
...
click menu item "From Clipboard" of menu 1 of menu item "Create" of menu 1 of menu bar item "File" of menu bar 1
...
keystroke " "
...
Como ejemplo, digamos que pulso la tecla de acceso rápido mientras Emacs está delante. Entonces me aparece un aviso de seguridad pidiéndome que permita algunos aspectos de seguridad para Emacs . No quiero darle a Emacs ningún permiso, ni quiero repetir esto para cualquier otra aplicación que pueda estar enfocada cuando haga una captura de pantalla más tarde.