TMUX & Tmuxinator

Eduardo Velasques
4 min readJan 31, 2024

--

O TMUX permite no terminal utilizar o conceito de janelas e painéis, ou seja em um único terminal do Linux/UNIX poder ter múltiplos terminais lado a lado, como painéis dividindo a tela.

Ou ainda um terminal “por cima” do outro, como janelas, ou seja múltiplos terminais!

Nesta imagem acima, repare que há um terminal a esquerda pronto para executar comandos, ao lado direito está o emacs com um arquivo de código aberto.

Se reparar bem na base da imagem, na parte inferior esquerda bem no início da última linha na tela, há o nome do projeto [cluar], seguido pelo nome das “janelas” que estão abertas, no caso: 0:term, 1:$netuno, 2:appserver, 3:appui e 4:website.

Em cada uma das janelas é possível ter múltiplos painéis com terminais!

Além de que, caso o meu computador trave ou se for via SSH e perca a conexão com a internet… consigo recuperar todos os terminais, exatamente como estavam.

Isso porque o TMUX funciona a base de sessões, então a minha sessão onde tenho as janelas abertas com os seus múltiplos painéis, que são múltiplos terminais abertos conseguem ser mantidos! E não perco nada, e assim consigo recuperar tudo exatamente como estava.

O Tmuxinator permite pré-configurar o TMUX como as janelas e os painéis de terminal, assim quando inicia uma sessão TMUX fica logo tudo pronto a trabalhar de acordo com a configuração da sessão no Temuxinator.

A grande vantagem é poder recuperar tudo o que estava sendo feito caso o terminal seja terminado.

Instalação

Nas distribuições baseadas em Ubuntu/Debian pode ser feito desta forma:

sudo apt install tmux tmuxinator

Ativar o plugin do TMUXINATOR para o ZSH

Com o plugin do ZSH permite ter comandos de atalho, bem simplificados, para a utilização do TMUXINATOR, o que facilita bastante.

Como instalar o ZSH:

Fonte do plugin do TMUXINATOR para o ZSH:

Para ativar o plugin do Temuxinator edite o seu ~/.zshrc e procure a linha dos plugins, e então adicione o tmuxinator desta forma:

plugins=(git tmuxinator)

Agora basta sair e iniciar novamente a sessão do terminal ZSH para ativar os novos comandos abaixo, que agora sim são reconhecidos pelo sistema.

Novo Projeto

Para criar um novo projeto de teste, execute no terminal:

txn teste

Abre com o editor o arquivo do novo projeto, que encontra-se normalmente em um destes caminhos:

~/.tmuxinator/*.yml
~/.config/tmuxinator/*.yml

No início do arquivo tem a configuração do caminho da pasta raíz do projeto root: ~/, o que pode ser alterado para a pasta onde contém o seu projeto real.

No fim deste arquivo contém a configuração de janelas (windows) e dos painéis (panes).

Exemplo da minha configuração para os projeto de aplicações web com a plataforma Netuno:

windows:  - term: ls  - $netuno:    - cd ~/netuno    - ./netuno server app=teste  - appserver:    - cd server; emacs  - appui:    - cd ui; emacs  - website:    - cd website/src; emacs

Não costumo utilizar painéis por que prefiro trabalhar ocupando a área útil da janela por inteira, ou seja não costumo dividir a tela.

Iniciar a Sessão

Para iniciar a sessão execute no terminal:

txs teste

Mudar de Janela/Terminal

Repare que as janelas são listadas na última linha da tela, com um número a frente, 0:term, 1:$netuno, 2:appserver, 3:appui e 4:website.

Assim para mudar mudar de janela basta prescionar o prefixo de comandos do TMUX que é o CTRL+B seguido do número da janela.

Ou seja pressione a combinação de teclasCTRL+B, e então deixe de prescionar estas teclas, e a seguir pressione e solte a tecla do número da janela que deseja mudar.

Então resumindo, para mudar para janela 2, será: CTRL+B 2

Recuperar a Sessão

Caso o terminal feche abruptamente, como no caso de haver perda de conexão, feche a janela sem querer, alguma travagem, etc…

É possível recuperar tudo!

Em uma nova sessão de terminal utilize o comando abaixo para listar as sessões abertas:

tmux list-sessions

Para voltar e utilizar a sessão que ficou aberta por baixo dos panos:

tmux attach -t teste

Fechar a Sessão

Para fechar definitivamente a sessão do TMUX e concluir todos os terminais e processos que estavam sendo utilizados, pressione CTRL+B e depois a tecla :, agora digite:

kill-session

Repare que escreve na parte inferior da janela do terminal.

Então pressione a tecla ENTER para concluir definitivamente! Mas caso queira cancelar basta pressionar CTRL+C.

--

--

Eduardo Velasques
Eduardo Velasques

Written by Eduardo Velasques

Apenas mais um developer desprogramando a vida.

No responses yet