Capitulo 7: Tips Avanzados
Capitulo 7: Tips Avanzados
En este capitulo exploramos funcionalidades avanzadas de Ghostty: el quick terminal, optimizacion de rendimiento, configuracion condicional y automatizacion.
Anterior: Shell integration | Indice: Volver al indice
Quick Terminal
El quick terminal es una ventana liviana que aparece con un atajo global, similar al modo Quake de terminales como Yakuake o Guake. Ideal para ejecutar comandos rapidos sin interrumpir tu flujo de trabajo.
Activar el quick terminal
keybind = global:ctrl+grave_accent=toggle_quick_terminal
El prefijo global: es obligatorio para que funcione sin importar que aplicacion tenga el foco.
macOS: Requiere permisos de Accesibilidad en Configuracion del Sistema > Privacidad y Seguridad > Accesibilidad.
Configurar posicion
# Opciones: top, bottom, left, right, center
quick-terminal-position = top
| Posicion | Comportamiento |
|---|---|
top | Desliza desde arriba (estilo Quake) |
bottom | Aparece desde abajo |
left | Aparece desde la izquierda |
right | Aparece desde la derecha |
center | Ventana centrada con tamano reducido |
Configurar pantalla
# En que monitor aparece el quick terminal
quick-terminal-screen = main
Animacion
# Duracion de la animacion en segundos
quick-terminal-animation-duration = 0.2
# Desactivar animacion (util en configuraciones multi-monitor)
quick-terminal-animation-duration = 0
Auto-ocultar
# Se oculta al perder el foco
quick-terminal-autohide = true
Ejemplo completo
keybind = global:ctrl+grave_accent=toggle_quick_terminal
quick-terminal-position = top
quick-terminal-screen = main
quick-terminal-animation-duration = 0.15
quick-terminal-autohide = true
Paleta de comandos
Ghostty incluye una paleta de comandos que permite buscar y ejecutar acciones rapidamente:
keybind = ctrl+shift+p=toggle_command_palette
La paleta muestra todas las acciones disponibles con sus atajos actuales.
Rendimiento GPU
Motor de renderizado
Ghostty usa renderizado GPU nativo:
- macOS: Metal
- Linux: OpenGL
No requiere configuracion adicional. El renderizado se optimiza automaticamente.
Throttling de CPU
Si necesitas reducir el uso de CPU (por ejemplo, en un portatil con bateria):
# Limitar el frame rate de la terminal
# Menos frames = menos consumo de CPU/GPU
window-vsync = true
Scrollback y memoria
Un scrollback grande consume mas memoria. Ajusta segun tus necesidades:
# Default: 10000 lineas
scrollback-limit = 10000
# Para sesiones con mucha salida
scrollback-limit = 100000
# Minimo (ahorra memoria)
scrollback-limit = 1000
Protocolo de graficos Kitty
Ghostty soporta el protocolo de graficos de Kitty, permitiendo mostrar imagenes directamente en la terminal:
# Ver una imagen usando herramientas compatibles
# Requiere un visor compatible como kitten icat
kitten icat imagen.png
Funciona con aplicaciones que usen este protocolo, como ranger, viu o timg.
Inspector de terminal
Ghostty incluye un inspector integrado para depurar problemas de renderizado y secuencias de escape:
keybind = ctrl+shift+i=inspector:toggle
El inspector muestra:
- Secuencias de escape recibidas
- Estado del terminal
- Informacion de renderizado
Configuracion condicional por OS
Puedes incluir archivos de configuracion adicionales:
config-file = ~/.config/ghostty/config-local
Para mantener configuraciones separadas por OS, puedes usar la estructura:
~/.config/ghostty/
config # Configuracion base (compartida)
config-local # Configuracion especifica de la maquina
themes/
mi-tema # Temas personalizados
En el archivo config principal:
# Opciones compartidas
font-family = JetBrains Mono
font-size = 14
theme = light:Rose Pine Dawn,dark:Rose Pine
# Cargar configuracion local si existe
config-file = ~/.config/ghostty/config-local
En config-local de macOS:
# Opciones especificas de macOS
keybind = global:super+grave_accent=toggle_quick_terminal
quick-terminal-position = top
window-decoration = auto
En config-local de Linux:
# Opciones especificas de Linux
keybind = global:ctrl+grave_accent=toggle_quick_terminal
window-decoration = server
gtk-titlebar = false
Guardar contenido de la terminal
Ghostty permite guardar el contenido de la pantalla o el scrollback a archivos:
# Guardar scrollback completo y abrir con el programa por defecto
keybind = ctrl+shift+s=write_scrollback_file:open
# Guardar solo la pantalla visible
keybind = ctrl+shift+alt+s=write_screen_file:open
# Guardar texto seleccionado
keybind = ctrl+shift+c=write_selection_file:paste
Acciones disponibles para los archivos:
| Accion | Descripcion |
|---|---|
open | Abre el archivo con la app por defecto |
paste | Pega la ruta del archivo en la terminal |
copy | Copia el contenido al clipboard |
Cambiar shell
Para usar un shell diferente al predeterminado:
command = /opt/homebrew/bin/fish
O para ejecutar un comando especifico:
command = /usr/bin/tmux new-session -A -s main
Notificaciones de escritorio
Ghostty soporta notificaciones cuando un comando de larga duracion termina. Las aplicaciones pueden enviar notificaciones usando secuencias de escape OSC 9 o OSC 777.
Configuracion completa de referencia
# === Fuente ===
font-family = JetBrains Mono
font-size = 14
font-feature = liga
font-feature = calt
# === Tema ===
theme = light:Catppuccin Latte,dark:Catppuccin Mocha
# === Cursor ===
cursor-style = bar
cursor-style-blink = false
# === Ventana ===
window-padding-x = 12
window-padding-y = 8
window-padding-balance = true
background-opacity = 0.95
background-blur = true
# === Scroll ===
scrollback-limit = 50000
# === Shell ===
shell-integration = detect
shell-integration-features = cursor,sudo,title
# === Quick terminal ===
keybind = global:ctrl+grave_accent=toggle_quick_terminal
quick-terminal-position = top
quick-terminal-animation-duration = 0.15
quick-terminal-autohide = true
# === Splits estilo tmux ===
keybind = ctrl+a>v=new_split:right
keybind = ctrl+a>s=new_split:down
keybind = ctrl+a>h=goto_split:left
keybind = ctrl+a>l=goto_split:right
keybind = ctrl+a>k=goto_split:top
keybind = ctrl+a>j=goto_split:bottom
keybind = ctrl+a>z=toggle_split_zoom
keybind = ctrl+a>e=equalize_splits
# === Tabs ===
keybind = ctrl+a>c=new_tab
keybind = ctrl+a>n=next_tab
keybind = ctrl+a>p=previous_tab
# === Utilidades ===
keybind = ctrl+shift+p=toggle_command_palette
keybind = ctrl+shift+i=inspector:toggle
Anterior: Shell integration | Volver al indice: Indice