A versão tmux 3.7 chega com recursos inéditos e uma série de aprimoramentos de usabilidade, segurança e compatibilidade. Entre as mudanças mais impactantes estão os painéis flutuantes, novas opções de numeração no modo de cópia, suporte ao display Wayland e várias correções que beneficiam usuários de diferentes plataformas.
Painéis flutuantes
- Painéis que “flutuam” sobre o layout tradicional são criados com o comando
new-pane(tecla padrão*). - Não são modais, comportam‑se como painéis comuns e suportam as mesmas sequências de escape.
- Nesta fase inicial, o movimento e o redimensionamento são feitos apenas com o mouse.
- A segunda linha de status (quando
status-formatestá em2) passa a exibir a lista de painéis, facilitando a visualização.
Desenvolvido principalmente por Michael Grant, com suporte de Dane Jensen e testes da comunidade.
Expansão de argumentos em run-shell
Argumentos após um comando de shell podem ser referenciados como #{1}, #{2} etc., ampliando a flexibilidade dos scripts.
Controle avançado de sessões
- A opção
-gemkill-sessionpermite encerrar todas as sessões de um grupo, simplificando a administração de ambientes múltiplos. - Verificações de read‑only foram reforçadas em
attach-session,detach-clienteswitch-client, garantindo que cada cliente só possa desconectar a si próprio.
Melhorias no tratamento de colagem (paste)
- Atraso de escape aumentado quando o buffer contém um final de colagem parcial, corrigindo problemas no Windows Terminal.
- Limite de 5 segundos para colagens em terminais que perdem a sequência final (ex.: Terminal.app).
- Desativação da detecção automática de colagem quando o terminal já suporta bracket paste.
- Sanitização de nomes de buffers de colagem e remoção de caracteres invisíveis em títulos de painéis, janelas e sessões.
Modo de cópia (copy mode) aprimorado
- Numeração de linhas agora pode ser configurada via
copy-mode-line-numberscom opções:off,default,absolute,relativeehybrid. - Estilos personalizáveis através de
copy-mode-line-number-styleecopy-mode-current-line-number-style. - Comando emacs‑style
recentre-top-bottomadicionado. - Novo comando
selection_modepermite definir explicitamente o modo de seleção. - Suporte a números de linha também inclui variáveis de formato para exibição em status e mensagens.
Integração com Wayland e variáveis de ambiente
WAYLAND_DISPLAYfoi incluído nas variáveis padrão deupdate-environment, juntamente com variáveis adicionais do padrão XDG.
Novas opções de mouse e interface
- Faixas de mouse “control0” a “control9” permitem controles avançados na linha de status do painel.
- Opção
focus-follows-mousefoi adicionada, facilitando a navegação em ambientes que adotam esse comportamento. - O
pane-border-indicatorsagora desenha indicadores corretos quando configurado comoboth.
Correções de bugs e segurança
- Evita hang de clientes de controle ao sair após alternar
no-output. - Impede overflow ao redimensionar a barra de rolagem fora da tela.
- Corrige race condition entre
forkepane_current_path. - Limita o argumento
MSG_COMMANDentre 0 e 1000, prevenindo crashes provocados por clientes mal‑formados. - Diversas correções de vazamento de memória identificadas pelo OSS‑Fuzz.
Atualizações de renderização e suporte a imagens
- A contagem máxima de imagens SIXEL foi aumentada para 20.
- Correções no cálculo de tamanho escalado de imagens SIXEL e suporte a novos tons de pele.
- Melhor tratamento de caracteres Unicode combinados e indicadores regionais/emoji.
Personalização de mensagens e prompts
- Novo formato
message-formatpermite que mensagens e prompts ocupem apenas parte da barra de status, sobrepondo o conteúdo normal. message-styleagora requer a inclusão defillpara cobrir toda a largura.- Flag
-Cemcommand-promptalinha seu comportamento ao dedisplay-message -C, impedindo que painéis sejam congelados.
Outras melhorias relevantes
clockvisível em terminais sem cores.- Opção
remain-on-exitmantém o painel ativo até que uma tecla seja pressionada. detachadicionado ao menu padrão de sessão.clipboardpode ser encaminhado ao terminal externo, e a sequência OSC 52 funciona dentro de popups.- Suporte a synchronized output mode (DECSET 2026) para evitar “screen tearing” em atualizações rápidas.
Histórico resumido das versões anteriores
- 3.6b → 3.7: introdução dos painéis flutuantes, novas opções de copy mode, suporte a Wayland e correções críticas.
- 3.6 → 3.6a: correções de overflow em formatação, ajustes de drag em tela alternativa e melhorias de mouse.
- 3.5a → 3.6: inclusão de opções de segundos no relógio, callbacks de redimensionamento para menus e suporte avançado a emojis.
Com essas mudanças, o tmux 3.7 reforça seu papel como o multiplexador de terminal mais flexível e adaptável, atendendo tanto a usuários avançados quanto a ambientes corporativos que demandam estabilidade e recursos modernos. Para atualizar, consulte a documentação oficial e o changelog completo no repositório do projeto.