Update: Diese Methode funktioniert in OS X 10.11 und früher mindestens bis OS X 10.8 (habe es nicht auf etwas älter als OS X 10.8 getestet), funktioniert aber nicht mehr wie in macOS 10.12 codiert, da Apple wesentliche Änderungen an Mission Control vorgenommen hat .
Um einen Desktop in Mission Control programmgesteuert hinzuzufügen, kann der folgende Code als AppleScript oder BASH-Skript in Verbindung mit einem Automator-Dienst verwendet werden, indem AppleScript ausführen bzw. Shell-Skript ausführen und eine dem Dienst in den Systemeinstellungen in der Tastatur zugewiesene Tastenfolge verwendet werden Abkürzungen.
AppleScript-Code:
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
BASH-Skriptcode:
#!/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'
Öffnen Sie Automator und wählen Sie Service .
Gesetzt: Der Dienst erhält in keiner Anwendung Eingaben
Fügen Sie entweder eine Aktion „ AppleScript ausführen “ oder „ Shell-Skript ausführen“ hinzu .
Fügen Sie den entsprechenden Code für die Zielaktion hinzu .
Speichern Sie den Dienst als, zB: Neuen Desktop hinzufügen
Weisen Sie dem Dienst in den Systemeinstellungen eine Tastenkombination zu .
Hinweis: Sie müssen eine Tastenfolge zuweisen, die nicht an anderer Stelle im System oder im Finder verwendet wird , wenn Sie sich für eine Anwendung im Dienst entscheiden .
Ich habe es getestet mit: ⌃⌥⌘D (Control-Option-Command-D)
OK, mit der Automator-Aufzeichnung habe ich es mit einer überarbeiteten Version des AppleScripts in der anderen Antwort zum Laufen gebracht.
„von Gruppe 1“ ersetzen durch „von Gruppe 2 von Gruppe 1 von Gruppe 1 von“:
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
Ja, das funktioniert, irgendwie. Das Problem ist, dass die Lösung von user3439894 am Ende einen Fehler ausgibt, wenn die aktive Anwendung (Finder, textedit usw.) nicht zum Bereich Sicherheit und Datenschutz hinzugefügt wurde.
Um dies zu umgehen, benötigen wir zwei Workflows, den Dienst von user3439894 mit der aktualisierten Gruppenliste als Automator-Anwendung und einen zweiten Automator-Dienst, um ihn zu starten.
Die Automator-Anwendung (gespeichert in /Applications als „Neuer Desktop“.)
on run {Eingabe, Parameter}
Führen Sie das Shell-Skript "open -a 'Mission Control'" aus
Verzögerung 0,5
Sagen Sie der Anwendung "Systemereignisse", dass sie klicken soll (jede Schaltfläche, deren Wert des Attributs "AXDescription" "Desktop hinzufügen") der Gruppe 2 der Gruppe 1 der Gruppe 1 des Prozesses "Dock" ist
Verzögerung 0,5
Teilen Sie der Anwendung "Systemereignisse" den Schlüsselcode 53 mit
Eingang zurückgeben
Endlauf
Dann müssen wir nur noch den zweiten Workflow als Dienst erstellen, indem wir die Aktion „Launch Application“ verwenden und ihn als „New_Desktop“ speichern.
Die letzten Schritte bestehen darin, „Neue Desktop.App“ zu den Systemeinstellungen > Sicherheit & Datenschutz > Eingabehilfen hinzuzufügen
Fügen Sie dann Ihre Tastenkombination in Systemeinstellungen > Tastatur > Verknüpfungen > Dienste > Allgemein für den New_Desktop.workflow hinzu.
Qcom
Jonathan De Wet