Del emulador de terminal urxvt

20 de julio de 2024 • fjbalon

El emulador de terminal es el programa que proporciona una interfaz de texto que imita el comportamiento de una terminal hardware-física, de tal forma que el usuario interactúe con el sistema operativo mediante la ejecución de comandos. Generalmente, los entornos de escritorio ofrecen su propia versión, vitaminada y adaptada al funcionamiento general del ecosistema gráfico. Así, el vulgo usará las clásicas como la terminal de Gnome o la de KDE.

Sin embargo, existen terminales de uso menos frecuente; al menos en un uso más profundo; tanto en recursos del sistema, personalización, eficiencia, velocidad... Que es necesario conocer.

En mi caso concreto, utilizo regularmente xterm, urxvt y st, siendo el segundo el que nos ocupa en éste artículo.

urxvt (ó rxvt-unicode); o en adelante urxvtd como me gusta denominarla, es un emulador de terminal customizable bifurcado de rxvt, añadiendo soporte para extensiones perl. Es uno de los emuladores más conocidos del cosmos Unix, especialmente por en Unixporn por su alta configurabilidad estética. Además, es un emulador muy ligero y muy rápido.

Sin embargo, la característica que me hizo decantarme por ella hace ya varios años, es sin lugar a dudas su capacidad de terminal demonizable.

Esto significa que puede correr en modo demonio (daemon), lo que permite compartir una única instancia de terminal entre múltiples ventanas, reduciendo el uso de memoria y mejorando el rendimiento. En palabras más técnicas, ejecutaríamos una instancia o demonio en segundo plano, que serviría como servidor de urxvtd, al que los clientes de urxvtc se conectan como hijos, en lugar de crear cada uno un nuevo proceso completo de urxvt.

Ejecutarlo es tan sencillo como usar el comando:

urxvtd

Y posteriormente, por cada terminal a ejecutar:

urxvtc

Lo que hago para automatizar esto, es añadir al .xinitrc la ejecución de urxvtd &, y en el gestor de ventanas indico que la ejecución de terminal se hace mediante urxvtc. Tan simple como esto.

init(1)─┬─urxvtd(1234)─┬─urxvtc(5678)
	│              ├─urxvtc(5679)
	│              └─urxvtc(5680)

Como terminal íntimamente ligada al servidor X, que sirve como reemplazo de xterm, su configuración estética se realiza mediante los ficheros de configuración utilizados por X Windows System para definir los recursos y ajustes de las aplicaciones X, es decir, ~/.Xresources y ~/.Xdefaults.

De entre ambos, utilizo .Xresources por su flexibilidad, ya que permite actualizar configuraciones sobre la marcha sin necesidad de actualizar el servidor; en comparación con .Xdefault que es estático. El primero, se carga específicamente mediante el comando xrdb, permitiendo una carga condicional y específica de los recursos. Personalmente añado al .xinitrc:

xrdb -merge ~/.Xresources

Para cargar la configuración. Mientras que si emplease el segundo, se carga automáticamente al iniciar la aplicación X, siendo que no se aplica para las aplicaciones en ejecución; y puede requerir un reinicio de todo el servidor X para que los cambios surtan efecto.

He aquí ejemplos de parametrización estética y funcional empleadas por mí: