Eu tenho o hábito de abrir um terminal usando o comando "Abrir terminal aqui" em pastas. Isso faz com que alguns terminais permaneçam abertos enquanto eu realmente não os uso mais, ou fico confuso com qual terminal estava servindo a finalidade.
Eu sei que posso rotular as 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?) em um único terminal.
EDITAR
Ok, então tem sido um tempo e meu mojo linux melhorou muito. Então a solução atual para esta situação para mim tem usado tmux
. É um pouco mais avançado do que terminais e abas regulares, mas quando eu peguei o jeito (cerca de uma hora de tentativas), estou muito satisfeito com o jeito de fazer as coisas.
Antes de tudo, certifiquei-me de que sempre que eu abrisse um terminal usando ctrl-alt-t
, ele abriria o tmux por padrão. Isso pode ser feito adicionando a seguinte linha no arquivo .bashrc
depois de todos os aliases:
[[ $TERM != "screen" ]] && exec 'tmux
Agora, toda vez que você gerar um terminal usando ctrl-alt-t
, será apresentado um tmux
.
Para garantir que você tenha apenas um terminal aberto ao mesmo tempo, fiz o seguinte:
Em primeiro lugar, você pode reconectar uma sessão em tmux
executando tmux attach -d
. Isso desconectará todos os outros clientes conectados a esta sessão. Isso funciona bem se você for a única pessoa usando as sessões.
Mas, se você não tiver uma sessão em execução, ela dirá que não encontrou nenhuma sessão. Ergo, você precisa de algo como if (nosession) {tmux} else {tmux anexar -d}. Para isso, crie um anexo ao arquivo ~/.tmux.conf
da seguinte linha:
#if run as "tmux attach", create a session if one does not already exist
new-session -n $HOST
(Agradecimentos a este post )
No meu arquivo .bashrc
, alterei a linha adicionada anteriormente para o seguinte:
[[ $TERM != "screen" ]] && exec 'tmux attach -d'
O que isso faz é desanexar todos os outros clientes da sessão tmux
. Quando você faz isso, todos os outros terminais 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 -d
mata as outras sessões. Então esta é a correção mais próxima que eu poderia ter e estou bastante feliz com isso! :)
A única coisa que eu ainda gostaria é que, quando eu pressionar ctrl-alt-t
, abra a minha sessão atual e também crie uma nova janela. Ainda não percebi isso, então fique à vontade para ajudar!