¿Que es Ghostty?
Ghostty es un terminal emulator creado por Mitchell Hashimoto (tal vez lo
conozcan por HashiCorp) cómo proyecto personal. Los puntos más importantes:
- Es nativo: está diseñado para que sea buildeado nativamente para cada plataforma, usando Swift y AppKit para macOS y Zig con GTK4 para Linux. Esto permite que se integre naturalmente con las funcionalidades del propio sistema operativo, incluyendo atajos de teclado, UI y caracteristicas específicas del OS.
- Funcionalidades: ofrece features tanto a nivel de terminal (como el protocolo gráfico Kitty, notificaciones, hyperlinks, etc) cómo a nivel de aplicación: pestañas nativas, split screen y drop-down terminal tipo Quake, etc.
- Rápido: Busca estar al nivel de terminales ultra rápidas cómo Alacritty, para esto se vale de renderizado en la GPU y el lenguaje de programación Zig.
Prerrequisitos
Ghostty al estar programado en Zig necesita que si o si tengas su compilador instalado en tu máquina. En el sitio oficial recomiendan utilizar Nix
cómo ambiente de desarrollo/build oficial, pero la verdad que instalar Zig es muy fácil y, además, ya que está, queda disponible por si tenemos ganas de trastear con el lenguaje más adelante.
Warning "Zig 0.13"
Hay que usar la versión exacta 0.13 de Zig porque de lo contrario va a fallar
la compilación. Intenté con la versión más nueva y falló...
Puedes usar este link para ir la página de descarga de Zig
0.13 o correr este comando:
curl -O 'https://ziglang.org/builds/zig-linux-x86_64-0.14.0-dev.2571+01081cc8e.tar.xz'
Una vez descargado hay que extraer el archivo tar
y poner el binario en un directorio que esté dentro del $PATH
de tu sistema. En mi caso en particular tengo a ~/.local/bin/
en mi $PATH
, entonces voy a usar ese directorio. Si lo quieres tener disponible para todos los usuarios puedes hacer el link simbólico
a /usr/bin/
.
En cuanto al directorio donde muevo el binario es porque tengo un repositorio de código fuente
inspirado en FreeBSD src tree donde tengo scripts para mantener y buildear software desde el código fuente. Es un tema para otro post, pero es importante saber para despejar dudas. En tu caso puedes mover los directorios a donde más te guste.
# Extraer archivos
tar -xvf zig-linux-x86_64-0.14.0-dev.2569+30169d1d2.tar.xz
# [Opcional] Mover los archivos extraídos
mv zig-linux-x86_64-0.14.0-dev.2569+30169d1d2.tar.xz ~/jsr/zig/src
# Hacer un link simbólico del binario
ln -s "$HOME/jsr/zig/src/zig" ~/.local/bin/zig
Info "Links simbólicos"
En esta guía utilizo mucho los links simbólicos porque vamos a tener la
ventaja que una vez que esté todo instalado, para actualizar Ghostty sólo va a
ser cuestión de hacer unpull
del repositorio y volver a compilar para que
todo se actualice al mismo tiempo.
Realmente no necesita muchos más requisitos instalados. En el caso que estés usando otra distro puedes ver más requisitos en la página oficial. Para Debian con sólo correr el siguiente comando es suficiente.
sudo apt install libgtk-4-dev libadwaita-1-dev git
Ahora sólo queda descargar el repo:
git clone https://github.com/ghostty-org/ghostty.git
Compilación
Llegado a este punto debería ser bastante sencillo compilar Ghostty. Sólo hay
que moverse al directorio del código y buildear
# Moverse al directorio con el código
cd ghostty
# Buildear
zig build -Doptimize=ReleaseFast
Según las características de tu máquina (CPU, RAM, etc) puede tardar unos segundos o varios minutos. Una vez finalizado el proceso, vamos a encontrar los binarios en el directorio zig-out/bin/ghostty
. También es necesario saber que hay un directorio
llamado dist
que va a ser importante en el siguiente paso. Por lo pronto la estructura quedaría así:
ghostty
├── dist
│ ├── linux
│ ├── macos
│ └── windows
…
└── zig-out
├── bin
└── share
Instalación
Si todo funcionó correctamente ahora sólo queda la instalación, que es linkear el binario a un directorio dentro del $PATH
de tu sistema y mover los archivos dist/linux/*.desktop
para que puedas ver los íconos y aparezca en el launcher de tu distro.
# Instalar Ghosty
ln -s "$HOME/jsr/ghosty/src/zig-out/bin/ghostty" ~/.local/bin
# Instalar los archivos desktop
ln -s "$HOME/jsr/ghostty/src/dist/linux/ghostty.desktop" ~/.local/share/applications
ln -s "$HOME/jsr/ghostty/src/dist/linux/ghostty_dolphin.desktop" ~/.local/share/applications
Finalmente para configurar la terminal hay que crear el archivo de
configuración, y es tan simple cómo ejecutar lo siguiente
# Crear el directorio si no existe
mkdir -p ~/.config/ghostty/
# Crear el archivo de configuración si no existe
touch ~/.config/ghostty/config
Una vez hecho eso, a configurar Ghostty a tu gusto. Aquí está la
documentación con todas las opciones disponibles.
Demo y configuración
Dejo algunos videos para ver de qué se trata esta nueva terminal y cómo configurarla. Y eso es todo, Happy hacking!
Mi configuración
font-family = JetBrainsMono NF Medium
font-family-italic = JetBrainsMono NF Medium Italic
font-family-bold = JetBrainsMono NF Bold
font-family-bold-italic = JetBrainsMono NF Bold Italic
font-size = 10.2
theme = tokyonight
adjust-cell-height = 6
window-padding-x = 0
window-padding-y = 0
window-decoration = false
adjust-cursor-thickness = 2
adjust-cursor-height = 6
cursor-color = #00C2FF
Top comments (0)