4 pontos por GN⁺ 2024-08-13 | 1 comentários | Compartilhar no WhatsApp

Experiência usando o WezTerm

Antes de começar

  • É necessário instalar o WezTerm
  • Usuários de macOS podem instalar com Homebrew ($ brew install wezterm)

Explicação sobre Lua

  • A configuração do WezTerm é definida em Lua
  • Lua é semelhante a outras linguagens de programação dinâmicas, então é fácil de ler
  • Para configurações complexas, vale a pena aprender Lua mais a fundo

Arquivo de configuração e loop de feedback

  • O arquivo de configuração fica em $XDG_CONFIG_HOME/wezterm/wezterm.lua
  • Ao alterar o arquivo de configuração, ele é recarregado automaticamente
  • É possível verificar os logs pelo overlay de depuração (CTRL + SHIFT + L)

Configuração da aparência

Tema de cores

  • O WezTerm oferece mais de 1.000 temas de cores
  • Exemplo: config.color_scheme = 'Tokyo Night'

Tema de cores dinâmico

  • É fornecido um exemplo de código que muda aleatoriamente o tema de cores cada vez que uma nova janela é aberta

Respeitar a aparência do sistema

  • O tema de cores muda automaticamente de acordo com o modo de aparência do sistema
  • Configure isso após criar o arquivo appearance.lua

Configuração de fonte

  • A fonte padrão é JetBrains Mono
  • Exemplo: config.font = wezterm.font({ family = 'Berkeley Mono' })

Estilização da janela

  • Configuração de transparência do fundo e blur da janela
  • Exemplo: config.window_background_opacity = 0.9

Configuração da barra de status

  • Adiciona uma barra de status no estilo powerline à direita da barra de abas
  • Usa a API de eventos do WezTerm

Configuração de teclas

Mapeamento de teclas padrão

  • É possível manter ou desativar os mapeamentos de teclas padrão (config.disable_default_key_bindings = true)

Exemplos de mapeamento de teclas

  • Mapeia Option + Left Arrow e Option + Right Arrow para navegação entre palavras
  • Define um atalho para abrir o arquivo de configuração (CMD + ,)

Recurso de multiplexação

  • Usa o recurso de multiplexação do WezTerm
  • Define um atalho para dividir a janela (CTRL + SHIFT + P)

Configuração da tecla líder

  • Define a tecla líder como CTRL + A
  • Usa o atalho de divisão de janela junto com a tecla líder

Movimentação entre painéis

  • Define mapeamentos de tecla para mover entre painéis (usando as teclas de direção do vim)

Redimensionamento de painéis

  • Define uma tabela de teclas para redimensionar painéis
  • Usa junto com a tecla líder para redimensionar os painéis

Espaços de trabalho de projeto

Criar e alternar espaços de trabalho

  • Após criar o arquivo projects.lua, adicione uma função para alternar entre projetos
  • Ao selecionar um projeto, um novo espaço de trabalho do WezTerm é criado

Resumo do GN⁺

  • O WezTerm permite configurações flexíveis com Lua, possibilitando ampla personalização
  • O recarregamento automático e o overlay de depuração facilitam alterações na configuração
  • Os recursos de multiplexação e gerenciamento de espaços de trabalho são excelentes, e vários mapeamentos de tecla podem aumentar a produtividade
  • Terminais com recursos semelhantes incluem Alacritty e kitty

1 comentários

 
GN⁺ 2024-08-13
Comentários no Hacker News
  • Mudei recentemente para o WezTerm e estou muito satisfeito. Antes usava o kitty e gostava das configurações e da simplicidade do iTerm2. O WezTerm oferece recursos muito melhores por padrão. A configuração do terminal é curta o bastante para caber toda na tela do editor. Depois disso, não precisei mais me preocupar com o terminal

    • Eu enfrentava problemas com frequência usando o kitty e tentei reproduzir os recursos do iTerm2, mas me decepcionei com os comentários secos e desdenhosos do mantenedor do kitty
    • Por exemplo, à pergunta "como configuro o tmux no kitty?", recebi a resposta "não faça isso, tmux é idiota". No fim, desisti
  • O WezTerm responde muito rapidamente às issues no GitHub e normalmente resolve os problemas em um ou dois dias. Tirando um pequeno problema com teclas modificadoras via SSH, ele é quase perfeito em recursos. É rápido e muito bom

    • Antes eu era um usuário fervoroso do Alacritty, mas precisava de um suporte melhor a modificadores para usar emacs remoto
  • Ao trocar do Kubuntu para o Ubuntu, eu queria alguns recursos do Konsole (scrollback infinito, busca no scrollback), mas instalei o WezTerm para não precisar instalar o Konsole. Gostei do WezTerm imediatamente, embora muitos recursos não sejam fáceis de descobrir. A documentação é muito boa, e o autor é muito participativo e prestativo

    • Por exemplo, eu encontrei como selecionar grandes blocos de texto usando só o teclado e usei uma vez, mas logo esqueci e voltei a selecionar texto com o mouse. É mais rápido do que procurar a página na documentação de novo
    • Para referência, a página que eu estava procurando era https://wezfurlong.org/wezterm/copymode.html
  • Testei Mac Terminal, iTerm2, Kitty, Warp e outros, mas acabei ficando com o WezTerm. É fácil de configurar, rápido e bonito. Até criei um tema

  • Qual é a grande vantagem do WezTerm? Ele é totalmente cross-platform, então pode ser usado em Linux, macOS e Windows. Eu compartilho a configuração do terminal entre vários sistemas operacionais

  • Uso o WezTerm há cerca de um ano e apoio o Wez no GitHub. O WezTerm é um terminal excelente, e o desenvolvedor também é excelente. Uso com frequência a cópia rápida e outros modos de cópia

    • No meu notebook com macOS, uso algo parecido com mosh+tmux para me conectar a uma máquina Linux de trabalho. Mantenho uma sessão sempre rodando para poder trabalhar na máquina a partir do Mac. Ele oferece sessões reconectáveis, painéis e abas
  • O motivo de eu continuar usando o iTerm2 é o recurso "Edit->Selection Respects Soft Boundaries". Esse recurso interpreta o caractere pipe | como separador de painel, então a seleção se ajusta a isso

  • Concordo com a opinião dos outros usuários. Já faz quase 10 anos que comecei a usar macOS e venho usando o iTerm2. Recentemente ele começou a ficar lento. Ao fazer cmd-tab, eu tinha que esperar mais de 1 segundo para o terminal aparecer

    • Avaliei várias alternativas, mas não gostei delas. Um terminal exigia conta/login, e outro era escrito em {Java,Type}Script e até comandos simples quebravam por causa de problemas com streams assíncronos
    • O WezTerm é muito rápido, configurável e já vem com o tema OneDark (base16) por padrão
    • Na configuração inicial, precisei adicionar cmd-left e cmd-right ao arquivo de configuração em lua
  • O Wez vai publicar um livro sobre programação de sistemas em Rust

  • OT: Estou mais animado com o Ghostty, criado pelo fundador da HashiCorp