Kitty, el mejor terminal para Linux
Hace apenas un mes, unos doce capítulos, en concreto en el episodio 241, en el que te hablaba de terminal hopping y sobre porque había abandonado Alacritty en favor de rxvt-unicode. Pues, vuelvo de nuevo a las andadas, vuelvo de nuevo al terminal hopping. Y no te creas que fue mucho después de publicar el anterior episodio del podcast, quizá tan solo un par de semanas. En tan poco espacio de tiempo ya le estaba hablando a Angel de uGeek, de esta auténtica maravilla, ya le estaba hablando sobre Kitty el mejor terminal para Linux del mundo mundial.
Antes de seguir, e insistir en esto de Kitty el mejor terminal para Linux del mundo mundial, tengo que aclararte, que esto significa, que en el momento de publicar este episodio del podcast, este emulador de terminal, es el mejor terminal para Linux pero para mi. Esto no quiere decir, nada en absoluto. Es decir, es posible, que dentro de un tiempo, te traiga otro terminal. Y aún con todo y con esas, también puede suceder, que tu pruebes este emulador de terminal, y te acuerdes de mi estampa, porque a ti no te resulta atractivo, o simplemente, porque no es lo que estás buscando.
Kitty, el mejor terminal para Linux
Para los ansias
Aunque kitty se encuentra en los repositorios oficiales de Ubuntu, y seguro que en los de la mayoría de distribuciones, lo mejor es que lo descargues directamente para tener la última versión y poder de esa forma disfrutar del mejor terminal para Linux con todas las características que te voy a contar a lo largo del episodio.
Para hacer esto ejecuta la siguiente instrucción en un terminal,
curl -L https://sw.kovidgoyal.net/kitty/installer.sh | sh /dev/stdin
Esto instala kitty en el directorio ~/.local/kitty.app
. Yo no me he calentado en exceso la cabeza y he hecho un enlace simbólico,
sudo ln -s /home/lorenzo/.local/kitty.app/bin/kitty /usr/bin/kitty
Para que se integre perfectamente con tu escritorio, tienes que ejecutar además las siguientes instrucciones,
cp ~/.local/kitty.app/share/applications/kitty.desktop ~/.local/share/applications
sed -i "s|Icon=kitty|Icon=/home/$USER/.local/kitty.app/share/icons/hicolor/256x256/apps/kitty.png|g" ~/.local/share/applications/kitty.desktop
Una vez completados estos pasos, ya puedes iniciar una sesión con kitty, y empezar a disfrutar de todas las características que te voy a comentar.
Características del mejor terminal para Linux
Kitty es simplemente espectacular, y por eso le he llamado el mejor terminal para Linux. Las características que te ofrece, no creo que las puedas encontrar en otro terminal.
- Para el renderizado utiliza la GPU, lo que descarga el sistema por un lado, y por otro consigue desplazamientos mucho mas suaves. Según los propios desarrolladores de la aplicación hacer scroll es suave como la mantequilla. Además para mejorar esto, utiliza hilos para minimizar la latencia.
- Imágenes. Si lo que estas leyendo, puedes ver imágenes directamente en el terminal. Sin salir del propio terminal. Para esto tienes varias herramientas, empezando por el propio
Kitty
. Pero no solo esta, también puedes utilizar el gestor de archivosranger
, al que le tengo que dedicar algún episodio del podcast. Te recomiendo que utilices el siguientealias
,
alias icat="kitty +kitten icat"
- Puedes ir mas allá de los tradicionales 256 colores y llegar al color verdadero con color 24 bit. Si quieres ver un ejemplo de esto simplemente tienes que ejecutar la siguiente instrucción en un terminal.
curl https://raw.githubusercontent.com/JohnMorales/dotfiles/master/colors/24-bit-color.sh | bash
- ligaduras en fuentes. Esto es una auténtica maravilla, sobre todo si escribes código en un editor como Vim.
- kitty soporta enlaces. Pero no solo es que soporte enlaces, sino que además puedes definir las acciones a realizar con determinado tipo de archivo. Esto, no se porque no he conseguido ponerlo todavía en funcionamiento.
- Permite abrir varios terminales en uno, al igual que haces con
tmux
, pero sin la necesidad de utilizartmux
. Pero no solo esto, sino que además puedes configura diferentes disposiciones. Para abrir un nuevo terminal, simplementeCtrl+Mayusc+Enter
. Y para moverte entre terminalesCtrl+Mayusc+j
yCtrl+Mayusc+k
. - Puedes controlar kitty desde scritps. Esto te permite desde abrir nuevas ventanas, o enviar texto entre ventanas, o incluso utilizar
pipes
para que la salia de un comando que se ejecuta en una ventana vaya a otra ventana. - Si con esto tienes poco, indicarte que es posible extender la funcionalidad de kitty utilizando
Kittens
que no son, ni mas ni menos, que pequeños programas. Entre ellos tienes uno que te permite escribir con facilidad caracteres unicode, como pueden ser los emojis. Para esto, simplemente utilizar el atajo de tecladoCtrl+Mayusc+u
- Si estás acostumbrado a Vimium, ese complemento disponible en Firefox y Chrome que te permite navegar con los dedos, en kitty, tienes una característica similar que te permite también hacer esto, llamada
Hints
. Utiliza la combinación de teclasCtrl+Mayusc+e
, y en el caso de que hayanurls
en el terminal, se mostrará en la línea correspondiente un número, de forma que al pulsarlo abrirá un navegador y te llevará a esa dirección. Pero no solo te permite esto, sino que además puedes copiar directamente un archivo o una ruta, utilizandoCtrl+Mayusc+p f
- Otra interesante herramienta, otro
Kitten
, que trae kitty es la posibilidad de mostrar la diferencia entre dos archivos, que pueden ser tanto archivos de texto como imágenes. - Es casi multiplataforma, y digo casi, porque permite tanto Linux como MacOS, pero no permite Windows.
- Tienes la posibilidad de configurar el inicio de tus sesiones con kitty, indicando que ventanas, pestañas, aplicaciones, etc, que quieres que aparezca cuando se inicie tu sesión.
- Al igual que Vim, kitty pone a tu disposición diferentes portapaples para hacerte la vida del copiar y pegar mucho mas sencilla.
La filosofía de Kitty
kitty está diseñado para usuarios de teclado. Para aquellos que utilizamos el teclado de forma masiva y en detrimento del ratón. Aquellos que preferimos no levantar los dedos del teclado. Y eso que el ratón está perfectamente integrado.
La configuración de kitty, como ya te puedes imaginar es un archivo de texto plano, y como consecuencia de ello, es carne de cañón, para tus dot files.
Como me gusta informarte, indicarte que kitty está implementado en C
para aquellas partes que requieran de un gran rendimiento, y en Python
para aquellas partes que requieran ser hackeadas, sobre todo la parte referente a la interfaz.
Pestañas y ventanas
Como no podía ser de otra forma, kitty soporta tanto pestañas como ventanas. Jerárquicamente las que mandan son las pestañas, de forma que en una pestaña puedes encontrar varias ventanas.
Además, las ventanas se organizan en diferentes disposiciones o layouts. Actualmente existen siete disposiciones básicas, y puedes cambiar entre cada una de esas disposiciones utilizando el atajo de teclado Ctrl+Mayusc+l
,
Stack
. Se muestra una única ventana.Tall
. Una ventana a la izquierda y el resto a la derecha.Fat
. Una ventana en la parte superior y el resto en la parte inferior.Grid
. Las ventanas se organizan en forma de rejilla.Split
. Tu lo organizas como quieres.Horizontal
. Las ventanas se muestran una al lado de la otra.Vertical
. Igual que el anterior, pero, en este caso, una encima de la otra.
Indicarte que es posible redimensionar las ventanas utilizando el atajo de teclado Ctrl+Mayusc+r
.
Algunos atajos de teclado para las pestañas,
Ctrl+Mayusc+t
nueva pestañaCtrl+Mayusc+q
cierra pestañaCtrl+Mayusc+derecha
siguiente pestañaCtrl+Mayusc+izquierda
anterior pestaña
Algunos atajos de teclado para ventanas,
Ctrl+Mayusc+Enter
nueva ventanaCtrl+Mayusc+w
cierra ventanaCtrl+Mayusc+j
siguiente ventanaCtrl+Mayusc+k
anterior ventana
Algunos atajos de teclado interesantes
Además de los atajos de teclado que te he comentado anteriormente para gestionar pestañas y ventanas, como te puedes imaginar, kitty viene cargado, con todo un arsenal de otros atajos de teclado para hacer casi cualquier cosa que quieras imaginar. Así, los imprescindibles son los siguientes,
Ctrl+Mayusc+c
copiar al portapapelesCtrl+Mayusc+v
pegar del portapapelesCtrl+Mayusc+u
insertar un carácter unicodeCtrl+Mayusc+e
hacer clic en unaurl
utilizando el tecladoCtrl+Mayusc+F2
edita la configuración de kittyCtrl+Mayusc+escape
abre unakitty shell
. Aquí puedes hacer todo lo que quieras con todos tus terminales kitty, eso si, necesitas conocer como trabajar con este shell tan particular*. Con este fin, que mejor que recurrir a la ayuda.
Kittens
Esta es una potente herramienta que te permite desde añadir nuevas características a kitty
hasta crear tus propias aplicaciones. Algunos de estos Kittens, ya te los he ido comentado con anterioridad, y otros son nuevos,
icat
muestra imágenes en el terminaldiff
para comparar archivos, incluyendo imágenesunicode input
para introducir caracteres unicodeHints
te permite seleccionar textoRemote file
puedes editar, abrir o descargar un archivo vía SSH. Para que esto te funcione, necesitas tener una de las últimas versiones de kitty. Esto es brutal, simplemente tienes que entrar en una sessión vía ssh y listar los archivos que allí se encuentran con la opciónls --hyperlink=auto
. Cuando hagas clic sobre uno de los archivos te indicará las opciones que tienes.Hyperlinked grep
te permite buscar en el interior de los archivos. Una vez tengas los resultados, solo tienes que hacer clic en cellos utilizandoCtrl+Mayusc
y se abrirá en tu editor preferido.Broadcast
una herramienta fundamental. Esto te permite que lo que escribas se escriba de forma simultánea en varias ventanas. Esto es algo que suelo utilizar con frecuencia entmux
, pero aquí, en kitty me gusta mas como está implementado. Aquí no escribes directamente en una de las ventajas, sino que se crea una nueva ventana para ello. En la configuración de kitty, incluye lo siguiente,
map F1 launch --allow-remote-control kitty +kitten broadcast
Clipboard
te permite acceder al portapapeles desde kitty.
Estos son algunos de los Kitten que vienen implementados por defecto, pero no son los únicos. Además, y por supuesto, tu puedes crear los tuyos propios para mejorar tu flujo de trabajo.
El ratón
Como te decía, aunque kitty está pensado para usuarios con un uso intensivo del teclado, tiene una espectacular integración con el ratón. Integración hasta límites insospechados.
Ctrl+Mayusc+clic
abres un enlace en el navegador- Con doble clic seleccionas una palabra pero si arrastras seleccionas mas
- Con triple clic seleccionas la línea completa, y también puede arrastrar
- Utilizando clic derecho extiendes la selección
Ctrl+alt
te permite seleccionar columnas
Espero que te haya gustado este nuevo episodio del podcast. Si puedes, te agradecería una valoración en iVoox y/o en Apple Podcast.
Imagen de portada de MIKHAIL VASILYEV en Unsplash
La entrada Kitty, el mejor terminal para Linux aparece primero en Atareao.