253 - Kitty, el mejor terminal para Linux

PodcastPodcast

253 - Kitty, el mejor terminal para Linux

kitty es sin lugar a dudas el mejor terminal para Linux, y te cuento como sacarle el máximo partido y ser mas productivo con este terminal

1:25
-3:15

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 del mundo mundial

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 archivos ranger, al que le tengo que dedicar algún episodio del podcast. Te recomiendo que utilices el siguiente alias,
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 utilizar tmux. Pero no solo esto, sino que además puedes configura diferentes disposiciones. Para abrir un nuevo terminal, simplemente Ctrl+Mayusc+Enter. Y para moverte entre terminales Ctrl+Mayusc+j y Ctrl+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 teclado Ctrl+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 teclas Ctrl+Mayusc+e, y en el caso de que hayan urls 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, utilizando Ctrl+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ña
  • Ctrl+Mayusc+q cierra pestaña
  • Ctrl+Mayusc+derecha siguiente pestaña
  • Ctrl+Mayusc+izquierda anterior pestaña

Algunos atajos de teclado para ventanas,

  • Ctrl+Mayusc+Enter nueva ventana
  • Ctrl+Mayusc+w cierra ventana
  • Ctrl+Mayusc+j siguiente ventana
  • Ctrl+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 portapapeles
  • Ctrl+Mayusc+v pegar del portapapeles
  • Ctrl+Mayusc+u insertar un carácter unicode
  • Ctrl+Mayusc+e hacer clic en una url utilizando el teclado
  • Ctrl+Mayusc+F2 edita la configuración de kitty
  • Ctrl+Mayusc+escape abre una kitty 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 terminal
  • diff para comparar archivos, incluyendo imágenes
  • unicode input para introducir caracteres unicode
  • Hints te permite seleccionar texto
  • Remote 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ón ls --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 utilizando Ctrl+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 en tmux, 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *