Forza l'apertura di ogni nuovo terminale in una nuova scheda


8

Ho l'abitudine di aprire un terminale usando il comando "Apri terminale qui" nelle cartelle. Questo fa sì che alcuni terminali rimangano aperti mentre non li uso più, o mi confondo quale terminale servisse a quale scopo.

So di poter etichettare le schede dei terminali e simili, ma posso forzare un nuovo terminale che si sta aprendo, per diventare una nuova scheda in una schermata del terminale (se ne esiste già una aperta?) In questo modo le ho sempre inserite in una scheda terminale.

EDIT Va bene, quindi è passato un po 'di tempo e il mio mojo di Linux è migliorato molto. Quindi la soluzione attuale a questa situazione per me è stata utilizzata tmux. È un po 'più avanzato rispetto ai normali terminali e schede, ma una volta capito (circa un'ora di tentativi) sono molto contento del modo di procedere.

Prima di tutto, mi sono assicurato che ogni volta che ctrl-alt-taprissi un terminale usando , avrebbe aperto tmux di default. Ciò può essere ottenuto aggiungendo la seguente riga nel .bashrcfile dopo tutti gli alias:

[[ $TERM != "screen" ]] && exec 'tmux

Ora ogni volta che spawn un terminale usando ctrl-alt-tti verrà presentato un tmux.

Per essere sicuro di avere un solo terminale aperto contemporaneamente ho fatto quanto segue:

Prima di tutto, puoi ricollegare una sessione tmuxeseguendo tmux attach -d. Ciò disconnetterà tutti gli altri client connessi a questa sessione. Funziona bene se sei l'unica persona che utilizza le sessioni.

Ma se non hai una sessione in corso, ti dirà che non ha trovato alcuna sessione. Ergo, hai bisogno di qualcosa come if (nosession) {tmux} else {tmux attach -d}. Per fare questo creare di append al tuo ~/.tmux.conffile la seguente riga:

#if run as "tmux attach", create a session if one does not already exist
new-session -n $HOST

(Grazie a questo post )

Nel mio .bashrcfile, ho modificato la riga aggiunta in precedenza a quanto segue:

[[ $TERM != "screen" ]] && exec 'tmux attach -d'

Quello che fa è staccare tutti gli altri client dalla tmuxsessione. Quando lo fai, tutti gli altri terminali si chiudono. Si chiudono perché questa linea si assicura anche che quando si apre un terminale (ctrl-alt-t), si avvia immediatamente una sessione tmux.

Ergo, attach -duccide le altre sessioni. Quindi questa è la soluzione più vicina che potrei ottenere e ne sono piuttosto contento! :)

L'unica cosa che vorrei ancora è che quando premo ctrl-alt-tsi apre la mia sessione corrente e crea anche una nuova finestra. Non l'ho ancora capito, quindi sentiti libero di aiutare!


Premere ctr + maiusc + t per aprire la linguetta nel terminale.
Ankur Khandelwal

Sì, ne sono consapevole. Tuttavia, come ho detto, spesso apro le schede all'interno di una directory utilizzando il plug-in "Apri terminale qui" (ad esempio, questo è predefinito in Xubuntu). Questi aprono una nuova finestra. Vorrei che questi fossero aperti come una nuova scheda nella finestra del terminale già esistente.
Christophe De Troyer

Risposte:


3

Sfortunatamente l'apertura di nuove schede nella sessione di gnome-terminal esistente è stata una caratteristica ricercata da diversi anni ormai - vedi qui .

Tuttavia, sarebbe possibile hackerare qualcosa insieme. Ad esempio questa risposta fornisce un trucco per aprire una nuova scheda nella finestra corrente di gnome-terminal.


Eccellente. +1 per il collegamento alla segnalazione di bug. Posso solo incoraggiare tutti a fare clic sul link "Anche questo mi influenza" in alto per attirare l'attenzione su questo. Anche +1 per l'hack. Bella risposta!
Christophe De Troyer
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.