Passo 2 · Módulo 2 · Traduzir·Módulo 2 · Traduzir · Do iTerm2 ao Warp, chave por chave
Do guia da Rocketseat ao Warp · Visual Course
Do iTerm2 ao Warp, chave por chave
O guia manda clicar em menus do iTerm2. Você vai sair com as mesmas quatro decisões escritas em ~/.warp/settings.toml — e sabendo validar o arquivo sem tropeçar no dialeto do Warp.
A referência das chaves de aparência do Warp. Esta lição traduz cada passo de menu do guia da Rocketseat na chave equivalente, e mostra como conferir o resultado no arquivo.
Leia a versão simples, ou abra a camada técnica em qualquer seção.
1
A grande ideia
O guia foi escrito para o iTerm2, que se configura clicando em menus. O Warp se configura pelo mesmo lugar por baixo: um arquivo de texto. Traduzir o guia é achar, para cada passo do menu, a chave equivalente no ~/.warp/settings.toml.
Pense como… a mesma receita em duas cozinhas: o forno muda de marca, a temperatura não. A analogia quebra num ponto — o Warp tem um forno a mais, que o iTerm2 não tem, e é justamente ele que desliga o prompt do Starship se você não souber que existe.
O Warp lê ~/.warp/settings.toml e o relê a quente: alterar o arquivo com o app aberto já vale para a próxima sessão, sem reiniciar. O dialeto é TOML com duas extensões do draft 1.1 — inline tables em várias linhas e vírgula final — que um parser TOML 1.0 estrito recusa. Isso importa na hora de validar o arquivo por script: normalize antes de dar tomllib.loads.
Ao fim desta lição você consegue
Mapear cada instrução do guia (escrita para iTerm2) na chave do Warp
Instalar e apontar a JetBrainsMono Nerd Font pelo arquivo, não pelo menu
Entender o tema Vesper como dado — 18 cores em YAML
Validar o settings.toml por script sem quebrar no dialeto do Warp
O caminho de qualquer ajuste: sai do menu do guia, entra numa chave, o Warp relê e a próxima sessão nasce com ele.Quando cada chave é lida. As de aparência valem quase na hora; as que viram variável de ambiente valem na próxima aba.
2
O mapa iTerm2 → Warp
São quatro instruções no guia. Cada uma vira uma linha de arquivo.
Instrução por instrução. A última linha não tem par: é uma chave que só o Warp tem, e a lição 3 é inteira sobre ela.Os arquivos do Warp tocados nesta implementação — o que nasceu, o que mudou e o que ficou como estava.O tamanho real da tradução. A quinta chave é a que o guia não podia prever — ela só existe no Warp.
As quatro instruções do guia, já traduzidas. Note o inline table em várias linhas — dialeto do Warp.
Como chegar: Abra com bat ~/.warp/settings.toml. O Warp também expõe tudo isso em Settings, mas o arquivo é a fonte da verdade.
3
A fonte: por que "Nerd Font"
O guia pede JetBrainsMono "com ícones". A JetBrains Mono normal não tem ícones — quem tem é a variante Nerd Font, que empacota a fonte original mais alguns milhares de glifos de ícone. É essa que o prompt do Starship precisa.
Codepoints no cmap de cada fonte. Os ~10.800 a mais são justamente os ícones que o prompt usa.
Instala e depois confirma o nome exato da família — é esse nome que vai no settings.toml.
Como chegar: Se o grep não devolver nada, o font_name não vai casar e o Warp cai silenciosamente numa fonte padrão.
O cask instala três famílias: JetBrainsMono Nerd Font (ícones na largura natural), … Nerd Font Mono (ícones forçados a uma célula) e … Nerd Font Propo (proporcional). Para o Warp, a primeira é a escolha: ele já mede a grade por célula e os ícones de largura dupla do Starship (o do Node, por exemplo) ficam com respiro correto. A variante Mono espreme esses ícones; a Propo quebra o alinhamento de colunas do eza -l.
Qual das três famílias que o cask instala usar no Warp.As três famílias instaladas pelo mesmo cask, e o efeito de cada uma numa saída em colunas.
O settings.toml tem font_name e ai_font_name. Se você trocar só o primeiro, o que acontece?
O terminal muda de fonte, mas o painel do agente continua na fonte antiga — e blocos de código colados lá aparecem sem os ícones. Por isso os dois foram trocados juntos.
4
Em uma imagem
A paleta Vesper como o Warp a lê: 4 chaves de topo (background, foreground, accent, cursor) mais 8 cores normais e 8 bright. É só dado — nenhum código.
O tema inteiro. O guia manda importar um .itermcolors pelo menu; no Warp você põe este YAML na pasta e aponta a chave.
Como chegar: Qualquer arquivo em ~/.warp/themes/ aparece no seletor de temas do Warp assim que o app relê a pasta.
O caminho de um tema até a tela. O guia para no passo 1 porque o iTerm2 importa direto; o Warp quer o YAML.A mesma paleta reaparece em quatro lugares diferentes. Trocar de tema é trocar esses quatro — a lição 4 fecha os três de baixo.
5
Validar sem quebrar no dialeto
Depois de editar o arquivo, você quer saber que ele continua válido. Só que um parser TOML padrão recusa o arquivo do Warp — e não porque você errou.
O erro não é um erro seu: é o parser 1.0 encontrando uma extensão que o próprio Warp gerou.
Um scanner de 12 linhas que aceita exatamente as duas extensões do Warp e entrega o resto ao parser de verdade.
validador tolerante ao dialeto do Warp
# colapsa quebras de linha dentro de {} / [] fora de string e remove a virgula
# final, depois valida com o parser real
out=[];depth=0;q=None;i=0
while i<len(src):
c=src[i]
if q:
out.append(c)
if c==q: q=None
elif c=='\\' and q=='"': out.append(src[i+1]); i+=1
elif c in '"\'': q=c; out.append(c)
elif c in '{[': depth+=1; out.append(c)
elif c in '}]': depth-=1; out.append(c)
elif c=='\n' and depth>0: out.append(' ')
else: out.append(c)
i+=1
flat=re.sub(r',(\s*[}\]])', r'\1', ''.join(out))
d=tomllib.loads(flat)
Como chegar: Está embutido no verify.sh do projeto, no bloco D2/D4.
As seções do settings.toml. Esta implementação toca as três primeiras e passa longe da quarta.Linhas por seção neste arquivo. As três em âmbar são as que o guia faz você tocar — 35 linhas de 108.
Seria tentador reescrever o settings.toml em TOML 1.0 estrito. Mas o arquivo tem 21 regexes de redação de segredo escritas em inline tables multilinha, e o Warp reescreve o arquivo sozinho quando você mexe em qualquer preferência pela interface — sua normalização duraria até o próximo clique. Tolerar o dialeto na leitura é a decisão estável; reescrever seria trabalho que o app desfaz.
WARP
Onde mora a configuração do Warp?
clique para virar
~/.warp/settings.toml — mais themes/, workflows/, keybindings.yaml e tab_configs/.
FONTE
Por que "Nerd Font" e não "JetBrains Mono"?
clique para virar
A variante Nerd Font empacota ~10.800 glifos de ícone a mais. Sem eles, o prompt do Starship vira quadradinho.
TOML
Por que o tomllib recusa o settings.toml?
clique para virar
O Warp usa duas extensões do draft TOML 1.1: inline table em várias linhas e vírgula final. Não é erro do arquivo.
6
Experimente
Trocar a fonte do Warp pelo arquivo
1
brew install --cask font-jetbrains-mono-nerd-font
2
Confirme o nome exato: fc-list : family | tr ',' '\n' | grep -i jetbrains
3
Edite font_name e ai_font_name no ~/.warp/settings.toml
4
Abra uma aba nova — o Warp já releu o arquivo
→
Agora você: troque para outra família Nerd Font (Fira Code NF, Hack NF) e veja o prompt do Starship se manter inteiro; depois tente uma fonte sem Nerd Font e observe os quadradinhos aparecerem.
Revisão da lição 2
Qual chave do Warp corresponde a "Profiles > Colors > Import" do iTerm2?
a está certa: o YAML vai em ~/.warp/themes/ e a chave aponta qual usar em dark e light. b confunde tema com fonte — font_name é tipografia. c é a chave do prompt, assunto da próxima lição, e nada tem a ver com cor.
O tomllib recusou o settings.toml. O que isso significa?
b está certa: inline table multilinha e vírgula final são do draft 1.1. a é o pânico errado — o Warp lê o arquivo normalmente. c daria outra mensagem de erro, e numa coluna diferente.
Na próxima lição vem a chave que não tem equivalente no iTerm2 — e sem a qual todo o trabalho de configurar o Starship fica invisível.