10 pontos por xguru 28 일 전 | 5 comentários | Compartilhar no WhatsApp
  • Introdução de um renderizador experimental que elimina a cintilação e os saltos de tela do renderizador anterior
  • Mesmo com conversas longas, o uso de memória e CPU permanece constante, e no terminal agora é possível clicar com o mouse, mover o cursor e clicar em elementos da UI
  • Ativação pela variável de ambiente CLAUDE_CODE_NO_FLICKER=1
  • Devido às limitações estruturais dos códigos ANSI do terminal, para redesenhar linhas fora do viewport antes era necessário usar código de limpeza da tela inteira, mas o novo renderizador resolve isso ao virtualizar todo o viewport
  • Ainda existem trade-offs, como falta de suporte a busca nativa com cmd-f, copiar e colar, e ajustes físicos de rolagem ainda inacabados, por isso continua em fase experimental
  • Como o conteúdo da conversa fica no buffer de tela alternativo, e não no scrollback, é possível entrar no modo Transcript com Ctrl+O e usar busca no estilo less (/, n/N)
  • O campo de entrada permanece fixo na parte inferior da tela mesmo enquanto a saída está sendo transmitida
  • Suporte a tratamento de eventos de mouse no app, como ajustar a posição do cursor com o mouse, expandir resultados de ferramentas, abrir URLs/caminhos de arquivo e selecionar texto arrastando

Para mais detalhes, veja Fullscreen rendering na documentação do Claude Code (anexado abaixo)

Renderização em tela cheia

  • Defina a variável de ambiente CLAUDE_CODE_NO_FLICKER=1 ao executar, ou adicione export CLAUDE_CODE_NO_FLICKER=1 ao ~/.zshrc / ~/.bashrc para aplicar automaticamente em todas as sessões
  • Requer Claude Code v2.1.88 ou superior, e no momento está em fase de research preview, então o comportamento pode mudar conforme o feedback
  • O nome "tela cheia" não tem relação com maximizar a janela do terminal; funciona em qualquer tamanho de janela

O que mudou em relação ao método anterior

  • O campo de entrada permanece fixo na parte inferior da tela mesmo enquanto a saída está sendo transmitida (se o campo de entrada estiver fixo, a renderização em tela cheia está ativada)
  • Como o conteúdo da conversa fica no buffer de tela alternativo, estas mudanças em relação ao comportamento anterior se aplicam:
Antes Depois
Navegar pelo texto com Cmd+F ou busca do tmux Buscar com / após Ctrl+O, ou gravar no scrollback nativo com [ e usar Cmd+F
Selecionar e copiar com arrasto nativo do terminal Seleção dentro do app, com cópia automática ao soltar o botão do mouse
Abrir URL com Cmd+clique Abrir com clique na URL

Suporte a mouse

  • Clique no campo de entrada do prompt: posiciona o cursor em qualquer ponto do texto
  • Clique em resultado de ferramenta recolhido: expande ou recolhe (a chamada da ferramenta e o resultado se expandem juntos)
  • Clique em URL ou caminho de arquivo: arquivos são abertos no app padrão, e URLs http:///https:// são abertas no navegador
    • Em terminais baseados em xterm.js, como o terminal embutido do VS Code, o comportamento é delegado ao manipulador de links do próprio terminal para evitar abrir o link duas vezes
  • Clique e arraste: seleciona texto (duplo clique: seleciona palavra, triplo clique: seleciona linha)
  • Roda do mouse: rolagem da conversa
  • Ao soltar o botão do mouse, o texto selecionado é copiado automaticamente para a área de transferência; isso pode ser desativado em /config

Atalhos de rolagem

Atalho Ação
PgUp / PgDn Rola meia tela para cima/baixo
Ctrl+Home Vai para o topo da conversa
Ctrl+End Vai para a mensagem mais recente e reativa o acompanhamento automático
Roda do mouse Rola algumas linhas por vez
  • Em teclados sem teclas dedicadas, como os do MacBook, use Fn+↑/↓/←/→ no lugar de PgUp/PgDn/Home/End
  • Ao rolar para cima, o acompanhamento automático (auto-follow) é pausado temporariamente; ele volta com Ctrl+End ou ao rolar até o fim
  • Os atalhos podem ser personalizados nas teclas de atalho com nomes de ação como scroll:pageUp, scroll:pageDown etc. (veja a documentação de Keybindings)
  • A variável de ambiente CLAUDE_CODE_SCROLL_SPEED permite ajustar o multiplicador da velocidade da roda do mouse (1~20, recomendado 3 com base no vim)

Busca e revisão da conversa (modo Transcript)

  • Ao entrar no modo Transcript com Ctrl+O, é possível usar navegação e busca no estilo less
Tecla Ação
/ Abre a busca (Enter: confirmar, Esc: cancelar)
n / N Vai para o próximo/resultado anterior da busca
j/k ou / Rola uma linha
g/G ou Home/End Vai para o topo/fim
Ctrl+U / Ctrl+D Rola meia página
[ Grava a conversa inteira no scrollback nativo do terminal (permite usar Cmd+F)
v Salva em arquivo temporário e abre com $VISUAL/$EDITOR
Esc, q, Ctrl+O Sai do modo Transcript

Observações ao usar tmux

  • Para usar rolagem com a roda do mouse no tmux, é preciso adicionar set -g mouse on ao ~/.tmux.conf
    • Sem o modo mouse, os eventos da roda são enviados ao tmux; a rolagem por teclado com PgUp/PgDn continua funcionando normalmente
    • Se o Claude Code for iniciado com o modo mouse do tmux desativado, ele exibirá uma mensagem informativa única
  • tmux -CC (modo de integração do iTerm2) não é compatível
    • Nesse modo, o buffer de tela alternativo e o rastreamento de mouse não funcionam corretamente, e um duplo clique pode corromper o estado do terminal
    • O uso normal do tmux dentro do iTerm2, sem -CC, funciona corretamente

Como manter a seleção nativa de texto

  • Se a captura de mouse for incômoda, defina também CLAUDE_CODE_DISABLE_MOUSE=1 para manter apenas a prevenção de cintilação e o uso constante de memória, sem capturar o mouse
    CLAUDE_CODE_NO_FLICKER=1 CLAUDE_CODE_DISABLE_MOUSE=1 claude  
    
  • Com a captura de mouse desativada, a rolagem por teclado (PgUp, PgDn, Ctrl+Home, Ctrl+End) continua disponível, mas posicionamento do cursor por clique, expansão de resultados de ferramentas, clique em URL e rolagem com a roda do mouse ficam desativados
  • Em ambientes SSH ou dentro do tmux, o caminho até a área de transferência muda quando há captura de mouse, e o Claude Code informa em um toast qual caminho foi usado após a cópia

Research preview e feedback

  • Foi testado nos principais emuladores de terminal, mas podem ocorrer problemas de renderização em terminais incomuns ou com configurações atípicas
  • Em caso de problema, execute o comando /feedback dentro do Claude Code ou abra uma issue no repositório GitHub do claude-code (incluindo nome e versão do emulador de terminal)
  • Para desativar, remova a variável de ambiente ou defina CLAUDE_CODE_NO_FLICKER=0

5 comentários

 
neocode24 26 일 전

Eu uso em modo integrado com iterm -CC.. então nem percebi muito bem o que havia de estranho...
Na verdade, o que estava me incomodando era que, desde um tempo atrás, se eu rolasse a tela durante a renderização, ela pulava à força para o topo; agora a posição fica parada e muda para um aviso de nova mensagem, então gostei. Muito bom..

 
@deleted_gndfr0dev 27 일 전

Parece que está ficando com uma pegada meio OpenCode.

 
tested 27 일 전

A TUI virou GUI

 
kimjoin2 27 일 전

Gostei dessa mudança~

 
byforce 28 일 전

Ainda parece que precisa de mais alguns ajustes.
Se eu deixo o cursor em um lugar e seleciono outro com o mouse, a cópia é feita automaticamente, e ao colar deveria inserir no lugar onde o cursor estava.
Mas está colando no local selecionado com o mouse.