Entonces, el objetivo final de lo que estoy buscando hacer es este:
Cuando estoy en el trabajo uso un monitor externo con mi MBP. Tengo un conjunto constante de espacios y aplicaciones que configuro todos los días. Lo que me gustaría hacer es crear un applescript o una combinación de applescript y una aplicación de automatización que, una vez iniciada, creará la cantidad necesaria de espacios en cada monitor y luego abrirá las aplicaciones apropiadas en cada espacio.
No sé si esto se logra mejor completamente en applescript o, como dije, usando una combinación de applescript para crear los espacios y automator para abrir la mayor parte de las aplicaciones y las ventanas del navegador que uso.
Para agregar un Desktop Space a cada monitor/pantalla:
do shell script "/Applications/Mission\\ Control.app/Contents/MacOS/Mission\\ Control"
delay 0.5
tell application "System Events" to click (every button whose value of attribute "AXDescription" is "add desktop") of group 1 of process "Dock"
delay 0.5
do shell script "/Applications/Mission\\ Control.app/Contents/MacOS/Mission\\ Control 1"
Se puede modificar el código para agregar más escritorios.
Para cambiar a una aplicación de escritorio / pantalla completa en particular en una configuración de pantalla dual, por ejemplo, Escritorio 3:
do shell script "/Applications/Mission\\ Control.app/Contents/MacOS/Mission\\ Control"
delay 0.5
try
tell application "System Events" to click (first button whose value of attribute "AXDescription" is "exit to Desktop 3") of list 1 of group 1 of process "Dock"
on error
tell application "System Events" to click (first button whose value of attribute "AXDescription" is "exit to Desktop 3") of list 2 of group 1 of process "Dock"
end try
Hay debates por ahí sobre convertir una aplicación en modo de pantalla completa con script.
Haga clic en el botón 'agregar escritorio' en el elemento de la interfaz de usuario "Barra espaciadora" en Big Sur (no estoy seguro de cuándo cambió esto).
hacer shell script "abrir -a 'Mission Control'" retraso 0.5 Dile a la aplicación "Eventos del sistema" que ¬ haga clic en (cada botón cuyo valor de atributo "AXDescription" sea "agregar escritorio") ¬ del elemento de interfaz de usuario "Barra espaciadora" del elemento de interfaz de usuario 1 del grupo 1 del proceso "Dock" retraso 0.5 hacer shell script "abrir -a 'Mission Control'"
Syntax error: Can’t get "exit to Desktop 3" of UI element 1 of UI element "Spaces Bar" of UI element 1 of group 1. Access not allowed.
... Estoy bastante seguro de que estoy en el lugar correcto. Estoy un nivel más profundo en el Accessibility Inspector
, y he probado un montón de cosas diferentes. Es muy posible que aún no haya probado lo correcto, también es posible que la declaración "Acceso no permitido" signifique lo que dice. Seguiré intentándolo antes de pedir más ayuda.tell application "Mission Control" to launch
. Creo que esto también le permite eliminar la delay
confiabilidad ya que su secuencia de comandos no recuperará el control hasta que se haya respondido al evento, mientras que la secuencia de comandos de Shell regresa de inmediato.
Tetsujin
usuario3439894