• GwML

Versión analizada

Este gestor de ventanas se incluía en un paquete llamado Efuns. La copia que he usado es en teoría Efuns 0.17.5, publicada en marzo de 2001.

Página oficial

La página oficial desapareció en las tinieblas hace largo tiempo, pero alguien subió una copia del código fuente a Github .

Estado actual

Lleva dos décadas abandonado. El código de Github está fechado en 2011, pero revisando los ficheros puede comprobarse que los cambios más recientes efectuados en él por el autor original se remontan a 2001. Nadie más lo ha tocado. Y por supuesto nadie lo utiliza hoy.

Características resumidas

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

Descripción


Captura de GwML

GwML y Efuns en acción, allá por 1999. A la derecha de la pantalla tres gestores de iconos clasifican las ventanas, y en la esquina de abajo se halla el paginador. (La captura la hizo el autor del proyecto, Fabrice Le Fessant: fuente ).


Cito del manual —en el árbol de código fuente, un documento que puede generarse con LaTeX a partir del fichero doc/gwml.tex—:

«GwML es un gestor de ventanas inspirado en GWM. Mientras que GWM era configurable mediante un dialecto de Lisp (WOOL), GwML puede configurarse en Objective Caml . Así que no necesitas ni aprender un nuevo lenguaje ni un formato especial para archivos de configuración. En vez de eso, puedes configurar tu escritorio simplemente escribiendo ficheros en Objective Caml. Si no conoces Objective Caml aprenderás un lenguaje muy útil y potente».

Sí, se trata de otro de esos gestores de ventanas personalizables y extensibles con algún lenguaje de programación. Hay más de los que cabría esperar en un principio: por ejemplo, Xmonad recurre a Haskell, PycaWM a Python, Subtle funciona con Ruby, StumpWM se basa en Lisp... Casi resulta posible escoger un gestor de ventanas atendiendo al lenguaje en el que a uno le apetezca escribir.

Como ya hemos dicho en este caso hablaríamos de Objective Caml, u Ocaml para los amigos. Inventado en Francia, no es una alternativa que a día de hoy tenga mucha difusión: quizás el programa elaborado con Ocaml más conocido por el público general sea MLDonkey, un cliente de redes P2P. Se trata de una elección muy atípica para un gestor de ventanas, y al autor —Fabrice Le Fessant— le supuso un trabajo considerable; porque tuvo que preparar una biblioteca que hiciera accesibles las funciones básicas del X Window System, antes de ponerse manos a la obra con el gestor en sí.

La idea básica que hay detrás de GwML es la misma que animaba a GWM, el antiguo «Generic Window Manager», que Le Fessant menciona como inspiración. En lugar de ofrecerle al usuario una interfaz concreta, y permitirle quizás algunos ajustes sobre ella —véase como muestra de este enfoque Openbox—, ¡démosle libertad para construirse el escritorio de sus sueños! ¿Cómo será la decoración de las ventanas? ¿Qué controles se incluirán en ella? Existen pocos detalles en GwML que vengan predeterminados y no admitan cambios. Se trata de un gestor tan maleable que, de hecho, podría emplearse para replicar muchos otros.

Muy completo, por lo tanto. Hay menús con las más diversas funciones, escritorios virtuales en sus dos variantes, atajos de teclado completamente personalizables, un paginador, posibilidad de cargar imágenes y emplearlas para construir elementos de la interfaz... Y un montón de cosas más. Las ventanas, por ejemplo, pueden minimizarse como iconos en el escritorio, o enrollarse dejando visible solamente el título: insisto, la premisa aquí es darle opciones al usuario, y que él luego se quede con las que quiera.

Lo único que hace falta para aprovecharlas... Dosis variables de programación en Ocaml, claro.

Hay un fichero de configuración, ~/.gwmlrc, que consiste en una larga serie de variables y listas con los ajustes más básicos. Y luego un directorio oculto, ~/.gwml-, que contiene los archivos de código Ocaml que establecen el funcionamiento del gestor; si se efectúan cambios en ellos son compilados automáticamente al inicio de la siguiente sesión. (Y si este directorio no existe, se recurre a la copia de ellos que se guarda para todo el sistema durante la instalación).

Faltaría comentar que existe cierta interoperabilidad con otros gestores de ventanas. GwML es capaz de leer las configuraciones de Twm y FVWM, y de aprovechar temas visuales de Window Maker o AfterStep, entre otras cosas. Aunque los resultados son como poco incompletos.

Instalación


Captura de GwML

Y éste fue mi escritorio durante mis primeros días con el gestor. El paginador se encuentra semioculto en su rincón; porque sí, puede quitarse de enmedio automáticamente cuando no recibe acciones del usuario.


Instalar software antiguo en un sistema reciente no suele resultar fácil, ni siquiera en Windows. Y GwML, además de antiguo, es exótico.

Sin embargo... ¡Lo conseguí! A fuerza de insistir e ir probando soluciones diferentes, un hombre puede lograr casi cualquier cosa. Casi cualquiera: porque despertar el interés de esa mujer, pues seguramente no. Lo siento, chicos, es la vida.

GwML requiere Ocaml, concretamente la versión 2.04. De verdad, otras no funcionan, y creo que hablo con conocimiento ya que he probado una larga lista de ellas. Ocaml 2.04 se publicó en 1999, por supuesto no figura ya en repositorio alguno, y por lo tanto hay que instalarlo a mano a partir del código fuente. Esto ya es en sí una fiesta.

Una vez con Ocaml 2.04 en el sistema —lo sensato es apartarlo en un directorio exclusivo para él, /opt/ocaml-2.04 o algo así—, el siguiente paso consiste en usarlo para compilar GwML. Bueno, en realidad todo el paquete que preparó Fabrice Le Fessant : el editor Efuns, y la biblioteca que sirve de puente con el X Window System —WXlib—. Tampoco tiene nada de fácil, me topé con varios errores que solventé sin entenderlos, con el probado método de «me parece que tocaré aquí, a ver qué pasa».

No voy a describir el proceso en profundidad, porque no tiene sentido llenar esto de párrafos que no interesarán a nadie. Pero dejaré mis notas de trabajo para esa persona improbable que sienta curiosidad y desee probar suerte con GwML.

Primeras impresiones

«¡He conseguido instalar GwML! ¡Soy invencible, capaz de solucionar cualquier rompecabezas! ¡Nada puede detenerme ya!».

El gestor me recibió con un escritorio azul, y ventanas con una decoración muy simple: títulos con sus nombres y un iconito que debería representar a la aplicación que las ha creado. En la configuración por defecto este iconito es el logotipo de Red Hat, salvo para réplicas de Xterm. Veo nada menos que tres gestores de iconos diferentes, que clasificarán las ventanas abiertas durante la sesión en varias categorías.

Y un paginador, lo que significa que hay escritorios virtuales... Así al primer vistazo parece tratarse de uno, más grande que el área mostrada por el monitor; aunque pronto comprobé que en realidad existen varios. ¿Y exactamente cómo de grande? Aquí está la gracia: ¡tanto como a mí me apetezca! No hay límites definidos, y a medida que me voy desplazando por este escritorio él va creciendo, revelándome nuevo espacio, amplio e infinito como las estepas rusas. ¡Me gusta! Creo que sólo he visto algo así, estos escritorios virtuales de tamaño dinámico, en Olvwm.

Mi sensación de triunfo, sin embargo, no duró demasiado. La configuración por defecto de GwML adolece de algún fallo: el menú de operaciones de ventana se desplegaba correctamente, pero la mayor parte de sus opciones no funcionaba. Sorprendido, decidí abrir el capó y examinar lo que hay dentro, para intentar localizar ese error. Y en este caso «dentro» significa el directorio ~/.gwml-, que contiene la mayor parte del código Ocaml del gestor. Se halla repartido en cerca de una treintena de ficheros —stdconfig.ml, stdgwmlrc.ml, user.ml, etc—, y se espera que el usuario los lea y modifique si lo necesita. Yo fui pasando de uno a otro, ojeándolos sin mucho criterio y cada vez más perplejo. Ocaml me resultaba poco familiar y, además, ¿dónde meter las zarpas? Sin conocer un poquito del código y la organización interna de GwML iba ser imposible tocar nada.


Captura de GwML

Con todos ustedes, ¡el menú principal! Aparece al clicar con el ratón sobre el escritorio.


En resumen: ya el primer día entendí que este gestor de ventanas es muy completo, muy flexible, y también muy complicado.

Usando GwML

Complicado porque, al menos si uno quiere ir más allá de los ajustes más triviales, hay mucho que explorar y toquetear. Así que no necesitas ni aprender un nuevo lenguaje ni un formato especial para archivos de configuración, decía con ingenuidad el autor... Para mí Objective Caml es decididamente un nuevo lenguaje con un formato especial; supongo que GwML iba dirigido a los ya iniciados.

Indagando a ratos por las tardes, me costó una semana averiguar lo suficiente para empezar a hacer los cambios de configuración que más me urgían. Sobre todo me interesaba disponer de menús contextuales que funcionaran en las ventanas... ¡Una semana! Creo que no me había estrujado tanto la cabeza ni me había sentido tan perdido desde mis andanzas con StumpWM. Con el tiempo he ido consiguiendo más cosas: añadir algún posible ajuste, preparar a modo de experimento un par de temas visuales nuevos. Aun así, estoy seguro de que sólo he rascado la superficie. Porque para modificaciones más elaboradas hace falta conocer bien el código del gestor y contar con una base sólida en Ocaml, y ninguno de los dos requisitos se me antoja sencillo.

Por el camino descubrí que Le Fessant intentó facilitar un poco la vida a sus usuarios. Y por eso existe... ¡Un diálogo gráfico de configuración! Sí, el llamado «GwML configurator». Es bastante primitivo pero permite ajustar de forma rápida un puñadito de opciones básicas; y estos cambios pueden grabarse en el archivo ~/.gwmlrc y hacerse por lo tanto permanentes. Por desgracia le falta mucho para resultar realmente útil, en su estado actual se me antoja poco más que una baratija.


Captura de GwML

Aquí ya había hecho algunos cambios a la configuración inicial. Estoy leyendo el manual de GwML, sin entender realmente gran cosa.


Ya he comentado que la configuración por defecto luce un aspecto más bien austero. Se trata de una apariencia engañosa, porque GwML ofrece mucha funcionalidad que como mínimo resulta accesible desde los menús. Al usuario se le permite minimizar ventanas como iconos, o si lo prefiere enrollarlas; ampliarlas a pantalla completa, o sólo en sus dimensiones vertical u horizontal; consultar información sobre ellas —geometría, atributos relativos al X Window System, etc—; seleccionar una decoración diferente... Luego, desde el menú general que aparece al clicar sobre el escritorio, es posible cambiar algunos aspectos del funcionamiento del gestor o manejar los escritorios virtuales, entre otras cosas.

Ya que los menciono: en GwML los escritorios virtuales se denominan «salas» —rooms—, y pueden existir tantos como se requiera. Y cada uno —¡recordad lo explicado anteriormente!— tendrá un tamaño variable durante la sesión, que teóricamente podría multiplicar decenas o incluso cientos de veces el área del monitor. Esto supone muchísimo espacio para distribuir ventanas, más del que nadie ha necesitado nunca.

De todas formas la cara que GwML le presenta al usuario admite una enorme variedad de cambios, no hay por qué quedarse con esa sobria configuración por defecto. ¿Decoración extravagante elaborada con imágenes XPM? ¿Situar por alguna razón caprichosa el título debajo de las ventanas, en lugar de arriba? ¿Controles con las funciones más originales? Todo esto es posible, y más. Porque GwML pertenece a esa familia de gestores maleables hasta el infinito, concebidos para que la gente pase semanas aprendiendo y experimentando con ellos: FVWM, Scwm, Sawfish, GWM...

Como prueba de esta flexibilidad se incluyen temas que replican las interfaces de Twm y FVWM. Se trata de copias más bien rudimentarias, aunque creo que no costaría demasiado perfeccionarlas. Además, GwML es capaz de leer los archivos de configuración de ambos gestores, y aprovechar los menús definidos en ellos: así que en teoría un usuario habitual de Twm podría probar este nuevo entorno sin renunciar a los rasgos esenciales de su escritorio anterior. Y como se dice en las teletiendas, «espere, ¡aún hay más!»: el autor se acordó también de Window Maker y AfterStep —muy populares en aquellos años—, y añadió cierta compatibilidad con ellos.

Como GwML nació inspirado por GWM y ambos comparten un mismo enfoque, resulta inevitable compararlos, aunque ninguno de los dos sea ya relevante. Bien, vistos así por encima brindan posibilidades similares. A mí Ocaml me parece en principio un lenguaje más fácil de aprender que el Scheme en el que se basa GWM; sin embargo GWM resulta más hospitalario para el recién llegado porque cuenta con diálogos gráficos de configuración mucho más completos, que facilitan considerablemente los primeros pasos.

Opciones de personalización

Para los iniciados en la programación en Objective Caml, todas las del mundo. Una persona conservadora podría convertir a GwML en algo semejante a Twm o Vtwm; otra de gustos más excéntricos, imitar las versiones más antiguas de Enlightenment. ¿O por qué no inventarse una interfaz propia, a la medida exacta de nuestras manías?

Sí, todo eso es posible.

Documentación

Con el código fuente se adjunta un manual, el archivo doc/gwml.tex; puede convertirse en un documento PDF con cualquier distribución de LaTeX. Explica bastantes cosas, incluso sobre el funcionamiento interno del gestor, aunque me hubiera gustado que abordase con más detalle las cuestiones más básicas. El texto está escrito para gente con conocimientos previos. Y quizás quedase algo obsoleto, porque parece que se redactó para las primeras versiones de GwML.

Aciertos


Captura de GwML

Cuando aprendí lo suficiente me preparé este original escritorio verde; la decoración de las ventanas también fue un invento mío. En el borde superior de la pantalla, aplicaciones minimizadas como iconos.


Inconvenientes

Conclusión

Estoy contento porque GwML es una de piezas más curiosas de esta página. Y me ha sorprendido gratamente, se trata de un gestor de ventanas mucho más completo y sofisticado de lo que cabría pensar a primera vista. Permite hacer casi de todo.

¿Recomendarlo? A estas alturas de 2020 —¡yupi, coronavirus!— obviamente a nadie, por su obsolescencia y dificultad de instalación: ni siquiera estoy muy seguro de que vaya a funcionar en los sistemas operativos más recientes. Aunque, como curiosidad, ¡Ocaml 2.04 puede compilarse con algo tan moderno como GCC 8.4.0!

Los interesados en esta clase de gestores de «prepárate a mano tu propio escritorio» quizás querrán echar un vistazo a GWM, aunque las elecciones obvias serían Sawfish, FVWM, o tal vez CTWM.

Galería de imágenes

Más imágenes que demuestran las posibilidades de GwML:

Captura de GwML

Puestos a experimentar con el editor gráfico y diseñar mis propios temas para GwML, se me ocurrió esto... Creo que demuestra la flexibilidad del gestor. Ya de paso, es posible asignar decoraciones diferentes a distintas aplicaciones, como se aprecia en las ventanas del reloj y Xrun .

Captura de GwML

Cuando pasamos de una a otra, el nombre de la «sala» o escritorio virtual a la que entramos aparece durante un instante con grandes letras translúcidas.

Captura de GwML

Dzen muestra información meteorológica en el borde superior, y en primer plano destaca el menú de tareas de GwML.

Captura de GwML

GwML es capaz de imitar a otros gestores de ventanas, en este ejemplo a Twm. No lo logra a la perfección pero el resultado se me antoja más que aceptable.

Captura de GwML

El cuadro de diálogo para configurar GwML, en todo su esplendor amarillo. Si bien no sirve de mucho porque sólo toca unas pocas opciones básicas.

Captura de GwML

Y ahora GwML imitando a AfterStep, en un escritorio con una estética muy de los años noventa. También puede verse en acción al editor Efuns.

Descargas

Veo muy, muy improbable que alguien vaya a interesarse por GwML, pero por si acaso dejo un poco de material:

 

Artículo escrito el 28 de julio de 2020.


[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.