Del por qué uso gestor de ventanas (dwm) en lugar de un entorno de escritorio
8 de octubre de 2021 • fjbalon
Es cierto que Unix y Linux tienen algo esotérico, algo como de carácter iniciático. Hay una verdadera barrera entre el usuario y el verdadero emperador de su sistema, o el root. Estos sistemas son, en esencia, un arte arcaico, casi perdido. Un sistema operativo que, a menudo, parece que no se revela a quien no se ofrece antes como sacrificio. Pero cuando lo consigues, puedes verdaderamente susurrar a la máquina. Ser el ghost in the shell.
Yo me inicié allá por 2011. Y como tal, aprendí y pivoté de una distribución a otra, distrohopping lo llaman ahora. Debe ser 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 -considero- es la forma humano-máquina perfecta: la más precisa, la más metódica y sobre todo, más natural. A pesar de que para la mayoría los vean como hechizos que se hacen en la shell, o como una puerta a un conocimiento cuasi gnóstico; realmente es algo verdaderamente sencillo, minimalista y modular de usar. Es cierto que requiere un poco de esfuerzo, y un cambio de esquemas. Unix siempre ha rechazado la opulencia y la complejidad. Rechaza, de algún modo, la propia 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, diríamos. 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é realmente. Reconozco que LXDE, que usé algo más de tiempo que el resto, puede ser un gran candidato, por simplicidad y minimalismo. Pero estos entornos están esencialmente limitados a sí mismos.
Es entonces que conocí 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 y 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 que 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: