777 - ¿Sigue siendo Kitty el mejor terminal? 5 años después, mi configuración definitiva.
Aprende a optimizar Kitty, el terminal más rápido de Linux, usando configuración modular, atajos tipo Vim y Kitens para eliminar el uso del ratón.
Desde aquel episodio 253 en el que te hablé de Kitty, el mejor terminal de Linux han pasado ya mas de 5 años. Durante este tiempo, he estado haciendo pequeñas actualizaciones a la configuración de Kitty. Sin embargo, en estos últimos días, decidí darle una vuelta completa a esa configuración con el objetivo de exprimir al máximo a Kitty. Y es que Kitty, tiene mucho potencial, y la verdad es que no lo aprovecho todo lo que podría. Por ejemplo, las pestañas y las ventanas, no las utilizo prácticamente. En general, suelo abrir tantas instancias de Kitty como necesito, en lugar de dividir la instancia actual en varias ventanas conforme voy necesitando. Y claro, una razón para esto, es básicamente, tener un profundo conocimiento de los atajos de teclado, o tener esos atajos de teclado personalizados según tus necesidades. Así, que lo que he hecho ha sido ambas cosas. He personalizado los atajos y he mejorado las posibilidades de Kitty, y esto es precisamente de lo que te quiero hablar en este episodio.

¿Sigue siendo Kitty el mejor terminal? 5 años después, mi configuración definitiva.
Sobre la configuración
Anteriormente, tenía toda la configuración en un único archivo, el kitty.conf. Sin embargo, ahora he decidido dividir la configuración en varios archivos, cada uno de ellos con una función concreta. Así, actualmente la configuración la tengo dividida de la siguiente manera,
fonts.conf: En este archivo tengo toda la configuración relacionada con las fuentes, es decir, el tipo de fuente, el tamaño, el interlineado, etc.ui.conf: En este archivo tengo toda la configuración relacionada con la interfaz de usuario, es decir, el tema, los colores, el fondo, etc.performance.conf: En este archivo tengo toda la configuración relacionada con el rendimiento, es decir, la aceleración por hardware, el renderizado, etc.mapping.conf: En este archivo tengo toda la configuración relacionada con los atajos de teclado, es decir, la personalización de los atajos de teclado según mis necesidades.colors-ayu.conf: En este archivo tengo toda la configuración relacionada con los colores, es decir, el tema de colores que utilizo, en este caso, el tema Ayu.
Sobre la fuente
Actualmente la fuente que tengo configurada es Iosevka Term. Es una fuente monoespaciada, con un diseño limpio y moderno, que se adapta perfectamente a las necesidades de un terminal. Además, tiene una gran cantidad de variantes, lo que me permite personalizarla según mis necesidades. Por ejemplo, tengo configurada la variante Iosevka Term Medium para el texto normal, y la variante Iosevka Term Bold para el texto en negrita. Además, tengo configurada la opción bold_is_bright para que los colores ANSI se vean mas brillantes cuando están en negrita.
Sobre la interfaz de usuario
El objetivo en todo caso ha sido buscar una estética minimalista y funcional, y siempre intentando integrarlo con el esquema de colores Ayu que utilizo.
Respecto al minimalismo, he eliminado las barras de título del sistema operativo, con el objetivo de centrarme en el contenido. Por otro lado, he dejado un espacio para evitar que el texto toque los bordes, algo a lo que le tengo tremenda manía. Y añadí un borde de color azul que permite identificar de forma sencilla la ventana activa. Esto último me resulta realmente importante, porque como te decía, uno de los objetivos que me planteaba era utilizar mas las ventanas dentro de Kitty.
El siguiente aspecto a modificar eran las pestañas. Y es que Kitty, además de permitirte dividir el lienzo o layut en varias ventanas, también te permite añadir pestañas. Algo que de nuevo, hasta la fecha, no he utilizado suficientemente, y que también me he propuesto cambiar de aquí en adelante. Con el fin de mejorar la apariencia y funcionalidad de las pestañas he configurado un tipo powerline, esos separadores angulares con información, como el número de pestaña el título y el número de ventanas. Esto te permite cambiar de pestaña fácilmente y conocer en todo momento lo que está sucediendo en las otras pestañas.
Sobre el desempeño
Aquí he tomado tres estrategias para mejorar el rendimiento de Kitty. Por un lado he configurado un par de opciones para que el la terminal se sienta instantánea, de esta manera elimino cualquier rastro de ghosting o retraso entre la pulsación y la aparición del carácter. Y por otro lando he activado la sincronización con le monitor que evita el efecto screen tearing para que los frames se entreguen limpiamente.
Por otro lado, he cambiado el motor de scroll a bat, el sustituto vitaminado de cat, lo que me permite utilizar resaltado de sintaxis y estilos, y por otro lado, he ampliado hasta las 5000 líneas lo que me permite tener un colchón suficientemente generosos para depurar logs, sin sacrificar demasiada RAM.
Otro aspecto, que no es tanto de desempeño es la transparencia. Esto es algo que normalmente me gusta tener, porque le da un aspecto mas moderno. La cuestión es que tengo muy poca transparencia, para no comprometer la legibilidad, y además he activado el control de transparencia al vuelto, para cuando necesito el fondo 100% opaco.
Sobre los atajos de teclado
Aquí probablemente es donde viene la parte importante, y donde debería conseguir exprimir Kitty, al máximo.
Antes que nada, y para que veas lo poco que he tocado los atajos de teclado de Kitty hasta la fecha, decirte, que no sabía que existía una tecla mod como sucede con los tiling window manager. Me refiere a esa tecla o teclas que utilizas para despertar a Kitty. Esta tecla o teclas en combinación con otra son las que activan las acciones. En mi caso tengo configurada Mayúsculas Control, y a partir de aquí se desencadena todo el poder.
Como te comentaba al principio de este episodio, lo cierto es que le he dado una mayor importancia a ventanas y pestañas, y por tanto esto se tenía que ver trasladado precisamente a los atajos de teclado. Así, para el caso de ventanas estoy utilizando un par de atajos para dividir Kitty en ventanas tanto vertical como horizontalmente, y a partir de ahí utilizo la navegación HJKL, la navegación VIM, para desplazarme entre las distintas ventanas. Esto es realmente espectacular.
Por otro lado, para el caso de las pestañas, he modificado el atajo de teclado, para que sea similar al que utilizo en otras aplicación, y utilizo el punto y la coma para desplazarme entre las pestañas, que como expliqué anteriormente, tienen toda la información visible gracias a la configuración del tipo powerline.
Y por último, estoy trabajando en utilizar los kitten hints, que es una forma de realizar acciones sobre lo que hay en el terminal sin necesidad de utilizar el ratón. Por ejemplo, puedo abrir un enlace que aparece en el terminal, o puedo copiar un texto que aparece en el terminal, o puedo pegar un texto que tengo en el portapapeles, etc. Esto es algo que todavía estoy explorando, pero que tiene un potencial enorme.
Más información,