Por que escolhi o WezTerm como meu terminal padrão.

Por que escolhi o WezTerm como meu terminal padrão.

Durante anos experimentei diversos terminais no Linux: GNOME Terminal, Tilix, Alacritty, Kitty... mas nenhum entregou o equilíbrio que encontrei no WezTerm. Ele é rápido, bonito, altamente personalizável e moderno. E mais: finalmente encontrei um terminal que respeita meu gosto por estética (tema Catppuccin + fonte Maple Mono NF).

Performance com GPU que faz diferença

O WezTerm é acelerado por GPU, então mesmo com vários splits rodando logs pesados, conexões SSH e comandos em loop, tudo continua fluido. É uma experiência superior em comparação a terminais baseados em CPU puro.

Visual impecável com Catppuccin + Maple Mono NF

Sou apaixonado por estética clean no terminal. Uso:

  • Tema: Catppuccin Mocha
  • Fonte: Maple Mono Nerd Font

Esse conjunto entrega:

  • Ligaduras funcionais (===, =>, etc.).
  • Ícones perfeitos no prompt com Zsh/Fish.
  • Visual que não cansa a vista durante longas sessões.
-- Importa o módulo principal do WezTerm
local wezterm = require("wezterm")

-- Retorna a configuração do terminal
return {
  -- Define a fonte usada no terminal
  -- "Maple Mono NF" é uma Nerd Font com suporte a ícones e ligaduras
  font = wezterm.font("Maple Mono NF"),

  -- Tamanho da fonte
  font_size = 12.5,

  -- Tema de cores: "Catppuccin Mocha" (tons escuros e suaves)
  color_scheme = "Catppuccin Mocha",

  -- Exibe a barra de abas no topo da janela
  enable_tab_bar = true,

  -- Define a opacidade da janela (0.0 = totalmente transparente, 1.0 = opaco)
  window_background_opacity = 0.95,

  -- Define os elementos decorativos da janela (aqui, apenas redimensionamento)
  window_decorations = "RESIZE",

  -- Evita que a janela mude de tamanho ao ajustar a fonte (mantém layout estável)
  adjust_window_size_when_changing_font_size = false,

  -- Atalhos de teclado personalizados
  keys = {
    {
      -- Alt + Enter → divide o terminal horizontalmente
      key = "Enter",
      mods = "ALT",
      action = wezterm.action.SplitHorizontal { domain = "CurrentPaneDomain" },
    },
    {
      -- Alt + Shift + Enter → divide o terminal verticalmente
      key = "Enter",
      mods = "ALT|SHIFT",
      action = wezterm.action.SplitVertical { domain = "CurrentPaneDomain" },
    },
  },

}

Splits, Abas e Multiplexador sem tmux

Com essa config, eu crio splits diretamente no WezTerm:

  • Alt + Enter: split horizontal
  • Alt + Shift + Enter: split vertical
  • Ctrl + Shift + T: nova aba
  • Ctrl + Shift + W: fechar aba

E ainda posso mover entre painéis com atalhos personalizados, sem depender de tmux

💡 Outras vantagens reais

  • Suporte total ao Wayland no Arch Linux (onde uso o Mutter como compositor).
  • Configuração com condições lógicas, ideal para quem usa WSL, múltiplos monitores ou ambientes remotos.
  • Atualizações frequentes com melhorias reais (e não só correções).

Por que abandonei os outros?

TerminalMotivo da troca
TilixInterface parada no tempo, sem GPU
GNOME TerminalLimitado demais, visual básico
AlacrittyRápido, mas sem splits nem tabs
KittyBom, mas pesado e instável no meu setup