Del por qué uso gestor de ventanas (dwm) en lugar de un entorno de escritorio
8 de octubre de 2021 • fjbalon
Unix tiene algo esotérico, algo de carácter iniciático. Hay una verdadera barrera entre el usuario y el verdadero emperador de su sistema: el root. Los sistemas Unix son, en esencia, un arte arcaico. Un sistema operativo que se revela sólo ante los que están dispuestos al sacrificio, a descender a a más bajo nivel, a susurrar a la máquina.
Yo fui iniciado allá por 2011. Y como tal, aprendí y pivotaba de una distribución a otra. Distrohopping lo llaman ahora. Es una regla no escrita en los iniciados. Inicié con Ubuntu 10.10 y en seguida profundicé en Debian; vacilé con algunas distribuciones hijas, pero me quedé en el buen Debian hasta por allá de 2013. Entonces, instalé Archlinux y me convertí en fiel adepto de su grimorio y su estructura, de Pacman y de su procedimiento de instalación. He sido hijo de Archlinux muchos años, hasta que en 2019 abracé Slackware, la más antigua y la más Unix de las distribuciones de Linux.
Pero este texto no versa sobre distribuciones, sino por el uso que el usuario general de sistemas operativos basados en Unix hace gráficamente. La interfaz de texto es la forma humano-máquina perfecta, más precisa, más metódica, más natural. Son hechizos que se hacen en la shell, una puerta del conocimiento cuasi gnóstico de las tripas del sistema, heredada de su propia filosofía y doctrina minimalista y modular. Unix siempre ha rechazado la opulencia y la complejidad, rechaza la vanidad. La interfaz de texto invita a una comprensión mucho más profunda, quien entiende la shell entiende cómo funciona el sistema operativo y entiende cómo funciona Linux.
Sin embargo, a pesar de su superioridad, hoy día es necesario poder visualizar y ejecutar aplicaciones gráficas en el sistema, ordenarlas visualmente, utilizar el ratón, interactuar con algo más que texto, etcétera. Esto no es impedimento para la profundización en el sistema, sino un añadido, una capa más que se superpone a la shell (otra de las muchas razones por las que, esencial y estructuralmente, los sistemas herederos de Unix son superiores a los de Microsoft). Para ello existe lo que se denomina entorno de escritorio.
Un entorno de escritorio es un conjunto, una suite, de aplicaciones gráficas que proveen al usuario de estas funciones. Al igual que el conocido distrohopping, existe algo similar en los iniciados con los entornos gráficos. Estos entornos se hacen lo más amigable posibles, lo más cercano a usuarios inexpertos, se hacen cómodas de usar; ocultan su maquinaria interna. Al igual que haciendo pivotado entre distros, también desde bien temprano conocimiento pivoté por Gnome, Mate, KDE -después Plasma-, XFCE. Usé varios años LXDE. Probé Enlightenment y Cinnamon. Incluso Unity. Sin embargo, a ninguno amé. Reconozco que LXDE, que use más tiempo que el resto, puede ser un gran candidato, por simplicidad y minimalismo. Pero estos entornos están esencialmente limitados a sí mismos.
Unix te exigirá más.
Es entonces que conocerás al gestor de ventanas, o windows manager. El gestor de ventanas es el programa, que por cierto forma parte fundamental de todo entorno gráfico, cuya función es manejar la disposición de las ventanas; determina cómo las ventanas se organizan en el espacio y cómo interactúan entre sí, actúa como motor para el modelo matemático y geométrico del comportamiento de la interfaz gráfica.
Controlar el gestor de ventanas te dota, usuario, de una capacidad matemática y computacional mayor, interfaz humano-máquina superior, puesto que controla la geometría para determinar cómo las ventanas se superponen o se organizan en mosaicos, pilas, etcétera. El código interactúa directamente con las bibliotecas gráficas para dibujar y manipular estas ventanas. El gestor de ventanas habla con el servidor gráfico.
Las razones por las utilizar un gestor de ventanas y no sobrevitaminarlo con entorno de escritorio alguno son variadas, e incluso contradictorias según el usuario. Yo me he quedado con el uso de gestor de ventanas por:
Mis primeras pruebas las realicé sobre i3 y Openbox, pero no fue hasta que probé AwesomeWM que su velocidad, personalización en el lenguaje de programación Lua y complementación para con mi uso diario le hicieran el gestor de ventanas que comenzaría a utilizar, allá por 2014 hasta 2019. Son unos 5 años de uso diario y exclusivo de este gestor de ventanas, por lo que tengo un cariño especial a éste y su mítico fondo.
A principios de 2020 migré, paulatinamente, a dwm (dynamic windows manager) de suckless. No considero éste un cambio de pensamiento o conversión, en absoluto, sino más bien el haber alcanzado una plenitud -más a bajo nivel- de AwesomeWM; una evolución. dwm es la base de AwesomeWM, siendo el último un fork el primero con XCB, EWMH, Lua script, Xft, D-Bus, multihead support..., y al estar a más bajo nivel, he ganado simplificación de código (éste está íntegramente escrito en C, y no cuenta con archivos de configuración en Lua), velocidad (dwm es absurdamente rápido), y una notable mejora de rendimiento y eficiencia.
dwm cuenta con una serie de características que, para mí, en mi experiencia diaria, son fundamentales: