Forçar cada novo terminal a abrir em uma nova guia

8

Eu tenho o hábito de abrir um terminal usando o comando "Abrir terminal aqui" nas pastas. Isso faz com que alguns terminais permaneçam abertos enquanto eu realmente não os uso mais, ou fico confuso sobre qual terminal estava servindo a qual finalidade.

Eu sei que posso rotular guias de terminal e tal, mas posso forçar um novo terminal que está sendo aberto, para se tornar uma nova guia em uma tela de terminal (se já houver uma aberta?) Dessa forma, sempre as tenho em uma única aba terminal.

EDIT Ok, faz um tempo e meu linux mojo melhorou bastante. Portanto, a solução atual para esta situação para mim está sendo usada tmux. É um pouco mais avançado do que terminais e guias regulares, mas depois que peguei o jeito (cerca de uma hora de tentativa), estou muito satisfeito com a maneira de fazer as coisas.

Antes de tudo, eu tinha certeza de que sempre que eu abrisse um terminal usando ctrl-alt-t, ele abriria o tmux por padrão. Isso pode ser alcançado adicionando a seguinte linha no seu .bashrcarquivo após todos os aliases:

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

Agora, toda vez que você gerar um terminal usando ctrl-alt-t, será apresentado a tmux.

Para garantir que você tenha apenas um terminal aberto ao mesmo tempo, fiz o seguinte:

Primeiro de tudo, você pode reconectar uma sessão tmuxexecutando tmux attach -d. Isso desconectará todos os outros clientes conectados a esta sessão. Isso funciona bem se você for a única pessoa a usar as sessões.

Mas, se você não tiver uma sessão em execução, ela dirá que não encontrou nenhuma sessão. Portanto, você precisa de algo como if (nosession) {tmux} else {tmux attach -d}. Para fazer isso, crie um anexo ao seu ~/.tmux.confarquivo na seguinte linha:

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

(Graças a este post )

No meu .bashrcarquivo, alterei a linha adicionada anteriormente para a seguinte:

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

O que isso faz é desanexar todos os outros clientes da tmuxsessão. Quando você faz isso, todos os outros terminais se fecham. Eles fecham porque esta linha também garante que, quando você abre um terminal (ctrl-alt-t), ele inicia imediatamente uma sessão do tmux.

Ergo, attach -dmata as outras sessões. Portanto, esta é a solução mais próxima que eu pude e estou bastante feliz com isso! :)

A única coisa que eu ainda gostaria é que, quando pressiono ctrl-alt-t, abre minha sessão atual e também cria uma nova janela. Ainda não descobri isso, então fique à vontade para ajudar!

Christophe De Troyer
fonte
Pressione ctr + shift + t para abrir a guia no terminal.
Ankur Khandelwal
Sim, eu estou ciente disso. No entanto, como eu disse, frequentemente abas abas de dentro de um diretório usando o plugin "Open terminal here" (este é o padrão no Xubuntu, por exemplo). Isso abre uma nova janela. Gostaria que estes fossem abertos como uma nova guia na janela do terminal já existente.
Christophe De Troyer

Respostas:

3

Infelizmente, abrir novas abas na sessão existente do terminal gnome é um recurso procurado há vários anos - veja aqui .

Seria possível cortar algo juntos, no entanto. Por exemplo, esta resposta fornece um hack para abrir uma nova aba na janela atual do gnome-terminal.

Jamie
fonte
Excelente. +1 no link para o relatório de erros. Só posso incentivar todos a clicar no link "isso também me afeta" no topo para chamar alguma atenção para isso. Também +1 para o hack. Ótima resposta!
Christophe De Troyer