· Serhii Siryk · Development · 4 min de leitura
Alternar a Visibilidade do Terminal Ghostty com um Atalho Global no macOS

Se chegou aqui, provavelmente é um utilizador do Ghostty que adora ter um terminal a uma tecla de distância — e já bateu na mesma parede que eu.
O Problema do Atalho Global Integrado do Ghostty
O Ghostty suporta um atalho global nativo através do seu ficheiro de configuração. A sintaxe é assim:
keybind = global:ctrl+y=toggle_visibility
Funciona — até fechar a app. No próximo lançamento, o Ghostty espalha todos os separadores cuidadosamente arrumados em janelas separadas. Todas. As. Vezes.
Na versão 1.3.1 (build 15212), nenhuma das variações que experimentei funcionou de forma fiável — há várias issues abertas no tracker do Ghostty que confirmam que é um problema conhecido. Segui em frente e encontrei duas alternativas sólidas sem este inconveniente — e como bónus, ambas são genéricas o suficiente para funcionar com qualquer app, não apenas o Ghostty.
Opção 1: Hammerspoon (Recomendado)
Hammerspoon é uma ferramenta poderosa de automação do macOS que lhe permite escrever scripts em Lua para controlar praticamente tudo no seu sistema. Para o nosso caso de uso, é perfeita.
O que faz
- Ao premir
Ctrl + `, o Ghostty recebe foco se estiver em execução em segundo plano. - Se o Ghostty já for a app em primeiro plano, esconde-o (alternância estilo quake).
- Se o Ghostty não estiver em execução, lança-o.
Configuração
1. Instale o Hammerspoon
Descarregue-o de hammerspoon.org ou instale via Homebrew:
brew install --cask hammerspoon
2. Edite a sua configuração do Hammerspoon
Abra (ou crie) ~/.hammerspoon/init.lua e adicione:
local bundleID = "com.mitchellh.ghostty"
hs.hotkey.bind({"ctrl"}, "`", function()
local app = hs.application.get(bundleID)
if not app then
hs.application.launchOrFocusByBundleID(bundleID)
return
end
if app:isFrontmost() then
app:hide()
else
app:activate(true)
end
end)
3. Recarregue o Hammerspoon
Clique no ícone do Hammerspoon na barra de menus e selecione Reload Config, ou prima Cmd + R dentro da consola do Hammerspoon.
4. Conceda a permissão de Acessibilidade
O macOS irá pedir-lhe para autorizar o Hammerspoon em:
System Settings → Privacy & Security → Accessibility
Adicione o Hammerspoon à lista e ative-o. Isto é necessário para o Hammerspoon enviar teclas e controlar outras aplicações.
É tudo — o seu atalho está ativo.
Opção 2: Automator do macOS (Sem Ferramentas Extras)
Se preferir não instalar o Hammerspoon, o macOS tem tudo o que precisa integrado. Esta abordagem usa um Automator Quick Action (anteriormente chamado Service) com um pequeno AppleScript.
O que faz
O mesmo comportamento da versão Hammerspoon:
- Dá foco ao Ghostty ou esconde-o se estiver em execução.
- Lança o Ghostty se não estiver.
Configuração
1. Abra o Automator
Lance o Automator a partir do Spotlight (Cmd + Space, escreva “Automator”).
2. Crie um novo Quick Action
Escolha File → New e selecione Quick Action como tipo de documento.
3. Adicione uma ação Run AppleScript
Na barra de pesquisa à esquerda, procure “Run AppleScript” e arraste-o para a área do fluxo de trabalho. Substitua o conteúdo predefinido por:
on run {input, parameters}
tell application "Ghostty"
if not running then
activate
return input
end if
end tell
tell application "System Events"
set terminalProcess to first process whose name is "Ghostty"
if frontmost of terminalProcess then
set visible of terminalProcess to false
else
set frontmost of terminalProcess to true
end if
end tell
return input
end run
4. Guarde o fluxo de trabalho
Guarde-o com um nome reconhecível, por exemplo ToggleTerminal. O Automator guarda-o como ToggleTerminal.workflow.
5. Atribua um atalho de teclado
Vá a:
System Settings → Keyboard → Keyboard Shortcuts → Services → General
Encontre ToggleTerminal na lista e atribua o seu atalho preferido (por exemplo `Ctrl + “).
6. Conceda permissões no primeiro arranque
Na primeira vez que o fluxo de trabalho é executado, o macOS mostra um aviso:
“Ghostty.app” wants access to control “System Events.app”. Allowing control will provide access to documents and data in “System Events.app”, and to perform actions within that app.
Clique em OK. Não voltará a ser perguntado.
Comparar as Duas Abordagens
| Hammerspoon | Automator | |
|---|---|---|
| Instalação extra necessária | Sim (Hammerspoon) | Não |
| Localização da configuração | ~/.hammerspoon/init.lua | System Settings → Services |
| Lança o Ghostty se não estiver em execução | ✅ | ✅ |
| Esconde quando já tem foco | ✅ | ✅ |
| Permissão necessária | Accessibility | Automation (System Events) |
| Personalização | Alta (scripting Lua completo) | Limitada a AppleScript |
Se já usa o Hammerspoon para outras automações, a abordagem em Lua encaixa na perfeição. Se preferir manter o sistema enxuto, o fluxo de trabalho do Automator resolve o problema sem dependências.
Conclusão
O Ghostty é um excelente terminal, mas a implementação do atalho global tem algumas arestas por limar no macOS. Ambas as soluções acima contornam o problema por completo — e como nenhuma é específica do Ghostty, pode reutilizar a mesma abordagem para atribuir um atalho de alternância a qualquer app do sistema. Basta trocar o bundle ID ou o nome da app.
Escolha a que melhor se adapta à sua configuração, atribua Ctrl + ` e desfrute de um terminal que aparece e desaparece exatamente quando quer.



