Actualización: este método funciona en OS X 10.11 y versiones anteriores, al menos hasta OS X 10.8 (no lo probé en nada anterior a OS X 10.8), pero ya no funciona como está codificado en macOS 10.12 debido a cambios significativos en Mission Control realizados por Apple .
Para agregar mediante programación un escritorio en Mission Control, el código a continuación se puede usar como AppleScript o BASH Script junto con un Automator Service usando Ejecutar AppleScript o Ejecutar Shell Script, respectivamente, y una secuencia de teclas asignada al Servicio en Preferencias del sistema en Teclado Atajos.
Código AppleScript:
do shell script "open -a '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
tell application "System Events" to key code 53
Código de secuencia de comandos BASH:
#!/bin/bash
open -a 'Mission Control'
osascript -e 'delay 0.5' \
-e 'tell application "System Events" to click (every button whose value of attribute "AXDescription" is "add desktop") of group 1 of process "Dock"' \
-e 'delay 0.5' \
-e 'tell application "System Events" to key code 53'
Abra Automator y seleccione Servicio .
Conjunto: el servicio no recibe ninguna entrada en ninguna aplicación
Agregue una acción Ejecutar AppleScript o Ejecutar script de Shell .
Agregue el código apropiado para la acción de destino .
Guarde el servicio como, por ejemplo: Agregar nuevo escritorio
Asigne un atajo de teclado para el Servicio en Preferencias del Sistema .
Nota: Tendrá que asignar una secuencia de teclas que no se use en ningún otro lugar del Sistema o en Finder si elige sobre cualquier aplicación en el Servicio .
Lo probé con: ⌃⌥⌘D (Control-Opción-Comando-D)
Bien, usando la grabación de Automator, hice que funcionara con una versión revisada de AppleScript en la otra respuesta.
Sustitúyase "del grupo 1" por "del grupo 2 del grupo 1 del grupo 1 de":
on run {input, parameters}
do shell script "open -a 'Mission Control'"
delay 0.5
tell application "System Events" to click (every button whose value of attribute "AXDescription" is "add desktop") of group 2 of group 1 of group 1 of process "Dock"
delay 0.5
tell application "System Events" to key code 53
return input
end run
Sí, eso funciona, más o menos. El problema es que la solución de user3439894 termina arrojando un error si la aplicación activa (Finder, textedit, etc.) no se ha agregado al panel de Accesibilidad de Seguridad y Privacidad.
Para evitar esto, necesitamos dos flujos de trabajo, el servicio del usuario 3439894 con la lista de grupos actualizada como una aplicación de Automator y un segundo servicio de Automator para iniciarlo.
La aplicación Automator (guardada en /Aplicaciones como "Nuevo escritorio").
en ejecución {entrada, parámetros}
hacer shell script "abrir -a 'Mission Control'"
retraso 0.5
decirle a la aplicación "Eventos del sistema" que haga clic (cada botón cuyo valor del atributo "AXDescription" sea "agregar escritorio") del grupo 2 del grupo 1 del grupo 1 del proceso "Dock"
retraso 0.5
Dile a la aplicación "Eventos del sistema" el código clave 53
entrada de retorno
carrera final
Luego, solo necesitamos crear el segundo flujo de trabajo como un servicio, usando la acción "Iniciar aplicación" y guardarlo como "Nuevo_escritorio".
Los últimos pasos son agregar "Nueva aplicación de escritorio" a Preferencias del sistema> Seguridad y privacidad> Accesibilidad
A continuación, agregue su método abreviado de teclado en Preferencias del sistema > Teclado > Accesos directos > Servicios > General para New_Desktop.workflow.
qcom
jonathan de mojado