Sono consapevole che puoi farlo da Mission Control facendo clic su e non ci sono scorciatoie disponibili in "Tastiera".
Ci sono modi per farlo utilizzando un programma di terze parti o Applescript?
Sono consapevole che puoi farlo da Mission Control facendo clic su e non ci sono scorciatoie disponibili in "Tastiera".
Ci sono modi per farlo utilizzando un programma di terze parti o Applescript?
Risposte:
Aggiornamento: questo metodo funziona su OS X 10.11 e precedenti almeno su OS X 10.8 (non è stato testato su qualcosa di più vecchio di OS X 10.8) ma non funziona più come codificato in macOS 10.12 a causa di modifiche significative a Mission Control apportate da Apple .
Per aggiungere a livello di programmazione un desktop in Mission Control, il codice seguente può essere usato come uno script AppleScript o BASH in combinazione con un servizio di automazione usando rispettivamente Esegui AppleScript o Esegui script shell e una sequenza di tasti assegnata al servizio in Preferenze di Sistema in Tastiera Tasti di scelta rapida.
Codice 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
Codice script 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'
Apri Automator e seleziona Servizio .
Set: il servizio non riceve input in nessuna applicazione
Aggiungere o un Run AppleScript o Run Shell Script azione .
Aggiungi il codice appropriato per l' azione di destinazione .
Salvare il servizio come, ad esempio: Aggiungi nuovo desktop
Assegnare una scorciatoia da tastiera per il servizio nelle Preferenze di Sistema .
Nota: è necessario assegnare una sequenza di tasti che non viene utilizzata altrove nel Sistema o nel Finder se si sceglie su qualsiasi applicazione del Servizio .
L'ho provato con: ⌃⌥⌘D (Control-Option-Command-D)
OK, usando la registrazione di Automator, l'ho fatto funzionare con una versione rivista di AppleScript nell'altra risposta.
Sostituisci "del gruppo 1" con "del gruppo 2 del gruppo 1 del gruppo 1 di":
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ì, funziona, in un certo senso. Il problema è che la soluzione di user3439894 finisce per generare un errore se l'applicazione attiva (Finder, textedit, ecc.) Non è stata aggiunta al riquadro Sicurezza e accessibilità della privacy.
Per ovviare a questo, abbiamo bisogno di due flussi di lavoro, il servizio di user3439894 con l'elenco dei gruppi aggiornato come applicazione di Automator e un secondo servizio di Automator per avviarlo.
L'applicazione Automator (salvata in / Applicazioni come "Nuovo desktop".)
in esecuzione {input, parametri}
eseguire lo script di shell "open -a 'Mission Control'"
ritardo 0,5
dire all'applicazione "Eventi di sistema" di fare clic (ogni pulsante il cui valore dell'attributo "AXDescription" è "aggiungi desktop") del gruppo 2 del gruppo 1 del gruppo 1 del processo "Dock"
ritardo 0,5
comunica all'applicazione "Eventi di sistema" il codice chiave 53
input di ritorno
fine corsa
Quindi dobbiamo solo creare il secondo flusso di lavoro come servizio, usando l'azione "Avvia applicazione" e salvarlo come "New_Desktop"
Gli ultimi passaggi sono l'aggiunta di "New Desktop.App" a Preferenze di Sistema> Sicurezza e privacy> Accessibilità
Quindi aggiungi la scorciatoia da tastiera in Preferenze di Sistema> Tastiera> Scorciatoie> Servizi> Generale per New_Desktop.workflow.