17 pontos por GN⁺ 2025-08-04 | Ainda não há comentários. | Compartilhar no WhatsApp
  • 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.

Ainda não há comentários.