Crea un nuovo spazio usando una scorciatoia da tastiera


10

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?

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine


Domanda molto utile per il mio flusso di lavoro. Mi piacerebbe anche sapere il tuo sfondo del desktop!
Qcom,

1
Sono contento che ti sia piaciuta la domanda :) Ecco un link allo sfondo Sometpeach.com/wp-content/uploads/2014/06/…
Jonathan De Wet,

Risposte:


1

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)


Grazie ha funzionato benissimo. Pensi di poter creare un secondo script per eliminare gli spazi?
Jonathan De Wet,

@Jonathan, L'aggiunta di un desktop è una sorta di kludge, a livello di codice, per cominciare e possibile perché c'è un AXButton con AXDescription di "aggiungi desktop" che può essere cliccato, tuttavia, gli AXButton in Mission Control con AXTitle, ad es. " Desktop 2 ", sebbene abbia un elemento vicino (un cerchio con ascia, nell'angolo in alto a sinistra del pulsante) non è indirizzabile nello stesso modo in cui non esiste un pulsante" rimuovi desktop ". Quindi davvero non conosco un modo semplice per rimuoverne uno a livello di codice, mi dispiace.
user3439894,

Ha senso. Grazie per aver dedicato del tempo a spiegarmelo
Jonathan De Wet,

L'ho provato in macOS (10.12.1) e non ho avuto fortuna. Apre Mission Control per 0,5 secondi ma il pulsante Nuovo desktop non viene premuto.
domi91c,

2
@ user3439894 Sì, stavo solo commentando nel caso qualcuno avesse una risposta per MacOS. Non avevo preso in considerazione l'idea di creare una domanda separata; dovrei? Grazie, apprezzo l'aiuto.
domi91c,

2

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

La risposta selezionata non ha funzionato per me, ma questa ha funzionato =)
Brian Schermerhorn,

1

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.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.