Capitulo 7: Tips Avanzados

Por: SiempreListo
ghosttyterminalavanzadoquick-terminalgpurendimiento

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
PosicionComportamiento
topDesliza desde arriba (estilo Quake)
bottomAparece desde abajo
leftAparece desde la izquierda
rightAparece desde la derecha
centerVentana 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:

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:

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:

AccionDescripcion
openAbre el archivo con la app por defecto
pastePega la ruta del archivo en la terminal
copyCopia 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