• Treewm

Versión analizada

0.4.5, publicada en septiembre de 2003.

Página oficial

http://treewm.sourceforge.net/

Estado actual

Abandonado desde los lejanos días de 2003. ¿Usuarios en la actualidad? Bueno, Gentoo y FreeBSD parece que aún lo ofrecen para instalar desde sus repositorios, y quedan repartidos por Internet un puñado de menciones y comentarios, así que quizás alguien lo siga usando a estas alturas. Y parece que en su época de vigencia despertó un modesto interés por sus rasgos atípicos.

Existió también otro gestor de ventanas, llamado Unwimp , que se decía inspirado en parte por este Treewm. Desaparecido tras un desarrollo corto.

Características resumidas

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

1 Cuenta con un amplio surtido de combinaciones de teclas para manejar ventanas de forma rápida, pero no da al usuario posibilidad de hacer cambios o definir otros nuevos.

Descripción


Captura de Treewm

Ésta es una buena imagen de lo que puede hacer Treewm: un escritorio secundario, que flota sobre el principal —en primer plano, con mi calendario —, iconos de ventanas minimizadas, una barra de tareas...


Treewm fue un gestor de ventanas, derivado de Aewm, en el que un tal Thomas Jägger trabajó entre 2001 y 2003. Sí, fabricado en Alemania... El autor explica lo siguiente en el fichero README que acompaña al código fuente:

«Bien, creo que tuve algunas buenas ideas que no se han implementado en ninguno de los gestores de ventanas mayoritarios. Quedé impresionado por PWM, el único gestor que he visto capaz de usar el espacio de la pantalla razonablemente. Pero pensé que el manejo de las ventanas podría ser incluso más eficiente si las ventanas se organizan en un árbol en lugar de una lista [...] Muchos gestores utilizan escritorios virtuales, así que podéis considerar el concepto de Treewm como una especie de generalización de sus conceptos. En mi opinión, un árbol es el modo natural de organizar tareas [...]»

¿Entendéis algo? Ya, el párrafo de Jägger resulta más bien confuso... A ver si yo consigo hacerlo mejor.

Treewm se basa en una idea original: ¡escritorios anidados! Esto significa que el usuario puede crear dentro de su escritorio básico ventanas especiales susceptibles de contener a su vez otras, y que a todos los efectos se comportan como escritorios secundarios. En ellos, además, se admiten configuraciones —colores, modelo de enfoque— diferentes a la del escritorio principal.

Por ejemplo, supongamos que uno tiene que utilizar GIMP pero aborrece su interfaz porque se reparte por varias ventanas independientes. En algunos gestores puede resultar un poco caótico, los diversos diálogos del programa llenando barras y menús de tareas... En cambio, Treewm daría la posibilidad de crear un escritorio secundario —pongamos, qué sé yo, una ventana cuadrada de más o menos mil píxeles de lado—, y abrir GIMP en su interior: ninguno de los elementos de la aplicación podrá salir de él salvo por decisión del usuario, y si se desea centrar temporalmente la atención en otros asuntos basta con minimizar este escritorio secundario.

Y por supuesto dentro de un escritorio secundario cabe crear a su vez otros escritorios —podríamos denominarlos «terciarios»—, y así sucesivamente, como en un juego de matrioskas . De ahí la metáfora del árbol que inspiró al autor, cada nivel de escritorios comparable a la división de una rama.

Otra faceta interesante de Treewm es la existencia de una línea de comandos desde la que realizar operaciones de una forma rápida y directa. Aparece al pulsar [Alt] y [Espacio]. La mayoría de ellos consisten en un único carácter: «C» para cambiar el tamaño de la ventana enfocada, «s» para convertirla en siempre visible, etc. También se permiten búsquedas entre las ventanas abiertas, que traerán a primer plano aquélla cuyo título contenga el texto introducido —«/[cadena a buscar]»—. O ejecutar programas externos como desde una terminal —como muestra, «!abiword» para iniciar ese conocido procesador de textos—. Y éstas son sólo las posibilidades más obvias.


Captura de Treewm

Dos cosas a ver aquí: el enorme menú que permite hacer de todo con las ventanas —y en el que aventureros inexpertos se han perdido—, y la línea de comandos. En ella estoy vinculando la combinación de [Alt] y R a la acción de ejecutar ROX Filer.


Al comenzar la sesión el gestor crea un archivo oculto, ~/.cmdtreewm; en realidad se trata de una «tubería con nombre» a la que se pueden enviar asimismo órdenes que el gestor ejecutará inmediatamente, igual que en la línea de comandos.

¿Más cosas? Bueno, lo que me queda por contar es más convencional. Treewm es un gestor de pila. A cada ventana se le añade una decoración simple con dos botoncitos, cerrar y maximizar, aunque el usuario puede además minimizarlas como iconos o enrollarlas; luego existen otras opciones más sofisticadas, como disponerlas en tres capas —siempre arriba, la pila habitual, o siempre debajo—, o como he mencionado antes hacerlas siempre visibles. Cada escritorio viene provisto de su correspondiente barra de tareas. Y existen también menús, aptos para casi cualquier cosa —porque los efectos de cada elemento vienen definidos, una vez más, por los comandos específicos del gestor—.

La configuración se lleva a cabo en el fichero oculto ~/.treewm; como es tan frecuente en Unix, un documento de texto plano en el que se especifican las preferencias del usuario. Ahora, en este caso se emplea una sintaxis un tanto peculiar.

Instalación

El código fuente es antiguo y escrito en C++, y eso prometía una compilación difícil. Sin embargo no encontré grandes problemas, sólo un error al procesar el archivo src/resmanager.h, fácilmente subsanable añadiendo al principio, junto a los demás «includes», la línea:

#include <strings.h>

Con eso puede compilarse con versiones relativamente recientes de GCC; lo he comprobado con la 4.8.4. Eso sí, con numerosos avisos de prácticas obsoletas en el código, que no afectan al resultado final.

Con Treewm se incluyen dos versiones modificadas de Xkill y Xprop, porque parece que las originales no son compatibles con el gestor. Jägger pensó en todo, y estás se instalarán como xprop_treewm y xkill_treewm para no sobreescribir las originales del sistema.

Primeras impresiones


Captura de Treewm

Dentro del escritorio principal flota un escritorio secundario, el llamado «escritorio molón». Pueden definirse colores, reglas de colocación de las ventanas y modelo de enfoque diferentes para él. Lo estoy usando para mis estudios.


Bien, hay programas amables que te ayudan a orientarte en tus primeros pasos con ellos y tratan de ponértelo fácil. Treewm no es uno de ellos. Durante mi sesión inicial anoté lo siguiente:

«¡Guau! Es realmente confuso. Escritorios virtuales, escritorios dentro de otros escritorios comportándose como ventanas flotantes. Muchas entradas en los menús.

»Documentación claramente insuficiente. Haría falta algún tutorial».

Sí, chicos, tal que así. El botón derecho del ratón sobre el escritorio invoca un menú con una larga lista de opciones para el manejo de ventanas, algunas tan misteriosas como Delete Holes o Release Windows; me hizo recordar mi experiencia previa con el Siemens RTL Tiled Window Manager, un gestor especialmente arisco y complicado. Encontré también un esquemático menú de aplicaciones vinculado al botón izquierdo, que básicamente permite lanzar Xterms.

Practiqué un poco con la línea de comandos, sin perder de vista en ningún momento la parca documentación que escribió Jägger. Creé escritorios anidados. Abrí ventanas en ellos. Sin embargo, ¿pueden después sacarse fuera? ¿Cómo se hará? Arrastrando sus títulos con el botón central del ratón resulta posible moverlas de un escritorio a otro..., ah, mas eso lo descubrí en mi tercer día.

¿Y por qué una de las operaciones más accesibles para el usuario, con uno de los controles de cada ventana reservada para ella, es la de maximizar? Yo al menos casi nunca lo hago. Tal vez el autor utilizaba un monitor pequeño.

Usando Treewm

Insisto, no resulta fácil. A mí me costó cerca de una semana coger cierta soltura con él. Hay bastante funcionalidad que dominar, y la documentación ayuda aunque la veo arisca e incompleta.

Escritorios dentro de escritorios

En fin, ¿cuántos gestores de ventanas conocéis que implementen esta idea de los escritorios anidados? Creo recordar que en Ion también podía lograrse algo remotamente similar, pero se trata del único caso que se me ocurre y en realidad tampoco estoy seguro... ¿Y por qué esta característica ha quedado en una rareza y jamás se ha vuelto popular? Pues por lo que yo he visto supone una considerable complejidad adicional para el usuario, a cambio de alguna ventaja muy esporádica. Pasada la sorpresa inicial de «¡oh, escritorios dentro de escritorios, qué guay!», uno descubre que en la práctica el invento resulta más bien engorroso.

Según mi experiencia, un incordio común es pretender abrir una ventana en el escritorio principal y ver en cambio como ésta aparece dentro de uno secundario, porque el foco estaba ahí en el momento de crearla. En otras ocasiones me encontré liberando por error ventanas —es decir, sacándolas de sus escritorios particulares para llevarlas al escritorio «padre»—, o creando nuevos escritorios secundarios sin pretenderlo. E incluso aunque uno maneje ya Treewm con cierta agilidad el concepto requiere bastante atención, puesto que implica lidiar con dos o más pilas independientes de ventanas al mismo tiempo.


Captura de Treewm

Es posible destacar también algunas ventanas —individualmente, o de acuerdo a reglas predefinidas— con colores distintos al resto.


La cuestión es que para aprovechar el espacio del monitor y organizar las sesiones hay métodos más sencillos. Los escritorios virtuales clásicos —bien en su modalidad de área más grande que la pantalla, bien como espacios de trabajo separados— llevan cumpliendo aceptablemente ese cometido desde por lo menos 1990. Y algunos gestores modernos —Fluxbox, Pekwm, PWM, etc— permiten además agrupar las ventanas en interfaces de pestañas. Así que existiendo ya estas posibilidades —aunque la segunda era aún infrecuente en la época en la que apareció Treewm—, los escritorios anidados no aportan demasiado.

Ahora, no los considero inútiles del todo. Encontré situaciones en las que contribuyen a un trabajo ordenado. El ejemplo de GIMP que he descrito antes me parece una de ellas, porque además tampoco se trata de un programa que se adapte bien a una interfaz convencional de pestañas; probablemente hay por ahí otros casos parecidos, aunque no abunden. Asimismo cabe usar uno o más de estos escritorios anidados para clasificar terminales y disponerlas en mosaicos.

Yo los empleé casi siempre para dos cosas: reunir mis navegadores de Internet en los momentos en que mantenía varios abiertos —muy indicado con los que sólo muestran una página por ventana, como Links —, y alojar varias terminales juntas cuando se presentaba la necesidad. Y si uno maximiza todas las ventanas pertenecientes a un mismo escritorio secundario puede ir alternando entre ellas desde su barra de tareas, y el resultado final se asemeja mucho a una interfaz de pestañas.

Ah, me falta decir que Treewm, además de estos escritorios anidados, permite escritorios virtuales de mayores dimensiones que el área visible en la pantalla. Y esto se aplica tanto al escritorio padre como a los hijos que uno vaya creando.

Cuestiones más generales

¿Una línea de comandos para manejar ventanas? Parecerá una ocurrencia extraña, pero ya la he visto implementada en otras ocasiones. Su uso es opcional, uno puede desenvolverse con el gestor sin hacer nunca nada con ella. Sin embargo, le encuentro un indudable valor práctico. Agiliza algunas acciones: como muestra, para minimizar una ventana resulta más rápido pulsar [Alt] y [Espacio], y luego introducir «I», que localizar la opción adecuada en el menú contextual correspondiente. Y en sesiones muy concurridas la posibilidad de buscar ventanas concretas tiene su interés: escribir algo como «/tort» te conducirá directamente hasta tu lector de documentos, ése en el que estabas ojeando un artículo llamado «Costumbres reproductivas de la tortuga mediterránea».

Por lo demás, bueno, Treewm es un gestor de pila y lo que queda por comentar de su funcionamiento resulta más familiar. Así que mueves ventanas por los escritorios, cambias su tamaño o las traes a primer plano según lo necesites, esas cosas. Relojes y otros pequeños accesorios pueden dejarse siempre visibles convirtiéndolos en «pegajosos» —te seguirán siempre en tus desplazamientos por el escritorio virtual—, o colocándolos sobre todas las demás ventanas en la capa de «siempre arriba». Ofrece bastante funcionalidad, de hecho.

No he dejado de sentirme un poquito torpe con él, mas no soy capaz de precisar con exactitud por qué. Quizás los controles y los atajos de teclado resultan parecidos, aunque sutilmente distintos, a los de otros gestores más mayoritarios; o tal vez se deba a que algunas operaciones comunes —minimizar, sobre todo— son relativamente poco accesibles —¿el menú gigante, la ruedecita del ratón?—. En fin, a grandes rasgos me he acostumbrado pero no llego a trabajar con Treewm con la naturalidad que me gustaría.

Por último diré que la configuración se me antoja ligeramente complicada, principalmente por la sintaxis. Ésta se basa en acciones, clientes y schemes —ajustes estéticos—, relacionados unos con otros, y a los que se asignan valores. Se trata de un sistema muy versátil, sí, aunque requiere su aprendizaje.

Opciones de personalización

¡Muchas! Diferentes modelos de enfoque, ajustes específicos para ventanas determinadas —por ejemplo, decorar de forma distinta las Xterms—, número y contenidos de los menús...

He comprobado que se centran más en cuestiones de usabilidad, y dan al usuario opciones, digamos, poco habituales. ¿Qué tal una clase especial de escritorios secundarios con un modelo de enfoque distinto a los demás, y un puñado de iconos para ejecutar programas? Y también cabe emplear el fichero-tubería ~/.cmdtreewm para automatizar comandos y realizar de forma rápida acciones complejas como... Veamos... Vale, reconozco que no se me ocurre ningún uso cotidiano para esta característica, pero ahí queda. Qué sé yo, ¿un script de Bash que minimice todas las réplicas abiertas de tu editor de textos favorito?

En la faceta visual, en cambio, se trata de un gestor que no permite grandes alteraciones. Puede jugarse con colores, fuentes y poco más. No resulta posible cambiar los controles que luce cada ventana en su título, ni sus efectos: lo intenté sin éxito, maximizar y cerrar es pues todo lo que tenéis.

Documentación


Captura de Treewm

Una estética diferente, mi escritorio cyberpunk: así imaginábamos en los ochenta el futuro. El reloj es una pieza nostálgica llamada Nixieclock .


En el archivo README que acompaña al código fuente se expone el uso básico de Treewm, se enumeran los atajos de teclado y los comandos disponibles para el usuario, y se describe de forma superficial la organización del fichero de configuración ~/.treewm. Su lectura es imprescindible para toda persona que quiera acercarse a este gestor con la esperanza de comprender algo.

El archivo default.cfg, por otra parte, contiene una lista de todas las posibles etiquetas de configuración.

El problema es que a mi juicio Jägger se quedó corto. Dejó algunos conceptos por explicar: los «agujeros» (holes), los registros, cómo escribir correctamente comandos recursivos... Y a mí me hubiera gustado disponer de más configuraciones de muestra. Y de un tutorial para principiantes o similar, que te ayude en tus primeros pasos.

Aciertos

Inconvenientes

Conclusión

Treewm, un original experimento que al final no cuajó; imagino que porque controlar los escritorios anidados no resulta exactamente cómodo. No intuitivo, en opinión de Giles Orr , y debo darle la razón. Sin embargo posee un interés indudable como curiosidad, porque no hay otro gestor de ventanas que se le parezca. En serio, se trata de un trabajo único.

Y su aspecto engaña: bajo esa decoración de apariencia tan simple se esconden una gran flexibilidad y algunas ideas muy elaboradas. Claro, hacen falta aprendizaje y días de uso para sacarle partido.

Galería de imágenes

Treewm es bastante peculiar y además las imágenes de él en acción no abundan por Internet. Así que aquí van unas cuantas más:

Captura de Treewm

Este —falso— aspecto «retro» es totalmente deliberado. Hay varias réplicas de Vinterm , que pretende imitar una antigua terminal monocromo salida de los años ochenta. Y también, emulado por Xmame, Battle Zone.

Captura de Treewm

Me gusta usar varios navegadores a la vez porque hemos vuelto a la situación de hace dos décadas: nunca sabes cuál funcionará en qué sitio web. Con Treewm me parece cómodo meterlos todos en un escritorio anidado.

Captura de Treewm

Allá por 2002 Thomas Jägger mostraba dos escritorios anidados flotando sobre el principal, y la posibilidad de enviar eventos a varias ventanas diferentes, en este caso las dos terminales que están recibiendo el mismo texto simultáneamente. (La captura no es mía, procede de la página oficial ).

Captura de Treewm

Al maximizar todas las ventanas de un escritorio anidado se obtiene, gracias a la barra de tareas correspondiente, algo que a efectos prácticos es una interfaz de pestañas. En esta captura, el escritorio «Internet» con los navegadores.

Captura de Treewm

Treewm, con texto en japonés en los títulos de varias ventanas. Hay alguna aplicación antigua del primer Gnome, incluido probablemente el panel, escondido en la esquina inferior derecha de la pantalla. (La captura no es mía, procede de la página oficial ).

Captura de Treewm

Tomada en 2005. No muestra nada insólito a estas alturas, sólo una estética distinta y programas que yo no uso. (La captura no es mía: fuente ).

Captura de Treewm

La ventana de Hardinfo informa de las características básicas de mi sistema operativo. El reloj transparente es Lmclock .

Captura de Treewm

Jugando a Battalion , un arcade en 3D bastante simpático. En el borde inferior de la pantalla hay enrollados una ventana —Aterm— y un escritorio flotante.

Descargas

Para esas almas excéntricas que deseen ver a Treewm en acción:

 

Artículo escrito el 1 de mayo de 2017.


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