• SWM (Adam Purkrt)

Versión analizada

En el código fuente se anuncia la versión 2001/2, mas el autor siguió trabajando sobre ella hasta marzo de 2012.

Estado actual

Abandonado y desaparecido de Internet. La página oficial del proyecto ya no existe, y con ella se esfumó también todo rastro de él. Si yo lo he usado, y lo estoy comentando ahora, es porque en su día lo encontré y se me ocurrió guardar una copia en mi disco duro; vamos, de casualidad.

Características resumidas

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

Descripción


Captura de SWM

Y esto, queridos amigos, es SWM. Arriba, parcialmente oculto tras la terminal negra, se halla el paginador. Y en la esquina inferior derecha la no demasiado útil ventana de diagnóstico.


SWM es obra de un programador checo llamado Adam Purkrt. Parece que el nombre significó varias cosas durante el tiempo de vida del proyecto; en mi copia, el archivo global.hh del código fuente lo presenta como el Superior, small, symphatetic, smart & state of the art Window Manager. Resulta complicado precisar nada más, puesto que su página oficial desapareció sin dejar el menor recuerdo allá por 2014. Sólo queda una cita que recoge Giles Orr y que habla de decoración [manejada] al estilo de TeX, detalle que para un usuario casual carece de interés.

Se trata de un gestor de pila más bien convencional. Cuenta con un sistema de menús bastante flexible, que puede usarse para ejecutar programas o realizar operaciones con ventanas. Y un escritorio virtual de tamaño configurable, más amplio que el área mostrada en el monitor y por el que la vista puede desplazarse libremente —en 2012 esto era ya un arcaísmo frente a la popularidad de los espacios de trabajo independientes—; para que su control resulte cómodo se incluye además un paginador. Hay asimismo atajos de teclado personalizables. Y la posibilidad de definir ajustes específicos para aplicaciones o ventanas concretas: por ejemplo, que Xclock aparezca siempre en pantalla, siguiéndonos en nuestros movimientos por el escritorio virtual —a esto se le suele llamar una ventana «pegajosa»—.

SWM decora cada ventana con un borde y un título, y éste contiene su nombre y los típicos controles para minimizar, maximizar y cerrar. De todas formas no tiene por qué ser siempre así: es posible prescindir del título, o incluso de toda la decoración y conformarse con los marcos desnudos. Comentaré también que, aunque en la configuración inicial todos los elementos de la interfaz —menús, decoración— se dibujan con colores sólidos, cabe la opción de utilizar imágenes en formato XPM.

Resumiendo, por sus capacidades este gestor podría pasar quizás por una variante rudimentaria de Vtwm. Al menos su enfoque general es parecido —escritorio virtual, pager y menús—, si bien en funcionalidad queda muy atrás: nada de macros en M4, ni controles para las ventanas personalizables, ni...


Captura de SWM

En esta captura de pantalla se puede apreciar el menú principal. Y la terminal que hay abajo con texto de colores muestra la parte del archivo de configuración dedicada a ese menú.


La configuración se establece en los ficheros config y theme —éste invocado desde el primero—, en el directorio del sistema /usr/share/swm. De texto plano. Su sintaxis resulta mayormente sencilla, asignar valores a variables, pese a que en algunos asuntos como menús o atajos de teclado posea alguna peculiaridad que observar.

Instalación

En contra de lo que yo esperaba —los programas escritos en C++ a veces envejecen rápido—, el código fuente de SWM es fácil de compilar: basta con dar la orden «make» desde el directorio principal. Recurrí a Glibc 2.5 y GCC 6.4.0 sin que surgieran errores.

Primeras impresiones

Vale, en realidad no fue tan sencillo. Una vez instalado el gestor me encontré con que al arrancarlo se interrumpía de vez en cuando debido a «violaciones de segmento» —oh, pobres segmentos, todo les pasa a ellos—. ¿Por qué? Ni idea, no sé casi nada de programación... Pero mi experiencia con Awm me enseñó que con aplicaciones inestables DieHard puede ayudar, y comprobé con alegría que en este caso lo hace. El secreto está pues en invocar a SWM así desde el fichero ~/.xinitrc:

LD_PRELOAD="/usr/local/lib/libdiehard.so" exec swm &

Como premio vi por fin mi escritorio, un escritorio austero de tonos marinos: con una capa verdosa y uniforme para el fondo, la decoración de las ventanas en un azul más puro y vivo, texto en blanco. Una sesión gráfica en un sistema Unix a principios de los noventa no debía lucir muy diferente... Sin embargo, encontré agradables los colores elegidos, y además por norma general me gusta la simplicidad.


Captura de SWM

Ocultar la ventana de diagnóstico agiliza mucho el funcionamiento de la sesión. SWM sigue ametrallándola a mensajes, mas el ordenador ya no tiene que hacer el esfuerzo de mostrarlos.


Oh, el paginador en el centro del borde superior... ¡Y es grande! Tiene que serlo, claro, porque el escritorio virtual abarca nada menos que doce pantallas. Nunca he necesitado tanto espacio.

Destaca también una ventana de diagnóstico en la esquina inferior derecha, un rectángulo cuya altura abarca la mitad del espacio vertical del monitor. Pronto se llena de líneas de texto: cada acción del gestor, por pequeña que sea —abrir un menú, ejecutar alguna aplicación desde él, etc— deja en ella media docena de mensajes, casi todos del estilo de hbox.fa 676x372 p=0 xs=10 ys=10. Esto..., no, no resulta precisamente útil para el usuario común. Incluso peor: comprobé, en estas primeras tardes con SWM, que el caudal de información que se encamina a esa ventana puede ser en ocasiones muy elevado, y las continuas actualizaciones de todo ese texto ralentizaban apreciablemente el funcionamiento de mi escritorio. Y eso por supuesto no me gustó —póngase aquí una carita enfadada o algo—.

Usando SWM

(Ya, estoy redactando esto como si existiese cierto grupo de gente que empleara de forma cotidiana SWM, o estuviera interesada en hacerlo. No lo hay. Este artículo pues resulta tan práctico y relevante como el gato de escayola a la entrada de casa. Da igual, finjamos lo contrario durante la siguiente media hora).

Hablamos de un gestor de pila que sigue la mayoría de convenciones de los de su clase, así que en principio le reserva pocas sorpresas al usuario. Quizás la implementación del escritorio virtual como espacio de trabajo más grande que el monitor, un anacronismo procedente de los años noventa, sería una de ellas... Sin embargo, uno coloca como siempre las ventanas a su gusto, las mueve, cambia sus dimensiones; y no hay nada especialmente misterioso en estas operaciones, SWM sólo aporta algún matiz idiosincrásico.

¿Un ejemplo? Bien, aquí hay una implementación del denominado «window snapping», un método rápido de maximizar ventanas, o de disponer dos de ellas en mosaico con división vertical de la pantalla. La idea original procede supuestamente de Microsoft, en concreto de Windows 7, y ha sido replicada luego por otras interfaces gráficas. Y consiste en que, mientras el usuario arrastra con el ratón para desplazar una ventana, cuando el puntero llegue a uno de los bordes del escritorio dicha ventana pasará a ocupar por completo una de sus dos mitades; o el escritorio completo, si se trata del borde superior. ¿Se me entiende, no? El caso es que yo apenas he utilizado esto, aunque considero que puede resultar útil ocasionalmente; y viendo cómo se ha ido extendiendo más allá de su Windows natal parece una característica popular.

Pasemos a otras cosas... SWM no maneja iconos, las ventanas minimizadas desaparecen del escritorio. Es posible recuperarlas mediante el menú de tareas general —lista todo lo que hay abierto en la sesión—, o un segundo menú de tareas reservado especialmente para ellas y que se muestra al clicar en la esquina inferior izquierda de la pantalla.

Puede recurrirse también a los menús para iniciar aplicaciones, y si alguien se lo propone apenas resultaría necesario manejarse con terminales; cosa que muchos hacemos de todas formas porque nos satisface escribirle órdenes directas al ordenador. Da lo mismo, los menús de SWM son bastante potentes. Principalmente porque tienen la capacidad de interactuar con el intérprete de comandos del sistema —en GNU/Linux se trata, con frecuencia, de Bash, mas supongo que serviría cualquier otro—. La configuración por defecto que preparó Adam Purkrt —cfg/config en el árbol de código fuente— utiliza esta funcionalidad para que aparezcan fecha y hora en el menú principal, y para permitirle al usuario montar y desmontar sistemas de archivos desde un submenú; una persona imaginativa encontraría sin duda muchas más posibilidades.


Captura de SWM

Otra estética diferente, basada en otros colores. Como veis, he movido el paginador abajo y le he dado otra forma: ésas son también las nuevas dimensiones del escritorio virtual. A la derecha, el menú de tareas.


Otra particularidad que me llamó la atención es que las pautas que regulan la decoración que SWM añade a las ventanas se aplican en tiempo real. Por ejemplo: en la configuración inicial, una ventana cuyo nombre termine en «VIM» se dibujará sin título —el autor lo quiso así, no hay que buscarle la lógica—. De modo que, si uno abre una terminal —pongamos Xterm—, y luego ejecuta en ella el editor de textos Vim , la decoración de la ventana cambiará en aplicación de la regla anterior; y volverá a su estado anterior al cerrar más tarde el editor, cuando éste le devuelva su título original.

Respecto a la ventana de diagnóstico y la pesadez que a veces provoca en el escritorio... Cerrarla resulta que cierra también SWM por alguna razón incomprensible. Pero el problema se minimiza al reducir su tamaño —porque entonces queda menos texto visible en pantalla que actualizar—, y desaparece al ocultarla. Mucho más tarde he descubierto algo básico: compilar el gestor desactivando la opción «DEBUG» —hay que comentar para ello la línea oportuna en el fichero global.hh del código fuente— reduce en gran medida este río de información inservible para el usuario. Sí, el esfuerzo que el X Window System invierte en escribir en una ventana cientos de avisos redundantes debería dedicarse a cosas más útiles.

Ya hablando más en general, cuando quise adaptar SWM a mis necesidades un inconveniente serio que encontré es la ausencia de documentación. No existe apenas nada. Me las apañé con las pistas dispersas en varios lugares —ficheros README, TIPS, ACRONYMS, cfg/config—, y con lo que pude averiguar examinando el código fuente. Así que aprender cómo funciona y se configura este gestor de ventanas se convierte en una especie de juego intelectual, divertido sólo si no tienes tareas más importantes que hacer.

Y luego quedan errorcillos diversos, que aunque de poca importancia demuestran que el proyecto no llegó a madurar del todo. Asociar eventos a acciones del ratón que tengan como contexto toda una ventana —supongamos que deseo moverlas pulsando [Alt] y arrastrando el botón izquierdo— no parece funcionar. En alguna circunstancia infrecuente los menús se niegan a aparecer... En fin, este tipo de cosas.

Opciones de personalización

En realidad bastantes, SWM es un poco más completo de lo que aparenta en un primer momento. Colores, contenido de los menús, diferentes decoraciones y propiedades dependiendo del título de cada ventana —esto para diferenciarlas por aplicaciones—... También se permite utilizar imágenes en formato XPM en lugar de colores planos para los elementos de la interfaz; no se me ha ocurrido experimentar con esto, la verdad.


Captura de SWM

Emule vive, la lucha sigue... A la izquierda, un menú contextual con opciones de manejo de ventanas: aparece al clicar con el botón central sobre la decoración.


Este gestor de ventanas se ocupa además del fondo del escritorio, y de nuevo puede tratarse de una capa sólida o una imagen XPM. Sea lo que sea, se usará asimismo como fondo para el paginador —y en el segundo caso la imagen aparecerá a escala reducida—.

Una posibilidad infrecuente de SWM es la de asociar acciones a zonas determinadas del escritorio. Los ajustes por defecto incluyen varios ejemplos de ello: invocar menús al clicar en las esquinas de la pantalla, o elevar el paginador a lo alto de la pila al mover el puntero por un tramo concreto del borde superior. La única pega es que la sintaxis para definir la geometría de estas regiones en el fichero de configuración es un tanto rebuscada.

Nótese que estos archivos de configuración —config para las propiedades generales, y desde él se llama luego a theme para establecer colores y fuentes— se almacenan en /usr/share/swm, y por lo tanto sólo son editables con permisos de administrador. No obstante SWM cargará otro fichero distinto si se usa la opción de ejecución correspondiente, de modo que esa restricción puede esquivarse.

(Oh, mientras escribía este texto me he dado cuenta de que... ¡Existen animaciones opcionales para menús y ventanas! No aportan nada pero tienen su gracia).

Documentación

Apenas nada. Fragmentos aquí y allá, y para hacerlo aún mejor algunos escritos en checo.

Aciertos

Inconvenientes


Captura de SWM

El reloj que se ve en segundo plano, arriba a la derecha, es Tclock: se supone que es transparente y debería aparecer directamente sobre el fondo del escritorio, mas SWM lo incluye dentro de una ventana.


Conclusión

Procedente de la República Checa, SWM fue uno de esos proyectos personales en que se embarcan los autores sin otra ambición que aprender y quizás crear algo útil. Yo diría que progresó bastante y posee algún rasgo de interés, mas aún le faltaba madurar. Y su inestabilidad y la falta de documentación lo descartarían para un uso más o menos serio; claro que a estas alturas nadie va a proponerse tal cosa.

Nada que añadir, otra pieza más para mi museo.

Galería de imágenes

Imágenes únicas en Internet de SWM en funcionamiento:

Captura de SWM

Sí, es posible hacer que en el paginador se repita el fondo del escritorio a pequeña escala. Arriba, a la izquierda, Xfm , una de esas aplicaciones que llevan décadas acompañando al X Window System.

Captura de SWM

De nuevo el menú principal, con otro submenú desplegado. Y un par de terminales; para mí son imprescindibles.

Captura de SWM

Una tarde con mi relajante escritorio gatuno de color azul —aunque sólo asoman los bigotes del gato por debajo de la terminal, lo siento—.

Captura de SWM

Tomé esta captura con Xnest, con el objetivo de mostrar el window snapping en acción. He arrastrado la ventana del navegador y su artículo sobre ballenas hasta el borde de la pantalla, y cuando suelte el ratón pasará a ocupar la mitad ya delimitada por la silueta.

Descargas

Tal vez uno de cada mil lectores quieran echarle una mirada a SWM. Así que para ellos tengo lo siguiente:

 

Artículo escrito el 3 de marzo 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.