Apri una nuova finestra di terminale nello spazio corrente, indipendentemente da altri terminali aperti in altri spazi


14

Quando si utilizza Spaces su Mac OS X, il tentativo di aprire una nuova istanza di terminale comporta lo stato attivo in qualsiasi spazio abbia la finestra del terminale a cui si accede più di recente. Con Finder posso fare clic sul desktop e quindi utilizzare - Nper creare una nuova finestra del Finder. Quello che sto cercando è un metodo per eseguire la stessa funzione per le finestre di Terminale.

Come posso creare una nuova istanza di Terminale nello spazio corrente, indipendentemente dal fatto che ci sia o meno un'altra istanza di Terminale in uno o più altri spazi.

Grazie.


mi piace la domanda, ma penso che dovrebbe essere su super user.

Risposte:


4

È possibile creare un nuovo servizio utilizzando automator (dalla cartella delle applicazioni). Nella parte superiore della finestra dell'automatore, immettere: Il servizio non riceve alcun input in "qualsiasi applicazione". Quindi, nel flusso di lavoro, aggiungi "Esegui applecript". Rendi lo script di mele contenente quanto segue:

on run {input, parameters}

    tell application "Terminal"
        do script ""
        activate
    end tell

    return input
end run

(Puoi aggiungere qualsiasi comando che ti piace nella riga di script do tra "" (ad esempio qualcosa di utile da eseguire quando il terminale si apre per la prima volta come uptimese lo desideri, o semplicemente lasciarlo vuoto).

Salva il servizio come "Open Terminal" o come preferisci. Ora dovrebbe apparire nel menu dei servizi.

Quindi, se vuoi aggiungere una scorciatoia da tastiera, devi solo andare su Preferenze di Sistema -> Tastiera -> scheda Scorciatoie da tastiera, selezionare i servizi nel menu a sinistra e trovare il tuo nuovo servizio (probabilmente vicino alla parte inferiore). Basta fare clic nello spazio a destra del nome del servizio e assegnargli qualsiasi scorciatoia da tastiera che ti piace, e hey presto! dovrebbe funzionare tutto


1
Va notato che ciò fornisce effettivamente la funzionalità richiesta. Come modifica minore, è necessario che la do shell script " "riga apra una nuova finestra nello spazio corrente, ma non è necessario che lo script della shell sia uno spazio vuoto. Se si tratta di uno spazio vuoto, fa sì che il Terminale esegua lo spazio vuoto come comando, causando ritardi nell'esecuzione e una linea estranea nella nuova finestra Terminale. Basta renderlo una stringa completamente vuota: do shell script ""e quindi apre una nuova finestra Terminale ma non emette alcun comando al suo interno.
Dakota,

Sì, hai ragione. Ho aggiornato la risposta per rimuovere lo spazio tra le virgolette. Tuttavia, per funzionare deve essere do script "", e non do shell script "", come suggerito da @dakota
tmdavison,

3

Nelle assegnazioni dell'applicazione in Preferenze di Sistema -> Spazi, imposta Terminale su "Tutti gli spazi" o elimina la voce. Quindi non dovrebbe essere un problema aprire una nuova finestra Terminale dove vuoi, ad esempio facendo clic sul menu contestuale del dock "Nuova finestra" (funziona anche se hai "Quando passi a un'app, passa allo spazio con finestre aperte da quella app "abilitata).


La prima frase è irrilevante, per quanto posso dire. Impostandolo su "Tutti gli spazi" si modifica comunque lo spazio quando si apre una nuova finestra tramite qualcosa come AppleScript o un keybinding, e il menu contestuale del dock non cambia mai lo spazio indipendentemente da questa impostazione. L'unica cosa interessante in questa risposta è l'opzione "Quando passi a un'app, passa allo spazio con finestre aperte da quell'app". Disabilitarlo "corregge" il caso keybinding / AppleScript, ma sfortunatamente "interrompe" la scheda comandi. Se solo OS-X avesse un corretto bind dei tasti "ciclo windows" che ha funzionato su tutte le finestre in tutte le app in tutti gli spazi.
Laurence Gonsalves il

@LaurenceGonsalves, puoi scorrere tutte le finestre del Terminale in tutti gli Spazi con Comando-Sinistra / Freccia destra. Questo aiuta?
Chris Page

@Chris Questo è un insieme interessante di scorciatoie, grazie, ma non risolvono il problema a cui mi riferisco. Se l'impostazione "Quando si passa a un'app ..." è disabilitata e ci si trova in uno spazio senza finestre Terminale e si passa alla scheda comandi "Terminale", non si passa a uno spazio che ha una finestra Terminale e command-backtick non farà nulla. Sorprendentemente, neanche il comando freccia sinistra / destra non fa nulla in questo caso (almeno su Snow Leopard). Quei tasti scorreranno ciclicamente tra le finestre attraverso gli spazi se una finestra nell'attuale applicazione ha il focus, ma se nessuna finestra ha il focus non fanno nulla.
Laurence Gonsalves,

2
tell application "Terminal"
    do script ""
    activate
end tell

Per farlo funzionare sotto Lion, digita quanto sopra in una nuova finestra AppleScript e salvalo. Richiama lo script tramite un comando di avvio come QuickSilver o assegnalo a una scorciatoia da tastiera. Questo dovrebbe funzionare, anche se hai impostato l'impostazione "Quando passi a un'applicazione, passa a uno spazio con finestre aperte per l'applicazione" abilitato in Mission Control. Il trucco è eseguire il comando di attivazione per ultimo, anziché all'inizio.


In alternativa, creare un servizio tramite Automator e attivarlo utilizzando una scorciatoia da tastiera impostata in Preferenze di Sistema: apple.stackexchange.com/a/13655/36722
Dakota

0

Se si utilizza il menu del dock per aprire una nuova finestra, questa si aprirà nello spazio corrente.


C'è un modo per farlo dalla tastiera?
Laurence Gonsalves,

Control-F3 è "Sposta lo stato attivo sul Dock". È possibile utilizzare i tasti freccia per navigare nel menu dell'icona del Dock del Terminale. È inoltre possibile digitare per selezionare le voci di menu in base al nome, ad esempio, digitare "N" o "Nuova W". Vedi Preferenze di Sistema> Tastiera> Scorciatoie da tastiera> Tastiera e immissione testo per vedere tutte le scorciatoie da tastiera per la selezione e la navigazione nell'interfaccia utente.
Chris Page

È possibile farlo. Devi creare un servizio speciale utilizzando Automator, che puoi quindi associare a una scorciatoia da tastiera da Preferenze di Sistema: apple.stackexchange.com/a/13655/36722
Dakota

0

È possibile disabilitare automaticamente gli spazi di commutazione OSX quando si cambiano le applicazioni utilizzando i seguenti comandi:

defaults write com.apple.dock workspaces-auto-swoosh -bool NO
killall Dock

Funziona su 10.6.8


C'è anche un'impostazione della GUI per questo, è in "Mission Control".
SilverWolf - Ripristina Monica il
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.