0.3, publicada el 7 de noviembre de 2007.
https://sourceforge.net/projects/monkeywm/
Abandonado largo tiempo ha. Despertó cierto interés entre los aficionados a la programación en Pascal que a su vez fueran también usuarios de Linux, como cabe suponer un público muy pequeño; en ámbitos más amplios casi nadie tuvo noticias de él. Su corta época de desarrollo tampoco fomentó su difusión.
Esc. Virtuales | Menús | Iconos | Temas | Dockapps | At. de teclado | Barra de tareas |
---|---|---|---|---|---|---|
Sí | Sí | Sí 1 | Sí | No | Parcial 2 | Sí |
1 Sirven para ejecutar programas desde el escritorio. No representan ventanas minimizadas.
2 Hay combinaciones de teclas para saltar de una ventana a otra, o cerrar la que esté enfocada. Nada más. No es posible definir otros.
Mi sesión inicial con MonkeyWM. Hay varias terminales abiertas, y en un acto de masoquismo estoy compilando el navegador Firefox en una de ellas. La barra de tareas se halla en el borde superior.
MonkeyWM es un gestor de pila —ya sabéis, las ventanas flotantes de siempre— escrito en 2007 por un tal Chris Tillberg. Su rasgo más original es probablemente el estar escrito en Pascal , un lenguaje al que no se recurre demasiado para programar aplicaciones gráficas en Unix.
El autor presentaba el proyecto de forma muy escueta en el archivo readme que acompaña al código fuente; ahí se reconoce inspirado por Windowlab y SWM. Y sí, a grandes rasgos en MonkeyWM pueden apreciarse características de estos dos precursores. Hay un panel con una barra de tareas en el borde superior del escritorio, como en Windowlab —aunque aquí ese panel no integra ningún menú—; y su enfoque general sí recuerda un tanto a SWM.
MonkeyWM parece un gestor minimalista pero no le faltaba cierta ambición, y ofrece más funcionalidad de la que cabría esperar en un principio. Cuenta, por ejemplo, con dos modalidades de iconos en el escritorio para lanzar programas: los convencionales que el usuario puede ordenar a su gusto por la pantalla, y otros que aparecen agrupados en una franja horizontal en el borde inferior —el archivo de configuración se refiere a ellos como LaunchBar
—. Para este menester existe también un menú, que se invoca al clicar con el ratón en el fondo del escritorio. Estas características son sin embargo opcionales.
Ah, ¡y temas para la decoración de las ventanas! Basados en imágenes XPM. Con el gestor sólo se suministra uno, de todas formas, llamado apropiadamente «default», y que por sus colores recuerda un poquito a Mac OS X. Mas puede prescindirse asimismo de estos temas, y en tal caso MonkeyWM dibujará una decoración más básica con colores planos.
Y antes de que se me olvide mencionaré la presencia de escritorios virtuales, en su modalidad de espacios de trabajo independientes. Lo que no hay es un paginador que facilite su empleo.
La configuración del gestor se especifica en varios archivos de fácil sintaxis, dentro del directorio oculto ~/.monkeywm. De ellos el más importante es monkeywm.ini, porque los demás —menu, launchbar, etc— atañen a facetas de las que el usuario puede prescindir. Los temas visuales se guardarían en un subdirectorio llamado themes; de modo que existirían rutas como ~/.monkeywm/themes/default y similares.
Para compilar el código fuente del gestor y lograr una copia usable es necesario disponer de Free Pascal ; debería resultar fácil obtenerlo porque figurará en muchos repositorios de paquetes de Linux o BSD. Ahora, he de avisar de que MonkeyWM es antiguo y existen incompatibilidades con las ediciones modernas del compilador. Yo utilicé Free Pascal 2.6.4, y con ella sólo tuve que cambiar algunos valores de «
True
» a «1
» y de «False
» a «0
» —los errores informan con exactitud de las líneas a retocar—; ya no sé si con versiones más recientes estos problemas habrán ido a más.
También hace falta la biblioteca Imlib2. Si alguien desea usar los temas gráficos, además, debe asegurarse de recurrir a una versión de ella más o menos contemporánea del gestor. Yo probé con éxito Imlib2 1.2.2, publicada en marzo de 2006.
El proceso en sí es sencillo y rápido. Desde el directorio principal del código fuente:
$cd src
$ppc386 monkeywm.lpr
[...]
Y, terminada la compilación, para instalar el ejecutable resultante en el sistema:
$su
Password: #install -o root -m 755 monkeywm /usr/local/bin
El autor, por lo demás, advierte: he intentado correr MonkeyWM en FreeBSD 6.2 pero no funciona por mucho tiempo
. Así que supongo que este gestor se limita a Linux, e incluso tengo mis dudas respecto a las distribuciones actuales.
MonkeyWM, en una sesión que poco a poco se va llenando de cosas. Bueno, Xtetris tiene su interés como reliquia procedente de 1989 para mostrar a los usuarios actuales, pero reconozco que no me parece muy estimulante.
Tras esa pequeña pelea para compilar una copia funcional del gestor, lo puse por fin en marcha, y... Quedé gratamente sorprendido. Vale que mis expectativas eran mínimas; y el número de versión del programa, 0.3, sugiere en principio algo como «acabo de empezar a trabajar en esto, no hay mucho que ver aún, y cuando lo ejecutes seguramente se autodestruirá en cinco segundos». Me encontré, no obstante, con una interfaz relativamente amigable, con escritorios virtuales y un útil panel que incluye barra de tareas y un reloj. El archivo readme del código fuente insinuaba además otras características: ¡menús, iconos en el escritorio! ¡Temas! No está mal, vaya.
Otro detalle a mencionar es que MonkeyWM viene con unos ajustes por defecto perfectamente usables. Crea de forma automática su directorio de configuración —~/.monkeywm— si éste no existe: seguir a partir de ahí y establecer preferencias propias es ya cosa del usuario. ¡Aunque ni siquiera resulta realmente imprescindible! Y esto me gusta, por el contraste con tantas aplicaciones que exigen que las configures antes de dignarse a funcionar.
Oh, el modelo de enfoque es el mismo que en Windows: clicar una ventana para activarla y traerla a primer plano. Puedo vivir así, aunque preferiría que el foco siguiera al puntero del ratón.
En principio el gestor no utiliza temas visuales, sino que recurre a su estética más básica. Colores sólidos, sencillos pero explícitos dibujos en negro para los controles de las ventanas. Bueno, en realidad no hace falta nada más, y el tono de azul con el que se resaltan las ventanas enfocadas me resulta más bien agradable.
Esperad un momento: ¿cómo cambiar el tamaño de las ventanas? No hay un método obvio. Quizás debería acudir a la documentación... Sólo que el autor no llegó a escribir ninguna, más allá de ese escuálido archivo readme. ¡Mierda! En MonkeyWM, como solían decir los apologistas del software libre, la documentación es el propio código fuente. Veamos qué tal me va, promete ser un experimento interesante...
Primero las buenas noticias: averigüé muchas cosas leyendo el código. Yo desde luego no soy programador, y nunca antes me había asomado a archivos escritos en Pascal. Para mi sorpresa este lenguaje se me antojó muy comprensible. Aprendí rápidamente cómo configurar iconos para el escritorio en sus dos variantes, o qué funciones poseen exactamente los botones del ratón —Tillberg no lo explica—. Desde luego mis experiencias con otros gestores y lenguajes de programación —pongamos Ocaml y GwML, o Lisp y StumpWM— han sido menos llevaderas; de hecho espero aprender antes a descifrar la escritura cuneiforme sumeria que un programa en Lisp.
Y éste es MonkeyWM con los temas gráficos activados; en concreto «default», que es el único que se incluye en la instalación por defecto. Nótense los iconos para iniciar aplicaciones en el borde inferior de la pantalla: a esto el gestor lo llama la «barra de lanzamiento».
Entonces, ¿cómo cambiar el tamaño de las ventanas? Pues por lo visto el autor quiso que se arrastraran sus bordes con el botón derecho del ratón. Claro, el problema radica en que estos bordes tienen sólo un píxel de grosor; así que cuesta verlos, y señalarlos con el puntero del ratón supone ya toda una proeza. Se me antoja incomprensible que esto pueda parecerle a alguien una buena idea. Y cuando me hice el ánimo fue una de las primeras cosas que cambié. Aprovechando que el código fuente del gestor resulta bastante accesible, implementé un método más práctico para redimensionar ventanas: arrastrar desde sus títulos con el botón central. Sólo supuso cinco nuevas líneas en el archivo wmeventhandler.pas.
Por lo demás MonkeyWM es un gestor de pila convencional. El usuario desplaza sus ventanas por el escritorio, o como hemos visto altera sus dimensiones —en ambos casos el movimiento es opaco—; las minimiza o amplía a pantalla completa. Los controles para ello se ordenan siguiendo la convención que estableció Windows allá por 1995 y son reconocibles de inmediato. Ningún misterio aquí, pues.
Se permite cierta flexibilidad. Uno puede conformarse con la barra de tareas, prescindir de todo lo demás y conducir su sesión con terminales. O apoyarse también en el menú, usarlo para cargar las aplicaciones de uso más frecuente. Otra alternativa para ejecutar programas sería colocar iconos en el escritorio: bien libres, bien agrupados en el borde inferior, en la «barra de lanzamiento» o launchbar
. Esto depende ya de las manías de cada uno.
Y ahora pasemos a las malas noticias.
La primera, y más importante: MonkeyWM quedó abandonado en una etapa temprana de su desarrollo, y a pesar de la buena impresión inicial resulta más bien rudimentario. Vamos, a partir del tercer día me desengañé. Trata de ofrecer bastante funcionalidad, cierto, pero muchos detalles quedaron por pulir y resulta fácil encontrar errores. Enumero algunos ejemplos:
xterm
para lanzar una terminal, mas si se encuentra algo como xterm -fg red
—una terminal con texto rojo— se confundirá y no hará nada.No voy a seguir comentando problemas porque creo que el lector ya se hará una idea: MonkeyWM no sirve como entorno de trabajo serio, y ese 0.3 como número de versión no iba tan desencaminado. Yo lo he usado durante un mes y reconozco que se me ha hecho un poco largo. Aunque sí es cierto que le he sacado partido: me preparé un tema gráfico propio, hice algún apaño en el código para poder cambiar de escritorio virtual con la ruedecilla del ratón... Ha sido divertido, la verdad.
Me preparé un tema gráfico por mi cuenta para MonkeyWM, al que en un alarde de originalidad bauticé como «mio_verde»: aquí está.
Los temas afectan al aspecto de la decoración de las ventanas y la barra de estado; son bastante sencillos y se resumen en un puñado de imágenes en formato XPM. También es posible prescindir de ellos y emplear la decoración básica con colores planos, pero esos colores sólo se pueden alterar modificando el código —en el archivo wmglobals.pas, concretamente—. Aunque el fichero monkeywm.ini contiene un apartado dedicado a ellos, lo escrito ahí carece de efecto.
Es posible configurar otros detalles: tamaño, posición y funciones de los iconos del escritorio, contenido del menú, número de escritorios virtuales...
Y poco más, en realidad. MonkeyWM resulta más bien rígido. El modelo de enfoque consiste en clicar ventanas para seleccionarlas y traerlas a primer plano, y no se contemplan alternativas. Tampoco pueden añadirse atajos de teclado.
El archivo readme que acompaña al código fuente da unas cuantas explicaciones muy someras. Y ésa es la única documentación que hay.
MonkeyWM no pasó de ser un trabajo experimental, y por lo tanto no lo recomendaría a nadie para un uso cotidiano. A estas alturas de la vida, empezando ya 2021, tampoco me imagino a nadie planteándose tal cosa: hablamos de software olvidado de 2007. El valor de este texto, pues, es más bien arqueológico. «Contemplen estas puntas de flecha encontradas en el yacimiento de ***, que creemos corresponden a la cultura de la cerámica de bandas».
Sin embargo me ha gustado, aun consciente de que no pasa de ser una curiosidad. Parecía un proyecto prometedor. Y si el autor hubiese dedicado más tiempo a pulir fallos y a desarrollar sus características principales, se habría convertido en un entorno gráfico muy práctico.
Unas pocas capturas de pantalla más con MonkeyWM en acción:
Para posibles interesados en MonkeyWM, si es que realmente resulta posible hacerlo funcionar en un Linux actual: