Del por qué del gestor de ventanas
April 8, 2026•1,229 words
Este es un fragmento de una publicación que lancé allá por octubre de 2021 en mi viejo blog.
Eschúchame: Unix tienen 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:
- El software empleado es mínimo, tanto a nivel técnico como a nivel estético. Haciendo que sea fácil su modificación y que funcione de la misma forma en máquinas de bajos recursos hardware. Además, ocupan muy poco en memoria.
- Como programador, la capacidad de tener control absoluto sobre su software, en este caso sobre la matemática y la geometría de sus ventanas, y la interfaz humano-máquina, es absoluta.
- Al carecer de añadidos estéticos como animaciones, la velocidad de uso es exponencial a la experiencia adquirida. El ahorro de tiempo y la mejora en productividad es un valor añadido.
- Los distintos modos de pantalla (mosaico, flotante...) permiten una personalización y adaptación de uso como ningún otro entorno.
- La primacía del teclado y la independencia del ratón.
- Y por supuesto, el hecho de pertenecer a ese selecto grupo de hackers del mosaico, esa comunidad descentralizada que a los ojos de los profanos son de intelecto superior. La secta de Linux.
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:
- Mantiene prácticamente la totalidad de la superficie de pantalla utilizable.
- Se inicia instantáneamente, incluso en máquinas de baja potencia.
- Es independiente. Puede ser compilado y ejecutado en cualquier heredero de Unix, sea GNU/Linux, sea BSD, sea Solaris.
- Implementa un reflejo, efigie perfecta de mis propios patrones de uso:
- No quiero redimensionar o mover una ventana manualmente de primeras, a no ser que quiera hacerlo.
- Normalmente tengo al menos dos ventanas abiertas, una al lado de la otra; una maestra y otra esclava.
- A veces quiero mutar una ventana a pantalla completa rápidamente, y volver al estado anterior con la misma velocidad.
- Siempre quiero usar todo el espacio de pantalla disponible para mostrar contenido.
- Me gusta usar varios escritorios para trabajar. A menudo, también varios monitores.
- Quiero atajos de teclado para todo. La primacía del teclado sobre el ratón es fundamental. El ratón queda relegado a tareas indispensables, como el uso del navegador o de otras aplicaciones concretas.
- Intuitivamente, dwm coloca las ventanas exactamente donde yo las hubiera colocado.
- De hecho, dwm hace que sea tan fácil mover ventanas que casi nunca echo de menos tener varios monitores. En mi casa o trabajo los tengo, pero cuando viajo no.
- Me declaro adepto de la filosofía de suckless, así como su modelo de implementación de parches y minimalismo.