OS X - Come fare in modo che le applicazioni di avvio (facoltativamente) non si focalizzino?


0

C'è un modo per fare in modo che l'applicazione iniziale non si concentri? C'è un'impostazione in modo che le nuove finestre non si aprano su ciò su cui stiamo attualmente lavorando? (Forse un'opzione per farli apparire sotto o iniziare a minimizzare?)

Sfondo: utilizzo gli script da riga di comando (Terminale) per caricare il mio ambiente di lavoro ogni giorno e non posso usare il mio computer mentre lo script è in esecuzione. (Nessun problema, posso solo fare altre cose per qualche minuto). VirtualBox è principalmente l'applicazione in cui noto questo.


Grazie per lo sfondo. Esistono modi per fare in modo che le app vengano avviate ma non attivate (in applecript) ma puoi fornire una descrizione più dettagliata di ciò che stai facendo, di ciò che sta facendo lo script e di ciò che sta realmente accadendo per farti desiderare questo comportamento entro i limiti del flusso di lavoro che descriverete.
markhunte

Risposte:


2

open -jga TextEditapre TextEdit nascosto ( -j) e senza renderlo in primo piano ( -g). L' -jopzione è stata aggiunta in 10.8 e viene mostrata solo nel messaggio di aiuto e non nella pagina man. Se TextEdit è già in esecuzione, open -ja TextEdit(senza -g) renderebbe TextEdit in primo piano e non nascosto. Per alcune applicazioni come TextEdit e Mail, open -jgapre una nuova finestra visibile se l'applicazione è in esecuzione ma non ha finestre aperte, ma è possibile utilizzare qualcosa come pgrep -x TextEdit||open -jga TextEdituna soluzione alternativa.

Una seconda opzione in 10.9 e successive è lsappinfo launch launchandhide=true nofront=true /Applications/TextEdit.app.

Una terza opzione è osascript -e 'launch app "TextEdit"'. A differenza dei comandi opene lsappinfo, viene bloccato fino a quando l'applicazione non termina l'apertura. Per alcune applicazioni come TextEdit e Mail, il launchcomando apre una nuova finestra visibile se l'applicazione non è già in esecuzione.

Modifica: nessuna delle opzioni sopra sembra funzionare con VirtualBox, ma puoi nascondere VirtualBox dopo averlo aperto:

open -jga VirtualBox;lsappinfo setinfo -app VirtualBox kLSApplicationIsHiddenKey=true

osascript -e 'launch app "VirtualBox"' -e 'delay 1' -e 'tell app "System Events" to set visible of process "VirtualBox" to false'


Tanti strumenti fantastici! Sono stato quasi in grado di farlo funzionare con l'utility lsappinfo (tranne per il fatto che non avrebbe aperto un nuovo elemento sul dock - potrebbe aprire solo una macchina virtuale (forse c'è un'opzione per risolvere il problema)). Alla fine , quello che ha funzionato per me è stato: open -gjn -a VirtualBox --args --startvm "virtual_machine_name"(dove -nsignifica iniziare in una nuova finestra, e tutto ciò che segue --argsè incluso come argomento della riga di comando per l'applicazione specificata con -a) :). Funziona meravigliosamente!
user2533809
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.