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
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
init(1)─┬─urxvtd(1234)─┬─urxvtc(5678)
│ ├─urxvtc(5679)
│ └─urxvtc(5680)
Como terminal íntimamente ligada al servidor X, que sirve como reemplazo de
De entre ambos, utilizo
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í:
URxvt*font: xft:inconsolata:size=9:antialias=trueEl uso del color de fondo y de letra se realiza mediante:
URxvt*background: #000000
URxvt*foreground: #f7f7f7
De tal modo que el fondo negro puro contraste con un blanco no demasiado brillante. Por otro lado, la paleta de colores:
!black
URxvt*color0: #101010
URxvt*color8: #404040
!red
URxvt*color1: #e5211d
URxvt*color9: #ad3430
!green
URxvt*color2: #77a026
URxvt*color10: #94db43
!yellow
URxvt*color3: #d2dd30
URxvt*color11: #ddef56
!blue
URxvt*color4: #2e97ba
URxvt*color12: #77c6e5
!magenta
URxvt*color5: #c42b7f
URxvt*color13: #ef6bd5
!cyan
URxvt*color6: #25b1c6
URxvt*color14: #70e0ef
!white
URxvt*color7: #dddddd
URxvt*color15: #ffffff
De tal forma que mantengo una coherencia colorestética de mi agrado. El resultado, es algo como:
URxvt*buffered: trueURxvt*cursorBlink: trueURxvt*underlineColor: yellowURxvt*depth: 32URxvt*borderless: 1
URxvt.internalBorder: 20URxvt*scrollBar: false
URxvt.scrollStyle: rxvtURxvt*loginShell: trueUrxvt*secondaryScroll: trueURxvt*saveLines: 5000URxvt*termName: rxvt-unicodeURxvt.perl-ext-common: default,matcher,clipboard,selection-to-clipboardURxvt.urlLauncher: firefox
URxvt.matcher.button: 1