kitty + zellij: Superpoderes para tu terminal
Este artículo acompaña el siguiente video.
¿Qué es un multiplexer de terminal?
Los multiplexers de terminal permiten ejecutar múltiples shells o sesiones en una terminal. Esto puede ser muy útil para trabajar en ambientes de desarrollo donde se tienen que ejecutar diversos procesos o comandos.
El multiplexer más popular es tmux
. Sin embargo, zellij
ha ganado mucha popularidad y es una alternativa muy buena que require muy poca configuración.
¿Cómo funciona Zellij?
zellij
es un multiplexer que ya viene configurado y puede ser utilizado de manera automática, basta con instalarlo y ejecutar el comando zellij
. Con zellij podemos manejar paneles, tabs y sesiones en nuestra terminal para hacer más eficiente nuestro flujo de trabajo.
Kitty como terminal en Linux
Este paso es opcional y no es necesario utilizar kitty para que zellij funcione bien. En el video utilizo Arch Linux (btw), pero la parte relevante a zellij funciona en casi cualquier combinación de sistema operativo (Linux, macOS o Windows con WSL) y terminal. Personalmente lo he probado en Alacritty (macOS y Linux), iTerm, y kitty (macOS y Linux), y me ha funcionado bien en todas.
En el caso de Linux, kitty se ha convertido en mi terminal favorita por la simplicidad de la interfaz gráfica y la facilidad para configurarlo. En el video instalo kitty utilizando Konsole, la terminal por default de KDE Plasma.
Instalar y configurar kitty
Para instalar kitty puedes utilizar tu manejador de paquetes favorito. En mi caso estoy utilizando yay
.
Ejecuta el comando:
yay -S kitty
Una vez instalado podemos ejecutar kitty y comenzar a configurarla.
Para cambiar nuestro tema o esquema de colores basta con ejecutar kitten theme
y seleccionar uno.
El archivo de configuración de kitty se encuentra en .config/kitty/kitty.conf
. En la documentación podemos encontrar todas las configuraciones disponibles.
En el video explico las siguientes:
# kitty.conf
window_margin_width 4
window_margin_height 4
font_size 16.0
Instalar zellij
Para instalar zellij hay que ejecutar el siguiente comando:
yay -S zellij
Una vez instalado tendremos el comando zellij
disponible en nuestro ambiente. Al ejecutarlo iniciamos una nueva sesión de zellij.
Por default tendremos un layout que ya contiene todas las configuraciones necesarias, incluída una barra de estatus en la cual podemos ver los comandos disponibles para interactuar con zellij.
La barra inferior nos muestra los "modos" disponibles en zellij. Estos son similares a los modos de vim, pero se ejecutan con la combinación de CTRL + alguna de las sugerencias que se muestran.
Los modos que veremos aquí son: Paneles, Tabs y Sesiones.
Paneles
Para crear un nuevo panel puedes utilizar ALT + n
. O entrar al modo de paneles con CTRL + p
y luego crear un panel vertical con n
o uno horizontal con d
.
Para navegar entre los paneles disponibles puedes utilizar ALT + <flechas/vim motions>
.
Para cerrar un panel puedes utilizar CTRL + n + x
.
Tabs
Crea un nuevo tab utilizando CTRL + t + n
.
Para renombrarlo puedes utilizar CTRL + t + r
y darle un nombre.
Para navegar entre tabs puedes hacerlo en el modo de tabs con CTRL + t + <flechas/vim motions>
o utilizando ALT + <flechas/vim motions>
desde el modo normal.
Puedes cerrar un tab existente con CTRL + t + x
.
Sesiones
Las sesiones nos permiten entrar y salir de una sesión de zellij. Cada vez que ejecutamos el comando zellij, se crea una nueva sesión con un nombre aleatorio.
Para ver el manejador de sesiones podemos utilizar CTRL + o + w
.
Para desconectarnos de una sesión pero mantenerla viva podemos hacer un dettach con CTRL + d
.
Para cerrar una sesión y parar todos los procesos existentes podemos usar el comando CTRL + q
.
Para ver las seiones disponibles podemos ejecutar zellij list-sessions
y conectarnos a una con zellij attach <nombre>
.
Layouts
Los layouts son una de las mejores maneras de aprovechar el poder de zellij y crear una configuración de tabs y paneles que podemos ejecutar con un solo comando. Esta configuración puede incluir directorios y comandos predefinidos que pueden acelerar nuestro proceso de preparar nuestro ambiente de desarrollo.
Para ejecutar un layout podemos utilizar el comando:
zellij --layout nombre-del-layout.kdl
En el video configuramos un layout paso a paso para llegar al siguiente resultado:
layout {
default_tab_template {
pane size=1 borderless=true {
plugin location="zellij:compact-bar"
}
children
}
tab name="system" {
pane {
command "btop"
}
}
tab name="dev" {
pane split_direction="vertical" {
pane split_direction="horizontal" {
pane {
cwd "~/dev/app"
}
pane {
cwd "~/dev/app"
}
}
pane {
cwd "~/dev/app"
command "zsh"
args "-c" "source ~/.zshrc && yarn dev"
start_suspended true
}
}
}
}
Espero que este video y artículo hayan sido útiles y puedas aprovechar zellij para mejorar tu flujo de trabajo. ¡Gracias por leer o ver el video! ✌️