zshell

O terminal

Backends do terminal Zshell, ambiente do shell, links, notificações e recursos de segurança.

Cada painel de terminal executa seu shell de login real e usa um de dois backends nativos acelerados por GPU. O Zshell controla o comportamento ao redor — foco, busca, notificações, links, histórico, temas e segurança ao colar — para manter a experiência consistente em qualquer emulador.

Backends de terminal

Escolha em Ajustes → Terminal → Backend:

BackendObservações
GhosttyPadrão
AlacrittyGeralmente usa menos memória

Ambos suportam aceleração por GPU, imagens, o catálogo compartilhado de temas, busca, eventos de mouse, notificações e relatórios de progresso. Trocar o backend só afeta terminais novos; painéis existentes mantêm o emulador inicial.

Seu shell, sem alterações

Cada sessão inicia o shell de login da conta. Prompt, aliases, funções e dotfiles carregam como em qualquer terminal. O Zshell acrescenta variáveis de capacidade e identidade:

VariávelValor
TERM_PROGRAMghostty
TERM_PROGRAM_VERSIONA versão de capacidades Ghostty implementada pelo Zshell
ZSHELL_TERMghostty ou alacritty, o backend real do painel

Ambos anunciam Ghostty em TERM_PROGRAM porque CLIs com suporte a imagens e notificações usam isso como indicação de capacidade. Use ZSHELL_TERM apenas quando precisar distinguir o renderizador.

O Zshell não lê ~/.config/ghostty nem a configuração do Alacritty. Fontes, cores, entrada e backend são definidos nos ajustes do Zshell.

Ao iniciar pelo Dock ou Finder, Zshell lê SSH_AUTH_SOCK do shell de login interativo para usar o agente escolhido nos seus dotfiles. Ao iniciar por um terminal mantém o agente herdado válido.

Permissões do sistema

Programas locais em um terminal do Zshell podem solicitar acesso à câmera ou ao microfone, ou controlar outro app por Apple Events. O macOS atribui essas solicitações ao Zshell; permita o acesso apenas a programas confiáveis. A autorização de automação é específica para cada app de destino.

Gerencie o acesso em Ajustes do Sistema → Privacidade e Segurança → Câmera, Microfone ou Automação. Negar uma solicitação bloqueia o recurso correspondente. O Zshell não concede essas permissões automaticamente.

O foco segue o mouse

Ative Ajustes → Terminal → Comportamento → O foco segue o mouse para focar o painel quando o ponteiro entrar. Desativado por padrão, funciona com ambos os backends e o terminal rápido. Não muda o foco durante arraste, a partir de um editor ou com menu ou diálogo aberto.

terminal.focus-follows-mouse = true

AçãoAtalho
BuscarCmd+F
Buscar próxima ocorrênciaCmd+G
Buscar anteriorShift+Return na barra de busca
Usar seleção na buscaCmd+E
Limpar terminalCmd+K

A busca atua no terminal ou editor em foco e continua ativa enquanto seu campo tem o foco do teclado.

Editar o prompt

Clique dentro do prompt ativo para mover o cursor e continuar digitando nessa posição. No zsh, arraste sobre a entrada para selecionar um trecho: digitar substitui a seleção; Backspace ou Delete a remove. Cliques duplos e triplos continuam selecionando texto do terminal. Programas com eventos de mouse, como TUIs em tela cheia, continuam recebendo seus eventos.

Se um shell aninhado ou substituto não carregou o suporte de edição do Zshell, arrastar seleciona texto para copiar, mas não edita a entrada. A edição da seleção volta ao retornar ao prompt original.

A caixa padrão do Claude Code permite posicionar o cursor com clique e editar arrastando em ambos os backends, inclusive em rascunhos com quebra visual ou múltiplas linhas. Digite ou cole para substituir a entrada selecionada, ou use Backspace/Delete para apagar. Os modos normal/visual do Vim, diálogos, marcadores de anexos ou colagens recolhidas e texto de conversa rolado mantêm a seleção usual do terminal. Aplicativos que capturam o mouse continuam controlando a própria entrada.

A entrada por voz do Zisla usa a ação de colar do terminal. No Claude Code, também substitui um trecho selecionado; repetir uma frase intencionalmente continua permitido.

Atalhos do aplicativo em primeiro plano

Quando os atalhos de um aplicativo de terminal conflitam com o Zshell, clique com o botão direito no painel e ative Bloquear Comandos do Zshell. Teclas com modificadores, incluindo Ctrl+Return, vão para o aplicativo em primeiro plano enquanto o painel tem foco. Copiar, colar e selecionar tudo continuam disponíveis.

A opção vale apenas para esse painel. Desmarque no mesmo menu para restaurar os atalhos. Se o aplicativo capturar o mouse, segure Shift ao clicar com o botão direito para abrir o menu Zshell.

Fila de prompts

Foque um terminal e pressione Cmd+Shift+M ou escolha Alternar Fila de Prompts na paleta. A barra abre abaixo do terminal. Digite uma entrada e pressione Return ou Adicionar à Fila. Cada entrada tem uma linha; quebras coladas viram espaços.

Quando o zsh original retorna a um prompt vazio, o Zshell envia a próxima entrada e Return. A ordem da fila é respeitada. O envio automático espera enquanto um agente ou outro programa ocupa o terminal, ou quando há um rascunho no prompt. Ele exige a integração zsh; outros shells e shells aninhados podem usar envio manual.

Cada entrada tem Enviar Agora e Remover. Enviar Agora envia imediatamente texto e Return ao programa atual, sem esperar pelo prompt. Esc ou o botão de fechar oculta a barra e preserva as entradas. Cada terminal tem sua própria fila; fechar a sessão ou sair do Zshell a descarta.

Caminhos e URLs

O Zshell reconhece URLs e caminhos locais existentes na saída dos programas. Links locais podem ser absolutos, relativos a ~/, ./, ../ ou ao diretório atual do painel. Sufixos de diagnóstico como :42 e :42:7 não impedem localizar o arquivo.

  • Command-clique em um caminho para revelá-lo no Finder ou em uma URL para abrir no navegador padrão.
  • Command-clique com o botão direito em um caminho oferece Nova Aba de Arquivo / Novo Painel de Arquivo; em uma URL, Nova Aba de Navegador / Novo Painel de Navegador.
  • Programas em tela cheia com eventos de mouse recebem o clique direito comum. Segure Shift para abrir o menu do terminal e painel Zshell.

Assim, saídas de compiladores e conversas de agentes levam diretamente ao mesmo projeto. Veja Painéis de navegador para o comportamento do navegador.

Notificações

O Zshell encaminha dois eventos à Central de Notificações:

  • um sinal sonoro de uma sessão fora de foco;
  • uma solicitação OSC 777;notify de um programa, como uma compilação longa ou agente.

As notificações podem tocar o som do sistema. Clicar ativa o Zshell e vai à sessão exata que as emitiu. O macOS pede permissão apenas na primeira tentativa de notificar, não ao iniciar o aplicativo.

Conclusão de comandos

Abra Ajustes → Terminal → Notificações de Comandos para receber avisos ao terminar:

  • Comandos demorados: escolha 5, 10, 30 ou 60 segundos. Um comando que dure pelo menos isso gera aviso de conclusão. O padrão é Desativado.
  • Comandos com falha: avisar quando o código de saída não for zero, independentemente da duração. Vem ativado em novas configurações e pode ser desativado separadamente.

As opções valem para terminais zsh criados após a mudança em ambos os backends. Elas usam o evento de conclusão do shell original; comandos dentro de shell aninhado ou programa interativo não informam conclusões individuais por essa integração.

As mesmas opções podem ser salvas em ~/.config/zshell/config.toml:

terminal.notify-finish-seconds = 30
terminal.notify-on-error = true

Use 0 em terminal.notify-finish-seconds para desativar avisos por duração. A entrega segue as preferências de notificações do macOS.

Relatórios de progresso

Programas que emitem progresso OSC 9;4 ganham uma barra fina acima do terminal, com estados normal, pausado e erro distintos. Não há nada a ativar: se o programa informa progresso, o painel mostra.

Área de transferência, arrastar e segurança ao colar

  • Leituras da área de transferência exigem confirmação. OSC 52 pode solicitar o conteúdo, inclusive de um host remoto via SSH. O Zshell pergunta antes de fornecer.
  • Colagens arriscadas são sinalizadas. Texto com várias linhas ou parecido com comandos aguarda confirmação em vez de ser enviado imediatamente.
  • Arquivos e capturas viram caminhos seguros para o shell. Arquivos do Finder são inseridos como caminhos absolutos entre aspas. Uma imagem sozinha é salva como PNG temporário privado e seu caminho é colado. Painéis remotos enviam arquivos e capturas ao host primeiro.

Entrada com Option

Por padrão, Option permanece com a fonte de entrada ativa do macOS para que layouts como Polish Pro digitem caracteres compostos. Ative Usar Option como Alt/Meta quando um programa precisar receber essas combinações como atalhos Meta. Consulte terminal.macos-option-as-alt.

O comando zshell

Cada terminal inclui um CLI que conhece o projeto:

zshell                         # cria um projeto no diretório atual
zshell vim ~/src/app.swift     # cria o projeto e executa estes argumentos no primeiro terminal
zshell +themes                 # explora e pré-visualiza temas de forma interativa
zshell +themes --list --dark   # exibe os nomes dos temas sem abrir o seletor
zshell +help                   # mostra todos os grupos de comandos

Os comandos criam um projeto no diretório atual, criam e executam o argv no primeiro terminal, abrem a seleção interativa de temas, listam temas escuros sem o seletor e mostram todos os grupos de comandos, respectivamente. O seletor de temas aplica uma prévia ao aplicativo inteiro; Return salva e Escape restaura o tema anterior.

Fontes

O Zshell inclui JetBrains Mono e símbolos Nerd Font. Qualquer família monoespaçada instalada pode substituir a fonte latina; uma família CJK pode entrar antes dos símbolos e fallbacks do sistema. Veja font-family, terminal.font-fallback-family, font-size, terminal.font-thicken e terminal.line-height.

Terminal Rápido global

Com o Zshell aberto, Cmd+I ou Terminal → Terminal Rápido mostra ou oculta um terminal independente. Ajuste tamanho, opacidade e atalho em Ajustes → Terminal → Terminal Rápido.

Comportamento da sessão: Reutilizar espaço de trabalho (padrão) / Novo espaço a cada abertura. Reutilizar mantém painéis e tarefas. Espaços novos terminam ao serem ocultados. O modo muda na próxima exibição; o espaço reutilizável continua disponível ao voltar. O histórico segue a configuração do shell. Um espaço novo sempre começa com um terminal vazio, sem restaurar a saída, o layout ou o estado anterior.

Divida com Dividir para a direita / Dividir para baixo, o menu de contexto ou Cmd+D / Cmd+Shift+D. A preservação abaixo se aplica a espaços reutilizáveis, incluindo proporções e foco.

  • O atalho, Esc, um clique fora ou a perda de foco apenas ocultam a janela. O mesmo shell, a entrada, o histórico e as tarefas continuam ativos.
  • Fixe a janela para mantê-la visível ao trocar de app. Tamanho, opacidade e fixação são mantidos quando ela é ocultada.
  • Execute exit para encerrar a sessão; a próxima abertura inicia um shell novo.

Ative terminal.preserve-sessions antes de abrir um Terminal Rápido novo para mantê-lo após sair normalmente do Zshell. Ao reabri-lo, ambos os motores reconectam ao mesmo shell. Zshell → Sair e encerrar todas as sessões também encerra sessões ocultas. Reiniciar o macOS encerra as sessões.

Inicialização Rápida, que salva e executa comandos, é outro recurso.

Dicas de comandos Vim

Gerencie as dicas em Ajustes → Terminal → Comportamento → Dicas de comandos Vim e abra Info na barra direita. Uma seção COMANDOS VIM aparece sob as informações da sessão enquanto Vim, Vi ou Neovim está ativo. A opção vem ativada em novas configurações e afeta imediatamente terminais existentes em ambos os backends.

A lista completa de comandos comuns permanece disponível; só a prioridade muda. Normal prioriza :w, :q, yy e p/P; Visual Block prioriza I/A, alterações em bloco e movimento entre cantos. Insert, Replace, Visual, Visual Line, Select, linha de comando e busca têm sua própria ordem. Cada entrada identifica os modos aplicáveis. Pesquise por teclas, descrição ou nome do modo; descrições e interface de busca seguem qualquer um dos 17 idiomas. Limpe a busca para restaurar a lista completa. As dicas são uma referência e nunca enviam entrada ao editor.

Editores locais são identificados pelo executável em primeiro plano. Em SSH, Mosh ou multiplexadores, a detecção usa a linha visível de modo/status e o layout da tela sem instalar plugin remoto. Mantenha showmode ou uma linha de status reconhecível. Configurações que ocultam ou renomeiam modos podem retornar às dicas Normal ou impedir a detecção remota; mapeamentos personalizados não são interpretados. Apenas o painel Info ativo é amostrado; as dicas somem quando muda o programa em primeiro plano ou o editor deixa de ser reconhecível.

Você também pode ativar no arquivo com terminal.vim-command-hints = true.