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:
| Backend | Observações |
|---|---|
| Ghostty | Padrão |
| Alacritty | Geralmente 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ável | Valor |
|---|---|
TERM_PROGRAM | ghostty |
TERM_PROGRAM_VERSION | A versão de capacidades Ghostty implementada pelo Zshell |
ZSHELL_TERM | ghostty 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
Busca
| Ação | Atalho |
|---|---|
| Buscar | Cmd+F |
| Buscar próxima ocorrência | Cmd+G |
| Buscar anterior | Shift+Return na barra de busca |
| Usar seleção na busca | Cmd+E |
| Limpar terminal | Cmd+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;notifyde 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 = trueUse 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 52pode 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 comandosOs 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
exitpara 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.