Entrada
Preview Image

Emulador de terminal moderno para desarrolladores

Ghostty: Emulador de terminal moderno para desarrolladores

Ghostty 👻 es un emulador de terminal moderno enfocado en ser rápido, simple y altamente cofigurable, pensado especialmente para desarrolladores.

Ghostty como aplicación nativa

En palabras de su creador, la visión de “nativo” en Ghostty es que el terminal esté diseñado para verse, sentirse y comportarse exactamente como una aplicación propia del entorno de escritorio donde se ejecuta.

Es importante destacar que Ghostty es una aplicación verdaderamente nativa tanto en macOS como en Linux.

  • En macOS, la interfaz gráfica está desarrollada en Swift, utilizando AppKit y SwiftUI, lo que permite una integración directa con su ecosistema.
  • En Linux, la interfaz está escrita en Zig y utiliza GTK4, manteniendo coherencia con los entornos de escritorio modernos.

Características de Ghostty

  • Alto rendimiento: renderizado por GPU que permite una interacción fluida incluso con grandes volúmenes de texto.
  • Configuración sencilla: archivos de configuración simples y fáciles de mantener.
  • Código open source: su desarrollo es de acceso público en su repositorio oficial, lo que permite auditar el código y contribuir al proyecto.

Instalación

Ghostty se encuentra disponible principalmente para macOS y Linux aunque está previsto para Windows en un futuro próximo.

Homebrew

Ghostty está disponible para instalar con Homebrew:

1
brew install --cask ghostty

Snap

Ghostty está disponible como paquete Snap:

1
snap install ghostty --classic

Un paquete Snap es un formato de distribución de software desarrollado por Canonical que permite instalar aplicaciones junto con todas sus dependencias en un solo paquete, aislado del sistema. Se utiliza principalmente en distribuciones basadas en Ubuntu.

El proceso es rápido, al finalizar la instalación, debes buscarlo para abrir el emulador por primera vez.

Buscar Ghostty

Configuración

Ghostty se configura mediante un simple archivo de texto. A continuación, se muestra un ejemplo de opciones para un archivo config.

1
2
3
4
5
6
title = "Hello, @mcherrera"
theme = TokyoNight
window-height = 12
window-width = 40
background-opacity = 0.9
font-family = "Victor Mono"

Al guardar los cambios, abres Ghostty nuevamente y puedes observar el resultado.

Comando nerdfetch

Ubicación del archivo

El archivo de configuración, se carga desde estas ubicaciones:

  • La ruta para el archivo es la siguiente:

    • $XDG_CONFIG_HOME/ghostty/config
    • $HOME/.config/ghostty/config (si $XDG_CONFIG_HOME no está definida)
  • La ruta en macOS para el archivo de configuración es la siguiente:

    • $HOME/Library/Application\ Support/com.mitchellh.ghostty/config.
    • Al igual que en Linux, admite cambiar la ubicación usando $XDG_CONFIG_HOME.

Dividir configuración

Ghostty permite dividir la configuración en varios archivos, lo que facilita mantener los ajustes organizados según el tema o el contexto. Para ello se utiliza la clave config-file dentro del archivo de configuración principal. Esta opción indica la ruta de otro archivo de configuración que debe cargarse y puede declararse más de una vez si es necesario. Por ejemplo:

1
2
3
config-file=ruta/relativa/sub/config
config-file=/ruta/absoluta/config
config-file=?opcional/config
  • Si la ruta es relativa, será relativa al archivo de configuración que contiene la clave config-file.
  • Si el archivo no existe, ya sea que se haya indicado una ruta absoluta o relativa, se mostrará un mensaje de error.
  • Si el valor tiene el prefijo ?, el archivo es opcional y, si no existe, se ignora el error.

En mi caso, tengo la configuración estructurada de la siguiente manera:

1
2
# ?theme/(light-config | dark-config)
config-file = ?theme/dark-config

Con esta configuración, Ghostty carga el archivo correspondiente al tema oscuro desde la carpeta theme, lo que permite cambiar entre configuraciones sin modificar el archivo principal.

Recargar la configuración

Cuando realizas cambios en los archivos de configuración, no es necesario reiniciar el terminal para aplicarlos. Ghostty permite recargar la configuración en tiempo de ejecución mediante un atajo de teclado.

De forma predeterminada, las combinaciones son:

  • Ctrl + Shift + , en Linux
  • Cmd + Shift + , en macOS

Al utilizarlas, Ghostty vuelve a leer los archivos de configuración y aplica los cambios inmediatamente.

Estas combinaciones son solo los atajos por defecto pero puedes definir uno personalizado utilizando la acción reload_config. Por ejemplo:

1
keybind = ctrl+alt+r=reload_config

Además del atajo de teclado, la configuración también puede recargarse desde el menú principal de opciones en la barra superior de la interfaz.

Personalización del terminal

Ghostty incluye de forma nativa una amplia colección de temas, por lo que no es necesario crearlos desde cero para cambiar la apariencia del terminal.

Estos temas abarcan variantes claras, oscuras y estilos inspirados en paletas populares.

Previsualizar temas

Una de las ventajas es que puedes previsualizar los temas directamente sin necesidad de ir probando uno a uno, usa el siguiente comando:

1
ghostty +list-themes

Previsualizar temas

De esta forma puedes ver cómo se verá el terminal sin cambiar aún tu configuración principal. Una vez elegido, puedes establecerlo en tu archivo de configuración indicando el nombre del tema correspondiente. Por ejemplo:

1
theme = "Nombre del tema"

Luego, al recargar la configuración, el cambio se aplicará de inmediato.

Previsualizar fuentes

Ghostty funciona con cualquier fuente instalada en el sistema, por lo que puedes utilizar tipografías monoespaciadas orientadas a programación, incluidas aquellas con ligaduras.

Al igual que con los temas, puedes listar las fuentes detectadas por Ghostty mediante un comando:

1
ghostty +list-fonts

Este comando muestra las fuentes disponibles para que puedas verificar el nombre exacto que debes usar en la configuración.

Previsualizar fuentes

Una vez elegida, puedes definirla en el archivo de configuración indicando su nombre. Por ejemplo:

1
font-family = "Nombre de la Fuente"

Después de guardar los cambios, basta con recargar la configuración para aplicar la nueva tipografía sin reiniciar el terminal.

Paleta de comandos

Ghostty incluye una paleta de comandos integrada que permite ejecutar acciones y acceder a funciones del terminal de forma rápida sin necesidad de recordar atajos específicos.

La paleta se puede abrir mediante el atajo predeterminado:

  • Ctrl + Shift + P en Linux
  • Cmd + Shift + P en macOS

Al activarla, aparece un cuadro de búsqueda donde puedes escribir el nombre de la acción que deseas ejecutar.

Abriendo paleta de comandos

La paleta de comandos facilita el acceso a distintas funcionalidades, por ejemplo:

  • Ejecutar acciones internas del terminal
  • Cambiar configuraciones rápidamente
  • Acceder a opciones sin navegar por menús
  • Disparar comandos disponibles según el contexto

Este enfoque permite trabajar de forma más ágil, especialmente cuando no recuerdas un atajo o quieres explorar las capacidades disponibles.

Esto sería todo sobre Ghostty por ahora. A medida que el proyecto siga evolucionando, seguramente aparecerán nuevas funcionalidades y ajustes que valdrá la pena explorar en futuras actualizaciones.

Ghostty 👻👻👻👻

Esta entrada está licenciada bajo CC BY 4.0 por el autor.