- O autor usou tmux por muito tempo, mas recentemente passou a questionar sua complexidade e limitações, como compatibilidade de cores, scrollback, cópia com mouse e falta de suporte a protocolos
- Recursos principais do tmux, como persistência de sessão (detach/attach) e divisão/gerenciamento de janelas, não são necessariamente exclusivos do tmux
- Usando ferramentas leves inspiradas na filosofia Unix, como dtach, abduco e shpool, é possível focar apenas no gerenciamento de sessão e ainda manter scrollback nativo e simplicidade
- Em especial, com a combinação de
shpool + ssh, é possível gerenciar várias sessões remotas diretamente pelo gerenciador de janelas, mantendo intactos recursos nativos como notificações, rolagem e títulos
- Não é uma solução perfeita, mas, para o autor, foi possível substituir completamente o tmux e obter satisfação com um workflow simples e fácil de manter
Vantagens e desvantagens do tmux
- Recursos como manutenção de sessão (detach/attach) e gerenciamento de janelas (abas, split) eram o núcleo do workflow oferecido pelo tmux
- Porém, sem a configuração correta de
TERM, surgem problemas de renderização de cores, e a necessidade de considerar a interação entre o terminal e o tmux aumenta a complexidade
- O uso do buffer de rolagem também exige se acostumar com o modo próprio do tmux, e copiar áreas com o mouse em um ambiente com splits também era incômodo
- Há também suporte insuficiente a novos recursos de terminal, como o kitty graphics protocol, além da falta de suporte a protocolos experimentais
- Também existe a crítica de que, ao reinterpretar códigos de escape duplicadamente e impor os conceitos de sessão/janela, o multiplexador atrapalha a evolução do ecossistema de terminais
Explorando formas de substituir o tmux
- Persistência de sessão:
- Há opções simples como
ctrl-z + fg, nohup e disown, mas é difícil considerá-las um substituto completo
- Surgiram várias ferramentas voltadas apenas para manter a sessão (
dtach, abduco, shpool)
- Elas usam uma combinação de fork() e sockets UNIX para conectar daemon e cliente
- Ao contrário do tmux, oferecem scrollback nativo sem splits virtuais, e algumas também restauram buffers
- Na experiência do autor, a maioria das alternativas tinha bugs e problemas de acabamento, como teclas de detach que não funcionavam dentro do
nvim
- Apenas o shpool pareceu mais maduro em termos de comandos de detach/attach e personalização de keymap
- Gerenciamento de janelas:
- No ambiente local, o gerenciamento de divisão e posicionamento fica por conta do gerenciador de janelas
- Mesmo em ambiente remoto (SSH), é possível combinar ssh_config com shpool para manter várias sessões de forma independente em janelas separadas
- Em conjunto com autossh, também é possível manter as sessões mesmo em cenários de reconexão de rede
Novo workflow
- Pessoalmente, o autor usa ghostty (no notebook) e sway+foot (no PC pessoal) para gerenciar janelas. O servidor roda em uma VM headless baseada em Proxmox, mantendo sempre um ambiente de desenvolvimento via SSH
- Várias sessões do shpool são conectadas automaticamente por atalhos ssh e controladas de forma independente no gerenciador de janelas local
- No
ssh_config, o attach às sessões do shpool é automatizado para cada host
- É possível acessar separadamente múltiplas sessões, como IRC, gerenciamento de dotfiles e um ambiente específico de neovim, em cada terminal
- Recursos como rolagem nativa, notificações e título do terminal, que o tmux suportava de forma instável, passam a funcionar de maneira mais natural
- Também há desvantagens: ao reconectar no vim, a restauração do estado do terminal demora, e há problemas de redimensionamento ao usar
nvim
- Não há suporte a multiplayer (se vários clientes iniciarem autossh ao mesmo tempo, as sessões entram em conflito)
- Ainda assim, para o autor, a substituição completa do tmux foi bem-sucedida
Conclusão
- Não é algo totalmente idêntico, mas é possível migrar para um workflow de gerenciamento de sessões simples e flexível, deixando para trás a complexidade e as limitações do tmux
- Dependendo do workflow de cada pessoa, vale a pena considerar ferramentas alternativas como shpool
Ainda não há comentários.