Como deixar o tmux mais bonito e fácil de usar (2024)
(hamvocke.com)- Pelo arquivo de configuração
~/.tmux.conf, é possível ajustar livremente atalhos de teclado, cores, barra de status e comportamento do mouse - É possível trocar a tecla Prefix padrão
C-bporC-ae remapear o Caps Lock para Ctrl para ganhar eficiência na digitação - Em vez de
"e%, a divisão de janelas pode ser feita de forma mais intuitiva com as teclas|e-, e a teclarpode recarregar imediatamente o arquivo de configuração - A usabilidade melhora com recursos como Alt + setas para alternar painéis, ativação do modo mouse e desativação da renomeação automática das janelas
- Também é possível montar um tema consistente ao personalizar com precisão elementos visuais como cores, barra de status, mensagens e bordas
Conceitos básicos de personalização do tmux
- O arquivo de configuração do tmux é o
tmux.conf; se for colocado em~/.tmux.conf, no diretório home do usuário, ele será aplicado como configuração pessoal- Se vários usuários forem compartilhar a configuração, ela pode ser colocada em um diretório global do sistema, e o local varia conforme o sistema operacional
- A localização exata pode ser conferida na descrição da opção
-femman tmux
- Ao editar o arquivo de configuração, é possível alterar livremente atalhos de teclado, cores, barra de status, comportamento do mouse etc.
Uma tecla Prefix menos incômoda
- A tecla Prefix padrão
C-bpode ser trocada porC-a, que é mais fácil de alcançarC-apode entrar em conflito com o comando do bash para “ir para o começo da linha”- Se a tecla Caps Lock for remapeada para Ctrl, fica mais fácil digitar combinações com o Prefix
- Exemplo de configuração:
unbind C-b set-option -g prefix C-a bind-key C-a send-prefix - Com
C-a C-a, ainda é possível usar o comando original do bash
Comandos mais intuitivos para dividir janelas
- Em vez das teclas de divisão padrão
"e%, use|e-, que são mais intuitivas visualmente|é configurado para divisão horizontal, e-para divisão vertical- Os atalhos antigos são removidos
bind | split-window -h bind - split-window -v unbind '"' unbind %
Recarregamento rápido do arquivo de configuração
- Se você edita o
tmux.confcom frequência, pode recarregá-lo imediatamente com um atalho- Vincule o comando de reaplicar o arquivo de configuração à tecla
r
bind r source-file ~/.tmux.conf - Vincule o comando de reaplicar o arquivo de configuração à tecla
Alternância rápida entre painéis
- Com Alt (Meta) + setas, é possível mudar de painel sem usar Prefix
Alt-Left,Alt-Right,Alt-UpeAlt-Downmovem a seleção em cada direção
bind -n M-Left select-pane -L bind -n M-Right select-pane -R bind -n M-Up select-pane -U bind -n M-Down select-pane -D
Ativação do modo mouse
- É possível selecionar janelas e redimensionar painéis com o mouse
- Embora o uso centrado no teclado seja o padrão, isso é útil em colaboração
- Pode ser usado com frequência em pair programming
set -g mouse on
Desativar a renomeação automática das janelas
- Evita que o nome da janela definido manualmente seja sobrescrito automaticamente ao executar comandos
set-option -g allow-rename off
Mudando a aparência do tmux
- É possível ajustar em detalhe cores, barra de status, mensagens, bordas de painéis e outros elementos
- Consulte a seção
STYLESpara ver várias opções de configuração visual - Se usar cores padrão do terminal (
red,yellow,blacketc.), o resultado tende a combinar naturalmente com o tema - No modo de 256 cores, é possível especificar
colour0acolour256
- Consulte a seção
- O exemplo de configuração inclui os seguintes itens
-
Desativação do alerta sonoro, cor do relógio
yellow, estilo do modo de cópiafg=black bg=red bold -
Cor da borda dos painéis em
red, borda do painel ativo emyellow -
Posição da barra de status em
bottom, espaço em branco à esquerda, exibição da hora à direita -
Estilo da janela atual
fg=black bg=red, estilo das janelas normaisfg=red bg=black- Estilo das mensagens
fg=yellow bg=red bold - Essas configurações fornecem uma composição de cores consistente e distinção visual clara
- Estilo das mensagens
-
Materiais adicionais de referência
- Vários exemplos de configuração do tmux podem ser encontrados em repositórios
tmux.confoudotfilesno GitHub- Também vale consultar
/r/dotfilese/r/unixpornno Reddit
- Também vale consultar
- A configuração completa está publicada no repositório GitHub de dotfiles
- Para estudo mais aprofundado, recomenda-se consultar a página man do tmux e a seção Configuring tmux da wiki do tmux
- Elas cobrem os recursos mais recentes e todas as opções detalhadas
- Se quiser desenhar seu próprio tema de cores para terminal, você pode usar o Root Loops(https://rootloops.sh/)
- Ele oferece suporte para montar uma paleta de cores personalizada para terminal
1 comentários
Comentários do Hacker News
Eu usava tmux, mas depois que descobri o Zellij migrei completamente
A configuração de abas e painéis é muito mais intuitiva, e usar o mouse para rolagem e seleção de texto é prático, então copiar e colar fica fácil
Links em botão não permitem copiar com clique direito e também não são bons em termos de acessibilidade
No tmux eu uso esse recurso a cada 1 ou 2 minutos, mas os desenvolvedores do Zellij dizem para enviar os dados para o editor por pipe, só que isso não é compatível com o clipboard do sistema
Então no fim voltei para o tmux
O Zellij tem cerca de 50 MB, enquanto o tmux fica em torno de 2 MB mesmo incluindo bibliotecas de dependência, então a diferença de tamanho é grande
O Zellij foi ficando inchado e incômodo, e agora estou bem mais satisfeito montando sessões com tmuxp e mantendo a conexão com autossh
Falando de atalhos de teclado, ^a é a tradição do screen e ^b é a do tmux
Para administradores que lidam com vários sistemas, aprender o mapa de teclas padrão é importante
Nas minhas configurações pessoais só mudei cores, fundo do painel ativo, relógio com timestamp e ativação do mouse; mantive os atalhos como vieram
Quando você se acostuma, o padrão acaba sendo mais confortável
Abandonei o tmux e fui para o Zellij porque Shift+Enter não funcionava
Mas o Zellij derrubou processos com um panic crash, então no fim voltei para o tmux
A solução foi
"bind-key -T root S-Enter send-keys C-j", que encontrei nesta issue"bind -n S-Enter send-keys Escape '[13;2u'"O pi.dev avisa que não há configuração de extended-keys, mas funciona bem
No tmux, quando o servidor morre, os processos subordinados também são encerrados, o que sempre achei prático
\ + EnterDescobrir o Control Mode do tmux foi um verdadeiro divisor de águas
Se você executar
tmux -CCno iTerm2, abas, rolagem, copiar/colar, atalhos etc. passam a funcionar de forma nativa do terminalAs abas ficam visíveis de forma visual, e isso é especialmente útil para iniciantes
No tmux eu uso troca rápida de janelas com Alt+número
Ex.: configuração no estilo
bind-key -n M-1 select-window -t :1Também dá para abrir o modo de cópia estilo vi com Alt-/
Em ambiente Wayland, uso
wl-copy, então posso copiar com arrastar do mouse ou com a teclayTambém adicionei um visual estilo Powerline, mas é preciso ter powerline-fonts
Personalizei tanto o tmux que, quando entro por ssh em um servidor novo, esqueço como usar o básico
Agora uso a configuração padrão. Mesmo assim, a configuração de rolagem com mouse eu ainda preciso mudar toda vez
Um conceito relacionado é The Lisp Curse
Por exemplo, deixei Ctrl-b como está e adicionei Ctrl-space como atalho extra
Fiquei impressionado com o Control Mode do tmux no iTerm2
Ele permite controlar janelas de terminal remotas usando o gerenciador de janelas local
Estou animado porque o ghostty também está implementando esse recurso
Muita gente acha estranha a tecla de prefixo padrão do tmux (C-b), mas eu na verdade vejo essa estranheza como uma vantagem
É muito difícil apertá-la por engano
Os comandos de divisão também me parecem intuitivos —
%parece uma linha horizontal, e"parece uma linha verticalTambém recarregava a configuração com frequência no começo, mas hoje quase nunca faço isso
Se precisar, basta adicionar isto ao
.tmux.conf: Se você só usar localmente, nem precisa se preocupar com conflitosEu amo tmux, mas a pegadinha é precisar de um arquivo de configuração de 400 linhas
Do jeito padrão ele não é muito amigável, mas com bastante ajuste fica realmente excelente
Você pode consultar meu arquivo de configuração
Só precisei decorar uns 9 atalhos
Também pretendo adicionar uma versão para PowerShell
Só reverti o binding de prefixo para o original
Anos atrás passei um fim de semana lendo o livro “tmux 2: mouse-free productivity”, e foi um dos livros que mais impactaram minha produtividade
A edição mais recente continua sendo atualizada → tmux 3: productive mouse-free development