1.0.0, publicada el 12 de enero de 2017.
Relativamente popular entre los usuarios de gestores de mosaico, se sigue trabajando en él a buen ritmo —en el momento de escribir esto la última versión, 18.11, data de mediados de diciembre de 2018—. Figura en los repositorios de paquetes de las variantes de Unix y distros de Linux más importantes.
Esc. Virt. | Menús | Temas | Flotantes | Títulos | B. de estado | Manejo |
---|---|---|---|---|---|---|
Sí 1 | Sí 2 | No | Sí | No | Sí | Manual |
1 Los grupos de ventanas vienen a funcionar de un modo muy parecido.
2 Hay como mínimo un menú de tareas. Se supone que existen además un par de módulos que implementan otros para lanzar aplicaciones, aunque no he conseguido hacer nada con ellos.
Una sesión típica con StumpWM, hay seis ventanas repartiéndose la pantalla —el reloj en tres dimensiones es Glclock —. En el borde superior, en tonos grises, aparece la barra de estado o
Mode Line
.
Shawn Betts comenzó a trabajar en StumpWM allá por 2003, aunque con los años el proyecto ha contado con una larga lista de colaboradores: el archivo AUTHORS menciona nada menos que a setenta personas. Imagino que la labor de la mayoría de ellas habrá sido muy discreta y ocasional, de todas formas. He de añadir que Betts había creado previamente otro gestor de ventanas bastante conocido, Ratpoison, así que sin duda anduvo muy ocupado en aquella época.
Hablamos de un gestor de mosaico, y en este tipo de interfaces las ventanas no flotan libremente sobre el escritorio, sino que quedan confinadas en celdas que se reparten todo el espacio de la pantalla. Sí, igual que Ratpoison... De hecho ambos comparten un mismo enfoque, y casi cabría considerar a StumpWM como una evolución de su predecesor, con más funcionalidad, sofisticación y posibilidades de configuración. ¿La diferencia más notoria entre ellos? Bien, no sólo no comparten código, sino que StumpWM está escrito íntegramente en Lisp .
De modo que los rasgos más importantes de Ratpoison se encuentran también aquí. El manejo de StumpWM resulta, en efecto, estrictamente manual, de modo que el usuario va dividiendo la pantalla y creando celdas para sus ventanas según lo estime conveniente. Además, se realiza por completo mediante el teclado. Todas las operaciones posibles —y son muchas— requieren su correspondiente secuencia de teclas: normalmente consisten en un prefijo —mientras no se especifique otra cosa, [Ctrl] + T— seguido de una tercera tecla o combinación de ellas. El ratón, en cambio, queda en principio sin utilidad, aunque haciendo los ajustes adecuados puede usarse para mover el foco.
«StumpWM intenta ser personalizable pero [al mismo tiempo] visualmente minimalista. No hay decoración para las ventanas, ni iconos ni botones».
Lo que sí existe es la llamada «área de notificaciones», situada por defecto en la esquina superior derecha de la pantalla: en ella el gestor puede mostrar mensajes temporales con casi cualquier texto que el usuario quiera enviarle. Traída directamente de Ratpoison, claro. Sin embargo, encontramos como novedad una barra de estado —opcional— que aquí recibe el nombre de Mode Line
, útil entre otros menesteres para ver una lista de todas las ventanas abiertas, la fecha y la hora, u otra información general que se considere necesaria.
Como ocurría en Ratpoison, las funciones internas del gestor resultan accesibles al usuario desde una línea de comandos, de modo que uno puede escribirle en ella órdenes directas. Por ejemplo, «gnew Musica
» crearía un nuevo grupo de ventanas —para simplificar, entiéndase por tal cosa un escritorio virtual— llamado así, «Musica». Accesible en la configuración por defecto mediante [Ctrl] + T, y [;].
Mencionaré además la existencia de módulos creados por terceras personas, bloques de código Lisp que suman a StumpWM nuevas posibilidades: indicadores de volumen o carga de baterías para la barra de estado, control de los idiomas del teclado, una bandeja del sistema
, etc. No forman parte de la distribución básica del gestor pero pueden instalarse de forma sencilla.
La configuración, por último... Reside en el fichero oculto ~/.stumpwmrc, que por supuesto está también escrito en Lisp. Los módulos, por otra parte, quedarán alojados normalmente en ~/.stumpwm.d/modules.
En mi monitor ésta es una forma muy cómoda de ordenar las ventanas para leer en Internet. Aunque StumpWM, al basarse en divisiones manuales de la pantalla, permite cualquier mosaico imaginable.
Para instalar StumpWM en el sistema hará falta disponer de alguna implementación de Lisp. Los autores del gestor enumeraban cuatro posibilidades:
Hablo en pasado, «enumeraban», porque en las últimas versiones —las posteriores a la 1.0.0— han decidido mantener la compatibilidad sólo con la primera opción, SBCL, y descartar las demás . De todos modos llevaba tiempo ya siendo la favorita y mejor comprobada.
Recurrid a vuestros repositorios de paquetes, un intérprete de Lisp no es un programita trivial que pueda instalarse a mano con un simple «configure; make; su -c make install
».
El propio StumpWM, en cambio, sí. El resultado de procesar el código con SBCL —no sé si podría hablarse de una compilación— es un único fichero ejecutable, stumpwm, que en mi Linux pesa unos gloriosos 38 MB. Intentar optimizarlo con strip
lo estropea y deja inutilizable, así que no debería hacerse.
Por último, resulta posible instalar los módulos tras haber hecho lo propio con el gestor: basta con escribir algo como «su -c make install-modules
» desde el directorio principal del código fuente.
Eh, ¡hola otra vez, Ratpoison!
De verdad, a primera vista ambos gestores son muy parecidos, no cabe duda de que han sido concebidos por la misma persona. Los mismos diálogos temporales en el mismo lugar —el área de notificaciones, arriba y a la derecha—, atajos de teclado casi idénticos... Como mis andanzas previas con Ratpoison no fueron desagradables esto no me disgustó.
Éste es mi escritorio vacío, sin ventanas: el único elemento visible de StumpWM es el mensaje de bienvenida del área de notificaciones, en la esquina superior derecha. Como fondo aparece Xplanet , y Conky mostrando información sobre el sistema.
Otros detalles sugieren una mayor sofisticación. ¡El área de notificaciones puede mostrar texto en color! Y ojeando un poco el manual me enteré de que StumpWM cubre algunas carencias de su predecesor. Trae por fin un panel, el denominado Mode Line
, e incluye una funcionalidad mínima para el manejo de ventanas flotantes. Esto promete... No me hacía, sin embargo, muchas ilusiones: Ratpoison ya me pareció en su momento software arisco y difícil de dominar, y desde el principio resulta obvio que StumpWM hereda también esa complejidad.
Oh, Lisp... ¡Ay, Lisp! Basta echar un vistazo al archivo de configuración, ~/.stumpwmrc, para entenderlo: Lisp no es tu amigo, Lisp se come a los niños y defrauda a Hacienda. O como mínimo parece un idioma alienígena para los que no somos programadores, vaya. Veremos si mis aventuras previas con GWM y Scwm —recurren a Scheme , así de lejos bastante similar— me sirven de ayuda.
En fin, el recién llegado va a lograr pocas cosas útiles en sus primeras sesiones. Y el hecho de tratarse de un gestor que se controla siempre con el teclado no lo hace exactamente amigable: [Ctrl] + T, [?] invoca un imprescindible diálogo de ayuda que lista todas las combinaciones de teclas existentes y sus funciones.
Los gestores de mosaico no están entre las interfaces más comprensibles para un usuario sin experiencia; exigen práctica, lecturas del manual y algo de paciencia. Y dentro de ese grupo difícil Ratpoison podría contarse entre los más complicados y menos intuitivos, entre otras razones por su idea de prescindir totalmente del ratón.
Bien, pues StumpWM aún va más lejos, y es la suma de Ratpoison y el lenguaje de programación Lisp... O sea, un rompecabezas perfecto para los amantes de los retos. Que nadie espere adaptarse a él rápidamente y sin esfuerzo.
Cito para diversión del público una línea de mi archivo de configuración. Así se halla definida mi Mode Line
, mi barra de estado —copio el coloreado de sintaxis que añade el editor Vim para que luzca un poco menos incomprensible—:
(setf *screen-mode-line-format* (list "[^2%n^*] | ^2*"'(:eval (run-shell-command "echo -n $(date +'%d de %B, %H:%M')" t))"^* ^>"'(:eval (run-shell-command "dmesg | tail -n 1" t))))
Ya, reíros o dadme el pésame... No es fácil, como veis.
Otra muestra de ello es que los ajustes por defecto incluyen unos... ¿Veinte? ¿Cuarenta? Ja... Pongamos, contando mal y deprisa, setenta atajos de teclado —quizás podrían quedarse en «sólo» cincuenta si descartamos las variaciones de algunos de ellos—. Cierto, únicamente una parte pequeña de este babel de letras resulta imprescindible, y muchas secuencias de teclas aluden a funciones exóticas que sólo interesarán a una minoría de usuarios. Y las operaciones básicas de StumpWM no difieren de las de otros gestores de su tipo: alternar entre ventanas, moverlas por el mosaico, cambiar el tamaño de las celdas, saltar de un grupo a otro..., cosas cotidianas que uno hace asimismo en Awesome o I3. Incluso así, a pesar de estas circunstancias atenuantes, resulta que para desenvolverse con StumpWM es necesario memorizar más atajos de teclado que en otros entornos.
El área de notificaciones puede mostrar cualquier texto. Este calendario con reloj y florecitas, por ejemplo, es la salida de un script de Bash que preparé a tal efecto.
El control de los mosaicos, como ya he dicho, es manual: no hay aquí ninguno de los automatismos de los gestores dinámicos —Dwm, Awesome, etc—, uno va creando divisiones verticales y horizontales de la pantalla a voluntad, sin tener que plegarse a pautas predefinidas. Esto aporta mucha flexibilidad, pero naturalmente obliga a memorizar alguna combinación de teclas que de otro modo no resultaría necesaria.
Puede utilizarse el ratón para controlar el foco, y tal vez para alguna operación más. Pero no en la configuración por defecto del gestor, porque en este detalle es idéntica a la de Ratpoison: recurre al teclado para todo, incluso enfocar ventanas. Un poco confuso y frustrante para la gente acostumbrada a otros entornos más convencionales, mas luego se vuelve bastante natural —sí, de verdad, ¡lo prometo!—. Y como en principio todo se hace con secuencias de teclas, pues... Eso, a estudiar bien el panel de ayuda mencionado arriba.
Cada celda mostrará sólo una ventana. Y si en un grupo determinado existen más ventanas activas que celdas, las sobrantes quedarán ocultas, sin asociarse a ningún lugar concreto del mosaico, a la espera de que el usuario decida recuperarlas. Para ello existen varios atajos de teclado. Nótese que también es posible dejar una celda del mosaico vacía, por ejemplo ocultando la ventana que estuviera ocupándola —[Ctrl] + T, y [-]—. De modo que en StumpWM partes de la pantalla pueden permanecer libres y dejar visible el fondo del escritorio.
Y como novedad respecto a su predecesor... ¡Ventanas flotantes! Sí, el gestor concede graciosamente la posibilidad de definir grupos especiales que, en lugar de organizar las ventanas en mosaico, respetarán sus dimensiones originales y permitirán que el usuario las manipule con el ratón como en una interfaz gráfica más tradicional. Éste, claro, no es el terreno de natural de StumpWM, y aquí resulta muy limitado. En realidad esta característica existe para facilitar el uso de esos programas que no se adaptan bien al funcionamiento de los mosaicos: GIMP, por ejemplo, que gusta de repartirse en varias ventanas; o videojuegos, editores de imágenes y otro software que resulte incómodo encajado en celdas de tamaños arbitrarios. No he utilizado mucho esto, a decir verdad, ya que de un tiempo a esta parte mis sesiones con el ordenador suelen limitarse a un navegador web y terminales con texto.
Interfaz con colores diferentes, la Mode Line
arriba, e información meteorológica en el área de notificaciones. Una peculiaridad que StumpWM comparte con Ratpoison es que las celdas del mosaico pueden quedar vacías y dejar a la vista el fondo del escritorio.
La barra de estado tiene un valor meramente informativo, aunque resulta bastante flexible y hay varios módulos que le agregan funcionalidad: «cpu», «disk» o «wifi», entre otros, para mostrar información relativa al estado general del sistema —véase el directorio ~/.stumpwm.d/modules/modeline—. De todos modos, el área de notificaciones heredada de Ratpoison puede servir también para lo mismo, y preferir una solución u otra ya depende de las manías de cada cual. ¿Un reloj siempre visible en la barra de estado, o mejor invocarlo en un diálogo temporal sólo cuando quiera saber la hora?
En fin, ya veis que StumpWM trae de todo para todos. Y además quien adore escribir Lisp y tenga abundante tiempo libre puede modificarlo a placer y agregar locas funciones en las que no hayan pensado los autores. Yo no estoy demasiado predispuesto a ello, pero aun así he logrado aprovechar el área de notificaciones para mis propias chapuzas: hora y calendario con florecitas dibujadas con carácteres ASCII —gracias a Boxes —, clima y temperatura en localidades cercanas... ¿Y qué tal un diccionario interactivo? Sí, me inventé una rudimentaria integración de StumpWM con Dict
, lastrada por el hecho de que el gestor no maneja texto en Unicode y ni siquiera se entiende muy bien con las vocales acentuadas —puedo solicitar el significado de «caverna», mas no de «cavernícola»—; ahora, para un agloparlante estricto quizás resultaría un apaño satisfactorio.
¿StumpWM, siempre genial, entonces? Bueno, habría alguna pega que destacar... La que más he notado, cierta pesadez. Obviamente no estamos hablando de una ballena como Gnome, pero si es cierto que en situaciones de carga —supongamos que el ordenador se encuentra trabajando al máximo descifrando los aforismos de Mariano Rajoy— StumpWM se ralentiza. Y puede ralentizarse mucho, hasta el punto de demorarse varios segundos en reaccionar a las pulsaciones de teclas y volverse casi inutilizable. Así que seguramente no es la opción ideal para las máquinas más antiguas.
Si sabes Lisp todas las del mundo. Las más evidentes —colores de la interfaz, funciones de los atajos de teclado, etc— resultan relativamente accesibles.
El gestor viene con su manual, que por defecto se instala como un documento para GNU Info; cabe la opción de convertirlo a otros formatos, HTML o PDF. Muy completo —como texto en formato PDF se extiende más de noventa páginas—, aunque dada la envergadura del propio StumpWM es inevitable que deje detalles por aclarar.
Sí, ¡reto superado! Me he enfrentado a uno de los gestores de ventanas más huraños conocidos por el hombre, y he conseguido sobrevivir...
Desde luego no hablamos de software escrito para Manolita la secretaria y Juanito el jardinero. Al contrario: ¿te resultan incómodas las interfaces basadas en el ratón? ¿Adoras la inmediatez del teclado y las líneas de comandos? ¿Trabajas mayormente con terminales, editores de texto u hojas de cálculo? Y por último, aunque de importancia fundamental, ¿te gusta programar en Lisp, o al menos te interesa? Si la respuesta a todas estas preguntas es afirmativa, enhorabuena, perteneces al público objetivo de StumpWM, un grupo pequeño y muy selecto de personas que guardan celosamente sus saberes ocultos.
En cambio, ¿y si sólo deseas probar un gestor de mosaico sin complicarte la vida más de lo necesario? Entonces I3 o Larswm podrían ser una buenas sugerencias.
¡Más imágenes de StumpWM en acción!
![]() El gestor puede manejar también, de un modo muy básico, ventanas flotantes. En primer plano aparece un videojuego llamado Nether Earth |
![]() Cuando a StumpWM se le pasa código Lisp incorrecto —en el archivo de configuración, o desde la línea de comandos— ocurre esto. Este bloque de texto, por supuesto, resulta incomprensible para mí. |
![]() Existe un módulo llamado «swm-gaps» que permite que queden espacios libres entre las celdas del mosaico; aquí lo veis en acción. La finalidad de esto es sólo estética. |
![]() Otro mosaico con el módulo «swm-gaps» activado. Aunque lo interesante aquí es la lista de todas las ventanas de la sesión, clasificadas por grupo, que aparece en el área de notificaciones. Ojo, no se trata de un menú interactivo. |
![]() Ahí está, el área de notificaciones sirviendo de diccionario. Por desgracia StumpWM no admite texto en Unicode, y eso limitaría la utilidad de mi invento con cualquier idioma que no sea el inglés, al menos en sistemas Unix actuales. |
![]() Esta ayuda, una lista de los atajos de teclado más importantes, facilitó mucho mis primeras andanzas con StumpWM. |
![]() Arriba: Xmoontool |
![]() Tres columnas... No se trata de un arreglo muy cómodo, al menos en mi monitor: en uno moderno, panorámico, quizás sí que sirva. Sólo dispuse así las ventanas para ilustrar la versatilidad de los mosaicos en StumpWM. |
Bueno, pues os presento a mi archivo de configuración, mi queridísimo ~/.stumpwmrc. No se aleja demasiado de los ajustes por defecto, pero cuenta con dos novedades. El comando interno «ejecutar-notif
» hace eso, ejecuta y expone en el área de notificaciones la salida en terminal de cualquier programa. Y luego está «busdict
», que se vale del anterior para mostrar los resultados de consultas a diccionarios basados en Dict ; no es muy refinado mas puede servir como ejemplo.