• Wmii

Versión analizada

3.9.2, publicada en junio de 2010.

Página oficial

Lo más parecido son sus repositorios de código en Google Code y Github:

https://code.google.com/archive/p/wmii
https://github.com/sunaku/wmii

Estado actual

La última versión publicada va a cumplir pronto seis años, pero en los repositorios de código continúa una discreta actividad —en el momento de escribir esto, los últimos aportes datan de abril de 2015—. No parece que se hayan acometido grandes cambios, casi todo el trabajo se limita a corregir errores o añadir pequeñas características. Quizás el desarrollo de Wmii se encuentra un tanto renqueante, o tal vez el proyecto ha alcanzado la madurez y ya no requiere de innovaciones radicales.

De cualquier modo, se trata de uno de los gestores de mosaico más conocidos y retiene todavía numerosos usuarios. No tantos como hace una década, sin embargo.

Características resumidas

Esc. Virt. Menús Temas Flotantes Títulos B. de estado Manejo
1 No Híbrido

1 Hablando con rigor la respuesta sería negativa. Pero los «tags» vienen a funcionar como tales, en su modalidad de espacios de trabajo independientes. Y si camina como un perro, ladra como un perro y mueve la cola como un perro, podríamos considerarlo un perro.

Descripción


Captura de Wmii

Wmii en su configuración y colores por defecto. Hay una ventana flotante sobre el mosaico. En la columna de la derecha estoy editando el fichero ~/.wmii/wmiirc.


Generalidades

Wmii es un gestor de mosaico derivado de otro proyecto anterior llamado WMI. Anselm R. Garbe trabajó en él entre 2004 y 2006, para luego abandonarlo y centrar sus esfuerzos en otro gestor de ventanas, Dwm; desde entonces el desarrollo de Wmii ha corrido a cargo de Kris Maglione.

Bien, como ya expliqué en la definición que he enlazado en el párrafo anterior, en un gestor de mosaico las ventanas no flotan libremente por el escritorio, sino que quedan encajadas en una cuadrícula que aprovecha todo el espacio del monitor. Un vistazo rápido a cualquiera de las capturas que acompañan este artículo creo que dejará claro el concepto, sin que hagan falta más explicaciones... En todo caso, existen aplicaciones que no se amoldan fácilmente a este estilo de trabajo —el ejemplo más obvio que se me ocurre es el editor gráfico GIMP—, y pensando en ellas estos gestores suelen incluir asimismo un rudimentario modo de pila con ventanas flotantes.

En Wmii el escritorio se divide verticalmente en columnas; si bien en principio —es decir, al comenzar cada sesión de trabajo o abrir un nuevo «tag»— sólo existe una, que abarca casi la totalidad de la pantalla. Cada una de ellas puede contener un número arbitrario de ventanas, dispuestas de tres formas distintas a elección del usuario:

Maximizadas:
La ventana activa ocupa todo el espacio de la columna, y las demás quedan ocultas debajo. En el extremo superior se muestra su título, junto con un indicador numérico que informa de cuántas ventanas comparten dicha columna.
Apiladas (stacked mode):
En apariencia similar al anterior, con sólo una ventana visible; sin embargo, las barras del título de las demás ventanas inactivas también aparecerán, ordenadas verticalmente. Esto en la práctica funciona como una interfaz de pestañas.
En cuadrícula (default mode):
Las ventanas abiertas en una columna se repartirán equitativamente el espacio disponible, que queda dividido en celdas al estilo de otros gestores —véanse Dwm o Larswm—.

Wmii cuenta además con una barra de estado, colocada en los bordes inferior o superior de la pantalla. Ésta muestra una lista con los «tags» abiertos a la izquierda, y un texto personalizable a la derecha —la fecha y la hora, en la configuración por defecto—. También se utiliza para alojar algunos de los menús que puede invocar el usuario.


Captura de Wmii

Las ventanas abarcan todo el ancho de la pantalla porque únicamente estoy usando una columna. Aunque sólo se muestre una hay varias abiertas, apiladas con sólo los títulos visibles.


¿Menús? Ah, sí... De ellos hay que destacar que vienen en dos variedades. Los menús dinámicos (el comando wimenu) funcionan de un modo similar a Dmenu : emplean la barra de estado como una línea de comandos simple desde la que buscar y seleccionar elementos, algo especialmente útil a la hora de ejecutar una aplicación entre las decenas que puede haber instaladas en el sistema. Existen asimismo los tradicionales menús contextuales controlados mediante el ratón (wmii9menu), que en el funcionamiento básico de Wmii tienen un papel más bien secundario y sólo aparecen al clicar sobre la lista de «tags» o los títulos de las ventanas.

Y ya que he mencionado varias veces los «tags», me detendré un poco en ellos. A grandes rasgos, sí, cabría considerarlos escritorios virtuales, pese a que en un sentido más técnico no lo sean realmente. Se van creando de forma dinámica según las necesidades del usuario. Usualmente numerados —«1», «2», etc—, aunque también se permite asignarles nombres —«musica», «internet»—. Todas las ventanas asignadas a uno de ellos se mostrarán en pantalla cuando el usuario lo seleccione, las demás quedarán ocultas; como propina, una ventana puede pertenecer a varios «tags».

La configuración del gestor viene determinada por el archivo /usr/local/etc/wmii/wmiirc (para todo el sistema), o bien ~/.wmii/wmiirc (para el usuario actual); el segundo tiene preferencia sobre el primero. Se trata de un script de Bash que especifica colores, atajos de teclado, contenido de los menús, y otros detalles susceptibles de ajustes.

El sistema virtual de archivos

Ninguna descripción de Wmii estaría completa sin hablar un poco de esta faceta. Parece que a Anselm R. Garbe en algún momento le atrajeron las ideas fundamentales que guiaron a los autores de Plan 9 , «cualquier aspecto del sistema puede representarse mediante árboles de directorios y archivos», y por eso trató de aplicarlas aquí. De modo que este gestor de ventanas, al arrancar, crea en memoria una jerarquía de ficheros tal que así:

.
├── colrules
├── ctl
├── event
├── keys
├── lbar
│   │      # una entrada por cada 'tag' creado.
│   ├── 1
│   └── 2
├── rbar
│   ├── !notice
│   └── status
├── tag
│   │      # un subdirectorio por cada 'tag' creado.
│   │      # Y 'sel', que corresponde al 'tag' actual.
│   ├── 1
│   │   ├── ctl
│   │   └── index
│   ├── 2
│   │   ├── ctl
│   │   └── index
│   └── sel
│       ├── ctl
│       └── index
└── tagrules

Se trata de un sistema de archivos temporal, puesto que sólo existirá mientras Wmii se halle en ejecución. Es posible interactuar con él mediante la utilidad wmiir —utilizada por el gestor para sus operaciones habituales—, o bien recurriendo al soporte del protocolo 9P de cada sistema operativo —en Linux, por ejemplo, se trata del módulo 9p, si no ha sido incluido directamente en el kernel— y sus herramientas habituales para trabajar con ficheros —ls, cat, mount, etc—.

Esto permite controlar sobre la marcha algunas funciones del gestor, o modificar detalles de su configuración sin que sea imprescindible reiniciarlo. Como muestra, resultaría posible mostrar el último mensaje de diagnóstico emitido por el kernel de Linux en la barra de estado, escribiendo en una terminal:

$ dmesg | tail -1 | wmiir write /rbar/status

O bien ver un listado de las ventanas abiertas en el «tag» actual:

$ wmiir read /tag/sel/index

Son sólo dos ejemplos, quizás poco útiles. Un poco más adelante explicaré qué uso se me ocurrió darle a esta característica de Wmii.

Primeras impresiones


Captura de Wmii

Wmii también cuenta con un modo de trabajo con ventanas flotantes. Útil para programas que se vuelven incómodos o inusables confinados en un mosaico. En este caso se trata de un calendario con agenda llamado Plan . Abajo, a la izquierda, la lista de «tags».


La verdad es que los pasos iniciales con un gestor de mosaico siempre resultan difíciles, o al menos así lo he vivido yo. También es cierto que en esta ocasión, después de haber usado en temporadas anteriores Ion y Dwm, ya sabía a lo que venía.

Sin embargo, Wmii trata de facilitar un poco esos primeros momentos. Al arrancar mi sesión inaugural salió a recibirme una ventanita de Xmessage, que amablemente me pedía que escogiese la tecla modificadora a emplear en mis futuras andanzas con el gestor —casi todos los atajos de teclado de Wmii consisten en [Tecla modificadora] + [Tecla corriente]—. Pensé que [Alt] interferiría con las combinaciones definidas en terceros programas, de modo que escogí [Windows], esa tecla olvidada que ninguna aplicación de Linux reclama.

Luego, desde el menú de acciones —invocado al pulsar [Tecla modificadora] + A— se puede acceder a un corto pero muy útil tutorial de introducción —seleccionando la opción welcome—, y a una lista completa de los atajos de teclado de Wmii —opción showkeys—.

Un pequeño problema, sin embargo: mi instalación del gestor era incapaz de mostrar texto por alguna razón que no comprendo, y durante esa primera sesión me encontré con títulos y menús vacíos y una barra de estado en blanco. Tardé un poco en comprender qué ocurría: «¿de verdad Wmii es así? Pues no me parece muy usable». Después de algunas vueltas se me ocurrió definir fuentes mediante Freetype. Y con ello el inconveniente quedó resuelto; se trataba de cambiar la declaración previa de Wmii_FONT en ~/.wmii/wmiirc por algo como esto:

export Wmii_FONT='xft:Luxi Mono-12'

Solucionado eso, completé el tutorial, leí la página de manual y me familiaricé con los atajos de teclado y conceptos básicos. Cosa que me llevó quizás un par de tardes. Trastear con el sistema de archivos virtual y hacer cambios importantes en el fichero ~/.wmii/wmiirc son cosas que aparqué sensatamente para más adelante.

Usando Wmii


Captura de Wmii

Como veis, la barra de estado puede situarse en el borde superior y mostrar textos variados a elección del consumidor. El menú desplegable que se aprecia en la imagen fue un invento mío para elegir los colores de Wmii de entre varias combinaciones posibles: hablo de ello un poquito más abajo.


Tengo algo de experiencia con gestores de mosaico, quizás no mucha: Larswm, Dwm, Ion, 2wm. Son un mundo más variado de lo que podría sospechar un observador que se limitase a ojear capturas de pantalla. Y el detalle que ahora me interesa: unos proponen un manejo casi totalmente manual de los mosaicos —Ion—, mientras que otros poseen un funcionamiento más automático y distribuyen las ventanas con poca interacción del usuario —Dwm—.

Bien, pues Wmii viene a caer entre ambos extremos. Da bastante más libertad que Dwm a la hora de componer los mosaicos. Por ejemplo, resulta posible, y quizás hasta una idea útil en un moderno monitor panorámico, desenvolverse con tres columnas. El modo de ventanas apiladas es práctico cuando muchas comparten una misma columna; sirve para evitar, ya de paso, el problema de las aplicaciones confinadas a cuadraditos ridículos que se presenta en Dwm en idénticas circunstancias. Además contamos con la opción de modificar el tamaño de celdas y columnas arrastrando con el ratón sus bordes o el recuadrito de las barras del título. Sin embargo no hay mosaicos permanentes como en Ion: uno los va organizando en cada sesión de trabajo según las necesidades del momento.

La barra de estado puede mostrar el texto generado por cualquier comando o script de Bash —ojo, codificado en Unicode, de lo contrario las vocales acentuadas fallan—. Basta con enviarlo a /rbar/status en el sistema de ficheros virtual, aunque también existe la opción de crear varios archivos dentro de /rbar. En este último caso Wmii los muestra por orden alfabético, cada uno con un trocito de la barra de estado reservado para él, y al cual se le pueden asignar colores de forma independiente. Yo preparé la siguiente configuración:


Captura de Wmii

Decoración de color blanco. En primer plano, sí, lo adivinasteis: Chimo Bayo. Justo detrás Xmessage muestra el tutorial de bienvenida.


/rbar/time:
Fecha y hora mediante date, y resaltadas con un color diferente al resto de los indicadores.
/rbar/status:
Trabajo y temperatura de la CPU, y como propina información meteorológica de Valencia, Castellón, Reus y alguna ciudad más del entorno. Aunque esto último lo hice a modo de experimento.

De hecho Wmii resulta muy maleable, gracias a esa suma de programación en Bash y el acceso directo a sus engranajes. Se me ocurrió comprobarlo escribiendo una rudimentaria implementación de temas visuales, que consistió en distintas combinaciones de colores para la interfaz del gestor seleccionables mediante un menú. Sólo necesité un sencillo script de Bash —colores.sh—, algunos cambios en ~/.wmii/wmiirc, y la fiel herramienta wmiir para enviar los datos requeridos al sistema virtual de archivos. ¡Y el invento funciona!

Por lo demás, en su manejo cotidiano Wmii no resulta muy diferente a otros gestores de mosaico. El usuario emplea combinaciones de teclas para dividir la pantalla en columnas, o para alternar entre «tags», o elegir la forma de organización de las ventanas dentro de cada columna —apiladas, en cuadrícula o maximizadas—. El ratón puede servir también para realizar algunas operaciones, aunque posee un papel secundario.

Como otros gestores de su tipo, Wmii implementa asimismo un modo de trabajo con ventanas flotantes, para esas aplicaciones que no admiten fácilmente ser confinadas a unas dimensiones arbitrarias. Éstas se mostrarán en una capa independiente sobre el mosaico, siempre. Y claro, en esta faceta Wmii resulta francamente básico: las ventanas flotantes pueden arrastrarse por la pantalla o cambiarse de tamaño, poco más. Lo ideal es recurrir a esta característica en ocasiones puntuales, videojuegos o quizás edición gráfica ocasional; si alguien se encuentra lidiando continuamente con ventanas flotantes, un gestor convencional de pila satisfará mejor sus necesidades.

Opciones de personalización


Captura de Wmii

Mosaico con tres columnas, todas con varias ventanas apiladas. Más práctico en un monitor más ancho que el mío, imagino.


Muchas. Como ya hemos visto, Wmii es fácilmente extensible con unos conocimientos básicos de Bash y ganas de experimentar. Nótese que en este artículo sólo he mencionado Bash, por tratarse del intérprete de comandos con el que la mayoría de los lectores se hallarán más familiarizados: aunque otras alternativas también deberían servir. La distribución básica de Wmii incluye variantes del archivo wmiirc escritas en Python y Ruby, y otra pensada para la shell de Plan 9 —bueno, para la réplica de ella que incluye Plan9port —.

El usuario común estará más interesado en ajustes sencillos: cambiar colores, asignar ventanas a ciertos «tags» de forma automática, y tal vez modificar algún atajo de teclado. Obviamente puede hacerse con relativa facilidad editando el fichero ~/.wmii/wmiirc, aunque éste no sea un archivo de configuración propiamente dicho sino un script que regula el funcionamiento de Wmii.

Documentación

Bastante completa. El tutorial —menú de acciones, opción welcome— informa con un estilo muy directo del manejo básico, y es el primer lugar en el que deberíais deteneros. Luego existe una página de manual para el gestor, y otras más para sus accesorios —wmiir, y los menús wimenu y wmii9menu—. Y por último la Guía del Usuario de Wmii, un documento que suele instalarse en /usr/local/share/doc/wmii/wmii.pdf y que explica las cosas con más profundidad.

Eso sí, todo en inglés, y quizás un poco hostil para los usuarios más inexpertos.

Aciertos

Inconvenientes


Captura de Wmii

A la izquierda, el sistema de archivos virtual desplegado —para hacerlo, cargué el módulo 9p del kernel de Linux y lo monté en /mnt/wmii—. A la derecha, una partida de Nethack y el pronóstico del tiempo.


Conclusión

Y hasta aquí mi experiencia con Wmii. La verdad es que he quedado satisfecho, y casi diría que se trata de mi preferido entre los pocos gestores de mosaico que he probado: más versátil que Dwm pero con un aprendizaje más suave que Ion. La posibilidad de controlarlo de forma remota manipulando su sistema virtual de ficheros abre la puerta a todo tipo de chapuzas, y ciertamente le da una personalidad especial.

Como otras interfaces de su tipo, Wmii resulta ideal para gente que trabaje mayormente con texto, y quizás incómodo para diseñadores gráficos y amantes de los videojuegos. Claro que estas dos últimas categorías representan a un público muy pequeño en Linux —guiño, guiño—.

Descargas

Poca cosa, pero puede que interese a la gente que busque algún ejemplo práctico de personalización de Wmii que vaya más allá de los aspectos más superficiales:

 

Artículo escrito el 25 de marzo de 2016.


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