Come aprire nuove finestre come istanze di applicazioni separate per Chrome, Terminal?

15

Passando da Linux (OpenBox WM) a MBP, sto lottando per recuperare il livello di produttività a cui ero abituato ... Una cosa specifica che lo sta uccidendo è l'insistenza di OSX sulla separazione tra "applicazioni" e "finestre", assegnare diverse combinazioni di tasti per passare da una all'altra, ciascuna con il proprio comportamento di rotazione (sigh). Ciò diventa ancora peggiore perché OSX insiste nel portare tutte le finestre dell'applicazione X in primo piano ogni volta che passo ad esso. Spesso mi imbatto in situazioni in cui ho due o più finestre di Chrome e due o più finestre di Terminale, ogni gruppo copre l'intero spazio del desktop, ma non posso avere uno di fronte allo stesso tempo.

Altri vincoli: non voglio spostare finestre per separare gli spazi di lavoro (o qualunque cosa venga chiamata) solo così posso lavorare con loro. Preferisco non usare il mouse, ma sono disposto a farlo se questo risolverà il mio problema (non sarà nel caso precedente).

Una cosa che potrebbe risolvere il mio problema è la possibilità di avviare nuove finestre delle applicazioni a cui tengo (Chrome, Terminal) come istanze separate. Questo mi consentirà di passare da una posizione all'altra arbitrariamente senza forzarle tutte verso la parte anteriore.

Qualcuno sa di un modo per farlo in Yosemite? Grazie mille!

    
posta garnold 09.03.2016 - 16:02
fonte

4 risposte

11

Puoi provare la seguente sintassi usando il comando open :

open -na "Google Chrome"

dove -n parametri apre una nuova istanza anche se ne è già in esecuzione.

L'aggiunta di extra --user-data-dir avvierà l'istanza nella directory del profilo separata, ad es.

open -na "Google Chrome" --args --user-data-dir="$PWD/Foo"

E utilizzando --profile-directory puoi modificare il nome profilo predefinito.

    
risposta data 26.10.2016 - 14:25
fonte
5

Ok, una risposta completa per il caso generale e specificamente per Chrome:

Per la maggior parte delle applicazioni, il lancio con open -naF "App Name" o open -nF /path/to/application.app dovrebbe essere sufficiente (vedi Safari, Forklift, Office apps, ecc.).

  • -n apre una nuova istanza
  • -a dice open per cercare nell'elenco delle app registrate (non è necessario specificare il percorso completo, ma può andare storto se si hanno più versioni di un'app. A volte vedo problemi sul mio sistema con la differenziazione tra app macOS e app installate da sistemi operativi Parallels ... Preferisco specificare il percorso direttamente.)
  • -F apre una nuova istanza (ignora lo stato di salvataggio di un'app rimasta dalle istanze precedenti)

Per Google Chrome, è necessario qualcosa di leggermente diverso (modificato dalla fonte in questo post del blog ). Chrome deve essere lanciato dalla riga di comando con il flag --user-data-dir=/tmp/dir impostato in "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" (specifica la tua directory ... se hai solo bisogno di due istanze, probabilmente è meglio creare una seconda casa permanente, ma se hai bisogno di un numero arbitrario, meglio per creare una funzione shell che crea una directory temporanea casuale, quindi la cancella su quit).

L'utilizzo di questo metodo genera più istanze di Chrome sulla mia macchina e impedisce a Chrome di consolidarle con lo stesso processo master.

A proposito, potresti voler aggiungere altri flag nella funzione shell per avviare Chrome ... un elenco esteso (aggiornato automaticamente) è disponibile qui .

    
risposta data 27.03.2017 - 15:55
fonte
1

Il metodo più semplice è il comando open -n

es. open -n /Applications/Chrome.app/

    
risposta data 09.03.2016 - 16:06
fonte
0

Finirai (eventualmente) per terminare l'esecuzione dell'applicazione da Terminal.

Puoi utilizzare il comando open -n da Terminale (come menzionato da @Tetsujin) oppure puoi fare clic sul pacchetto dell'applicazione facendo clic sul file eseguibile (di solito in Application/Contents/MacOS/ )

    
risposta data 09.03.2016 - 17:59
fonte

Leggi altre domande sui tag