• GWM

Versión analizada

2.1-120805, publicada en agosto de 2012.

Página oficial

El primer enlace correspondía al sitio original, desaparecido recientemente —The Internet Archive, por suerte, guarda una réplica —. El segundo, perdido sin dejar rastro, al desarrollo posterior realizado por Anders Holst. Y el tercero y único funcional conduce a una variante en Github que mantiene un tal Mehul Sanghvi.

Estado actual

El último trabajo de envergadura que se hizo en GWM fue la versión 2.0, aparecida allá por 2004, que supuso el paso del proyecto a manos de Anders Holst y una revisión en profundidad de su código. Desde entonces se le ha dedicado escasa atención, y pasaron largos años hasta la publicación de la siguiente versión. En Github una tercera persona pretende adaptar el gestor a ediciones más modernas de Guile, mas también ahí su desarrollo parece bastante anémico.

¿Usuarios? En la década de los noventa sí, Debian lo incluía en su repositorio de paquetes y algunos manuales de la época lo mencionaban. Sin embargo actualmente deben quedar muy pocos, porque no he encontrado apenas referencias a GWM en los vastos mundos de Internet.

Características resumidas

Esc. Virtuales Menús Iconos Temas Dockapps At. de teclado Barra de tareas
No No

Descripción


Captura de GWM

Una sesión cualquiera con GWM. Usando el tema «Discrete», notorio porque los menús y rótulos de las ventanas son transparentes. Hay además un paginador y un gestor de iconos.


A estas alturas se trata de una pieza de software bastante olvidada, mas cuenta con una larga historia detrás; de hecho se halla entre los gestores de ventanas más antiguos. El autor original fue Colas Nahaboo, miembro de un equipo de programadores franceses fundado en 1986 y que decidió denominarse «Koala Team»: aún queda alguna discreta huella de ellos en Internet, si bien ha habido que buscar un poco para encontrarla . Nahaboo comenzó a trabajar en GWM a finales de la década de los ochenta, y sus primeras versiones vieron la luz en julio de 1989. En 1990 había progresado lo suficiente para presentar su labor en una conferencia de desarrolladores del X Window System.

No obstante parece que hacia 1995, tras la publicación de GWM 1.8c, el proyecto se estancó. Y así permaneció durante años, hasta que un tal Anders Holst lo retomó en 1999 y lo reescribió casi por completo. De modo que las versiones actuales del gestor —en el momento de redactar esto la última es la 2.1, de 2012— poseen una arquitectura y funcionamiento internos diferentes de las clásicas de Nahaboo. Siguen manteniendo el mismo enfoque, eso sí.

Bien, GWM viene de Generic Window Manager. No sé valorar lo afortunado del nombre —por «genérico» yo entiendo algo sin rasgos propios, la palabra no suena muy excitante—, aunque quizás encaje bien: la pretensión de sus creadores era precisamente escribir un gestor de ventanas sin comportamientos predefinidos, tan maleable que el usuario pudiera convertirlo en cualquier cosa. Así que en teoría ya no haría falta decidir entre Mwm, Twm o FVWM, porque resulta posible recrear cualquiera de los tres en GWM y todo el mundo debería quedar contento. Tal y como escribió Colas Nahaboo en 1990 —la traducción es mía—:

«No existe una interfaz de usuario que sea «la mejor». Parece que hay diferentes interfaces bien adaptadas a diferentes entornos: por ejemplo el mundo de la oficina, CAD [Diseño asistido por computadora], ingeniería de software, etc. Se percibió demasiado laborioso crear un gestor de ventanas apropiado para cada entorno, y [se pensó que] resultaría mucho más flexible ofrecer en su lugar un gestor de ventanas genérico: esto es, una herramienta básica que pueda ser empleada más tarde para implementar distintas interfaces y reglas de manejo de ventanas».

De modo que así se resume GWM. El gestor de ventanas definitivo, que en sí mismo no es nada pero puede replicar cualquier otro.

Existe, por llamarlo así, un «núcleo» programado en C++ que provee la funcionalidad más básica. Y luego una serie de módulos escritos en Guile —un dialecto de Scheme— que GWM lee al arrancar, y que describen los elementos con los que interactuará el usuario: menús, decoración de las ventanas, el escritorio virtual, el gestor de iconos... Y esto significa que una persona con los conocimientos necesarios podría preparar sus propios accesorios —¿qué tal una barra de tareas?— o incluso crear interfaces completamente nuevas; aunque por supuesto no hablamos de una tarea trivial.


Captura de GWM

En mi sesión inaugural GWM me recibe con el diálogo de configuración básica, que permite escoger entre otras cosas el tema visual y el modelo de enfoque.


Los lectores mejor informados estarán pensando: «un momento, ¿no se trata entonces de un proyecto muy parecido a Sawfish?». Pues..., sí, en efecto. Es más, me parece bastante obvio que Sawfish se inspiró en GWM, y viene a ser una implementación más moderna de la misma idea. Ah, y además existe Scwm, el Scheme Constraints Window Manager, que visto superficialmente —cuando escribo esto aún no lo he probado— parecía seguir una dirección similar.

Bien, en la configuración por defecto de GWM los ajustes del usuario se guardan en tres lugares. El primero, el fichero oculto ~/.gwmcustom.scm: los valores que asignéis en él tendrán prioridad sobre todos los demás. Luego tenemos la carpeta ~/gwm, en cuyo interior aguardan gwmrc.scm —detalles generales— y menurc.scm —contenido de los menús, acciones del ratón y posibles atajos de teclado—. Claro, se trata de archivos de código Scheme: pueden abrirse con cualquier editor de texto, mas resultarán poco comprensibles para los no iniciados.

Un detalle que debo mencionar antes de cerrar este apartado: ¡diálogos gráficos de configuración! Sí, ahora mismo paso a hablar de ellos...

Instalación

Poco que comentar aquí, puesto que GWM emplea las herramientas de desarrollo de GNU y por tanto su código puede compilarse siguiendo los pasos usuales —«./configure», «make», y ya como administrador «make install»—. Ahora, parece que requiere Guile 1.8 , y existen problemas de compatibilidad con versiones más recientes; aunque no lo he comprobado.

Primeras impresiones

Esta clase de gestores de ventanas, extensibles mediante lenguajes de programación y personalizables hasta el infinito, no están concebidos precisamente para el usuario inexperto. Lo sé, he usado varios de ellos, y recuerdo especialmente FVWM —que me encanta— y Sawfish. Además, GWM anuncia gozoso su empleo de Guile para la configuración; y Guile es un dialecto de Scheme , el cual a su vez deriva de... Lisp . Y Lisp, para alguien como yo, que no programa y sólo posee unos conocimientos muy rudimentarios de Bash, C y PHP, resulta opaco y esotérico como la jerga de los economistas.


Captura de GWM

Y ahora podemos ver a GWM haciendo una imitación de la interfaz de Mac OS X, y un bonito fondo polar a juego.


Lo que quiero decir es que anticipaba momentos difíciles, y veía a GWM como una bestia arisca que se resistiría muchísimo.

En cambio, en mi sesión inaugural lo primero que encontré fue... ¡Un diálogo de configuración! De color verde brillante, un poco feo; pero a la hora de elegir a grandes rasgos qué quieres, útil y práctico. Presenta varias opciones básicas —modelo de enfoque, uso de módulos como el paginador o el gestor de iconos—, y ya de paso ofrece varios estilos de ventanas para escoger: cuatro de ellos imitan interfaces relativamente populares allá por 2000 —FVWM, Twm, Mac OS X y Wm2—, «Discrete» consiste en una decoración minimalista basada en títulos transparentes, y «Simple» prescinde de todo adorno y dibuja ventanas desnudas.

Me decidí por «Discrete», sólo porque prometía ser exótico. Y... Bueno, funciona, aunque no se trate de un prodigio de ergonomía. En él las etiquetas de los menús y títulos de las ventanas aparecen escritas directamente sobre el fondo del escritorio; y a pesar del borde blanco que Holst añadió a las letras, en determinadas circunstancias resultan difíciles de leer. Curiosamente, un clic del ratón que caiga entre los diminutos espacios vacíos que quedan entre ellas pasa al escritorio, e invoca por tanto el menú correspondiente: cuando lo que uno desea en realidad es mover una ventana, no, no resulta un comportamiento muy práctico.

Y más alegrías aún: ya en una sesión normal de GWM, comprobé alborozado que el cuadro de diálogo descrito arriba cuenta en realidad con muchos amigos, que permiten personalizar la mayoría de detalles de interés para un usuario convencional: colores de la interfaz, modo de colocar las ventanas, y un buen montón más. Vale, existe algún ajuste que requiere cierta familiaridad con la sintaxis de Scheme y las tripas del gestor, pero no es imprescindible meter las manazas en él... Esto está muy bien, vaya.

¿Me libraré entonces de retocar a mano código Lisp? Ya, Scheme en este caso, mas no os hagáis ilusiones porque se trata de un veneno muy similar...

Usando GWM

Pues la respuesta a la pregunta anterior es... No, claro.

Bueno, reconozco que parte del castigo me la he infligido yo mismo, por mi desconocimiento de los cuadros de diálogo de configuración. Éstos forman un árbol complejo dividido en muchas categorías, y sufren por tanto de un problema semejante —aunque no tan pronunciado— al del Panel de Control de Windows: «¿dónde estaba exactamente esta opción tan concreta que necesito tocar ahora?». Confieso que me pierdo y me impaciento rápido en este tipo de situaciones; sí, defecto mío... De modo que en ocasiones tomé el camino alternativo de repasar los módulos escritos en Scheme de GWM, y buscar en ellos las etiquetas adecuadas para redefinirlas después en mis ficheros ~/.gwmcustom.scm o ~/gwm/gwmrc.scm.

Y de todas formas, para personalizar los menús —imagino que la mayoría de la gente querría prepararse al menos uno de aplicaciones a su medida— hace falta lidiar con una dosis ligera de Scheme. Aunque puede hacerse desde el cuadro de diálogo correspondiente, yo recomiendo abrir el fichero ~/gwm/menurc.scm con un buen editor... Porque escribir Scheme sin coloreado de sintaxis es la mierda absoluta: como en todo derivado de Lisp, paréntesis, paréntesis por todos lados, déjate uno por cerrar y sufre.


Captura de GWM

Y más cuadros de configuración, éstos dedicados a detalles muy concretos del gestor. Las «puertas» —doors— funcionan como accesos directos a lugares específicos del escritorio virtual.


No voy a quejarme más. De hecho en estas semanas de experimentos he conseguido familiarizarme un poco con Scheme y los entresijos de GWM, y ya no parecen tan temibles. Me doy por contento puesto que no esperaba conseguir tanto.

Por lo demás cuesta hablar de GWM en sí, porque posee varias caras que presentarle al usuario. ¿Os gusta Twm? Pues aquí tenéis algo parecido. ¿Los colorines de Mac OS X? Vaya, también... No se trata de réplicas perfectas, sin embargo. Por ejemplo, Twm permitía menús desplegables con varios niveles y colores independientes para sus entradas, y eso se halla ausente en la imitación que de él hace GWM —no dudo de que podría implementarse con las líneas de Scheme necesarias, pero está más allá de mis capacidades—; en cambio, GWM cuenta con un escritorio virtual.

El gestor posee una línea de comandos desde la que uno puede darle órdenes, en Scheme, de forma directa. Obviamente no es una característica muy útil para la gente novata. Yo no fui mucho más allá de escribir «(restart)» para reiniciarlo; los gurús barbudos de Unix sin duda le sacaron mucho más partido en la década de los noventa.

¿Más cosas? He pasado un mes con él, y he encontrado algún comportamiento anómalo. Sobre todo el hecho de que arrastrar elementos entre programas basados en GTK2 falla: es un defecto común en algunos gestores de ventanas antiguos, que he visto también en HeliWM, Uwm o Mosquito. En mi caso no supone una gran molestia, y además con las aplicaciones basadas en Qt no ocurre.

Por último, como imaginaréis en un gestor tan viejo —insisto, la mayor parte del trabajo se efectuó a finales de los años noventa y principios de la siguiente—, la compatibilidad con accesorios modernos es mínima. Olvidaos pues de complementarlo con paneles, paginadores, y otros añadidos de terceras partes; aunque tampoco lo encuentro muy necesario. Unos cuantos sí funcionan: la barra de lanzamiento Wbar, por citar uno. Y GWM cumple en cierta medida con las especificaciones del ICCCM, por lo que eso pueda valer.

Opciones de personalización

¡Muchas! El planteamiento es precisamente ése, darle al usuario la posibilidad de crear su propio escritorio con los elementos y estética que desee. Claro que para llevar esto hasta sus últimas consecuencias hay que estar dispuesto a dedicarle horas y saber escribir Scheme.

A los que no sabemos GWM nos trae seis interfaces para elegir: copias de Twm, Wm2, FVWM y Mac OS X, el tema «Discrete» con sus etiquetas transparentes, y ventanas sin decoración. Ah, y también compatibilidad con los temas visuales de las ediciones antiguas de Enlightenment —me refiero a la rama 0.16—.

En detalles más pequeños uno cuenta con mucha libertad: diferentes modelos de enfoque, minimizar ventanas como iconos u ocultarlas completamente, usar paginador y gestor de iconos o no, y un largo etcétera.

La gracia es que los diálogos de configuración hacen todo esto relativamente fácil. Claro que para definir menús y ajustar algún detalle quizás haya que retocar a mano los ficheros ~/.gwmcustom.scm, ~/gwm/gwmrc.scm y ~/gwm/menurc.scm, y eso ya no resulta tan sencillo.

Documentación


Captura de GWM

De nuevo mi escritorio polar... En la terminal de abajo estoy revisando mis menús: admirad la belleza del código Scheme. Y a la izquierda el menú de aplicaciones posa para la posteridad.


Aceptable. En el directorio doc del código fuente tres archivos de texto explican casi todo lo necesario. El más interesante para el usuario recién llegado es gwm-2.0-manual.txt. Queda alguna cuestión por aclarar, sin embargo. Por ejemplo, ¿son posibles los submenús desplegables?

Aciertos

Inconvenientes

Conclusión

Hasta aquí mis aventuras con GWM.

¿Qué ofrece a un posible interesado en 2017? Esto... Yo casi me dejaría de historias e instalaría Sawfish, que parte del mismo planteamiento pero no ha dejado de evolucionar. Se trata también de un gestor de ventanas extensible mediante un lenguaje de programación, y además parecido: Rep es un dialecto de Lisp, Guile es un dialecto de Scheme, y ambos te permiten ser feliz abriendo y cerrando paréntesis sin parar. Y por supuesto Sawfish está vivo, cuenta con una amplia comunidad de usuarios y mucho material disponible.

Ocurre otra cosa. Por ejemplo, ¿a alguien le gusta la imitación de FVWM que se incluye aquí? Perfecto... Mas en ese caso, ¿por qué no probar el FVWM original? Hace más consumiendo menos recursos. ¿La réplica de Twm? Muy usable, y sin embargo existen Vtwm y CTWM que cuentan con más flexibilidad. Se me entiende, ¿no?

Con todo, me ha gustado.

Galería de imágenes

Unas cuantas capturas más que demuestren la versatilidad de GWM, porque las anteriores son ciertamente un tanto insulsas:

Captura de GWM

Otra estética diferente, en homenaje a uno de los escritorios más populares de los años noventa: FVWM, claro.

Captura de GWM

Y ahora un fondo simple, para que los iconos que representan las ventanas minimizadas destaquen.

Captura de GWM

Leyendo la documentación del gestor con Ted . A pesar de sus carencias este programa me gusta, una pena que haya quedado abandonado por el autor.

Captura de GWM

GWM, el mismo tema inspirado en FVWM, y una demo de Amiga en el emulador UAE.

Captura de GWM

Tampoco podía faltar aquí una réplica de Twm, aunque naturalmente diverge del original en algunos detalles. XVmixer y Xmcd saludan desde la cripta.

Captura de GWM

Una sesión gráfica remota —SSH— abierta desde mi portátil, de ahí esa resolución más pequeña. Garden of Coloured Lights es un videojuego bastante más reciente que GWM.

Captura de GWM

Ah, sí, y el tema dedicado a imitar la interfaz propuesta por Wm2. Tiene su mérito y demuestra bien la flexibilidad de GWM: quiero decir, ¡títulos verticales!

Captura de GWM

Una sesión concurrida. Los iconos de aplicaciones minimizadas quedan a la derecha, bajo el reloj. En primer plano una partida a Thieves .

Descargas

No iba a añadir ninguna. Sin embargo, al revisar este texto para publicarlo he visto que la página sobre GWM que mantenía Anders Holst se ha esfumado también, y con ella las versiones originales del gestor. De modo que aquí dejo algo de material para los curiosos:

 

Artículo escrito el 28 de junio de 2017.
Revisado en diciembre de 2018.


[Apta para cualquier navegador]  [Cumple con el estándar HTML]  [Cumple con el estándar CSS]

Podéis copiar libremente cualquier contenido de esta página.
Mandad opiniones, sugerencias o saludos a sovietskayarodina@gmail.com.