• Bspwm

Versión analizada

0.9.5, publicada el 8 de abril de 2018.

Mientras probaba el gestor y escribía este artículo, en febrero de 2019, han aparecido dos versiones más: la más reciente en este momento es la 0.9.7.

Página oficial

https://github.com/baskerville/bspwm

Estado actual

Hablamos de un proyecto bastante activo, como prueban las versiones que van viendo la luz con cierta asiduidad —hasta ahora, de media, dos o tres por año—. Entre los usuarios de gestores de mosaico ha despertado interés, y por ello resulta fácil encontrar información en Internet. Sospecho que no es tan popular como Awesome o I3, pero tiene su público.

Características resumidas

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

Descripción


Captura de Bspwm

Mi primer día con Bspwm. Tres ventanas —a la izquierda, Mxkill — comparten el escritorio, formando un sencillo mosaico.


Bspwm es un gestor de ventanas de mosaico creado por Bastien Dejean («Baskerville» como nombre de guerra). A estas alturas lo veo improbable, mas si algún lector ha aterrizado aquí sin conocer el concepto le sugiero que acuda a la sección correspondiente del glosario. Lo importante, en todo caso, es que en este tipo de interfaces las ventanas no se apilan ni se desplazan libremente por el escritorio, sino que se ordenan unas junto a otras hasta repartirse todo el espacio disponible. La ideas básicas son aprovechar al máximo la pantalla y permitirle al usuario abarcar sus tareas en un único vistazo.

Su desarrollo comenzó en 2012, así que en el momento en que escribo esto hablamos de un trabajo relativamente moderno. Basado en la biblioteca XCB, requiere por ello una instalación más o menos reciente del X Window System.

Bspwm es un programa pequeño con un enfoque minimalista. De hecho el gestor en sí —un ejecutable llamado, previsiblemente, bspwm— se limita de forma estricta a eso, manejar ventanas; y ni siquiera recibe por sí mismo eventos del teclado. Sólo permanece a la espera de que se le envíen órdenes mediante una herramienta concebida a tal efecto, bspc, que por supuesto se incluye en el paquete. Pero obviamente no resultaría práctico llamar a bspc desde una terminal cada vez que se desee realizar cualquier tipo de operación. ¿Cómo controlar Bspwm, entonces? Bien, para ello se espera que el usuario recurra a alguna utilidad independiente que asocie comandos del sistema a combinaciones de teclas. Baskerville recomienda una de su creación, Sxhkd , aunque en principio otras también podrían servir —Xbindkeys , Xchainkeys para gente de gustos más rebuscados, etc—.

Resumo el párrafo anterior en un ejemplo: Sxhkd detecta que algún homínido ha pulsado juntas [Windows] y F, e invoca a bspc —para ser exactos se ejecuta la orden «bspc node -t fullscreen»—, que a su vez le indica a Bspwm, «amplía la ventana enfocada a pantalla completa, ya». Así funciona esto.


Captura de Bspwm

Trabajando en una hoja de cálculo con Gnumeric, y configurando el navegador Elinks —esto en la terminal de la esquina inferior izquierda—. Nótese ese discreto espacio que deja Bspwm entre las ventanas.


No tratamos, por lo demás, con un gestor dinámico al estilo de Dwm o Xmonad, en el que los mosaicos se organicen de un modo automático y de acuerdo a un esquema fijo, con áreas de trabajo y de pila bien diferenciadas. Pero tampoco sigue los pasos de gestores manuales como Ratpoison o StumpWM, en los que el usuario cuenta con un control total y va creando una por una cada partición de la pantalla. Viene a tomar un camino intermedio, que permite aproximarse un poco a ambos estilos de funcionamiento.

Diré que, aunque austero y ciertamente liviano —el archivo ejecutable pesa unos humildes 175 KB, un cavernícola podría almacenarlo en un disquete de tres pulgadas para su Amstrad CPC —, Bspwm no renuncia a algunas características que en la actualidad casi cabría considerar imprescindibles. Hay escritorios virtuales, y un manejo rudimentario de ventanas flotantes, y cierta compatibilidad con el estándar EWMH; y como propina también soporte para combinar varios monitores, mediante la extensión Xinerama del X Window System. En cambio no se dibuja otra decoración que un discreto borde alrededor de cada ventana, que cambia de color para señalar la que se halle enfocada: nada de títulos para ellas, ni mucho menos paneles de información u otros accesorios.

La configuración del gestor viene descrita en el fichero bspwmrc. Éste consiste en un sencillo script para el intérprete del sistema —Bash, Zsh, etc—, con una serie de llamadas a bspc para ajustar los detalles deseados. ¿Y dónde se encuentra dicho archivo? Pues para determinar el lugar se siguen las especificaciones oportunas de Freedesktop sobre interoperabilidad , que en este caso hablan de un árbol de directorios al que se hace referencia en la variable de entorno $XDG_CONFIG_HOME, y... Bueno, no nos liemos: en la gran, gran mayoría de instalaciones de Linux, BSD y similares, la ruta es ~/.config/bspwm/. Nótese que los programas usados para leer la actividad del teclado —Sxhkd, Xbindkeys, etc— se configuran por separado y con los métodos propios de cada uno.

Primeras impresiones

Me las prometía felices. Empecé mis andanzas con Bspwm justo después de haber usado durante un mes StumpWM, una réplica de Ratpoison escrita en Lisp y que debe configurarse también en Lisp. Para un simple aficionado como yo no tiene nada de fácil. Y sin embargo, ¡lo logré! E incluso me gustó. Así que, feliz por haber superado esa prueba, mi estado de ánimo al enfrentarme a este nuevo gestor era algo como «he dominado StumpWM, ¡ya nada puede detenerme!».


Captura de Bspwm

En el borde superior, una barra de estado (Dzen ). En la terminal de la izquierda aparece parte del script de Bash correspondiente: con Dzen pueden conseguirse arreglos bastante elaborados, pero tiene su complicación.


Lo primero que hice fue comprobar que, en efecto, Bspwm resulta inutilizable en solitario: se necesita otro programa que lea la actividad del teclado y ejecute los comandos de bspc correspondientes. Hice caso al autor e instalé Sxhkd, entre otros motivos porque con el código fuente del gestor se adjunta una configuración ya preparada para él —véase el archivo examples/sxhkdrc—. Los atajos de teclado definidos en ella se apoyan en la tecla [Windows], que en Linux normalmente permanece sin uso: esto realmente me parece muy bien, y evita que interfieran con los de las demás aplicaciones.

Dediqué mi sesión inaugural a abrir y cerrar terminales: cada nueva ventana implicaba una división del mosaico, que se efectuaba sin intervención por mi parte, a la manera de un gestor dinámico. Sin embargo... ¿Cuál es el criterio con el que se ordenan y se reparten el espacio de la pantalla? Vi que seis ventanas abiertas en un mismo escritorio adoptan tamaños decrecientes y se distribuyen en forma de espiral: no se me antojó un arreglo cómodo. ¿Pero puede operar Bspwm de otro modo?

Acudí a la documentación en busca de respuestas. El texto explicativo del sitio oficial del proyecto se inventa términos propios y habla por ello del «árbol», y sus «nodos», «nodos internos» y «hojas»; resulta confuso, y más allá de generalidades no conseguí entender gran cosa. Y la página de manual del gestor consiste en una larga lista con las posibles órdenes y opciones que admite bspc, y me pareció abigarrada, un auténtico prodigio de oscuridad apenas comprensible. En principio tampoco me sirvió de mucho.

¿Qué hacer, entonces? Pues revisar los atajos de teclado definidos para Sxhkd en el fichero ~/.config/sxhkd/sxhkdrc, e ir probándolos a ver qué cosas ocurren... Y así, poco a poco, experimentando durante dos o tres tardes, aprender a manejar el gestor. Sí, sin duda se trata de una pieza de software bastante más simple que StumpWM, mas para un recién llegado casi igual de huraña. Me hubiera encantado disponer de algún tipo de guía práctica de uso o similar.

Un detalle llamativo es que Bspwm ordena las ventanas en mosaico, pero dejando un pequeño espacio libre entre ellas; veo que los entendidos denominan a esto «gaps». Esto supone desperdiciar una cantidad irrelevante del área de la pantalla. A mí no me disgusta, crea cierta sensación de armonía, si bien tampoco se me antoja un rasgo especialmente valioso. Mucha gente, en cambio, discrepa, y adora estos huecos vacíos; y por ello existe, por ejemplo, una variante de I3 creada a propósito para disfrutar de ellos .

Usando Bspwm

Mes y medio con él. Como ya he dicho arriba, en combinación con Sxhkd, que respecto a Xbindkeys tiene la ventaja de que contar con una configuración ya escrita por Baskerville. ¿Qué tal la experiencia?


Captura de Bspwm

Bspwm también permite dividir manualmente las celdas del mosaico. En este caso me dispongo a hacerlo con la terminal que ocupa la parte izquierda de la pantalla: su mitad inferior aparece destacada en amarillo porque en ese espacio se instalará una nueva ventana.


Bueno, como sucede con casi todos los gestores de mosaico, su control se realiza casi siempre con el teclado: intercambiar ventanas entre celdas, modificar sus dimensiones, saltar de un escritorio virtual a otro... El ratón quedaría relegado a desplazar el foco de una ventana a otra, pero incluso en ese cometido cabría prescindir de él. Eso sí, las combinaciones de teclas a memorizar son numerosas: las más básicas sumarían cerca de una veintena, aprovechar características más avanzadas de Bspwm implicaría quizás el doble. Carece pues en gran medida de la inmediatez y la simplicidad de gestores dinámicos como Catwm o Larswm.

Y resulta que a la hora de ubicar una nueva ventana en el mosaico al usuario se le ofrecen dos métodos diferentes:

Automático:
El que he descrito antes, en mis «primeras impresiones». Uno arranca el programa deseado y deja que Bspwm lo coloque a su aire, como mejor considere. Esto es, ocupando la celda que posee el foco; y desplazando la ventana que residía en ella anteriormente, y las que se encuentren por debajo de ella en la jerarquía, a otros espacios progresivamente más pequeños. Varias de estas divisiones consecutivas terminan por componer con las ventanas una figura muy parecida a una espiral. (Véanse las capturas de pantalla que acompañan al artículo. Esto lo describe el autor en la página oficial y en el archivo README.md del código fuente, aunque los detalles de esa explicación ciertamente se me escapan).
Manual:
El usuario escoge en la celda activa qué parte de ella se tomará para la ventana que se va a abrir —bien arriba, abajo, a la izquierda o a la derecha: en la configuración por defecto, [Windows] y K, J, H y L respectivamente—, y de forma opcional cuánto espacio tomar —[Windows] y algún número entre el 1 y el 9—. El área elegida aparecerá a continuación resaltada en amarillo, y se convertirá en una celda nueva del mosaico en cuanto aparezca la siguiente ventana. Esta forma de funcionar se aproxima mucho a la de gestores manuales puros como Ratpoison.

Durante una sesión normal de trabajo uno va alternando entre ambas modalidades, según lo necesite. Probablemente recurrirá a particiones automáticas cuando hay pocas ventanas en el escritorio —una, dos o tal vez tres—, para luego dividir manualmente las celdas resultantes. De todas maneras mi experiencia sugiere que con más de cuatro o cinco ventanas visibles al mismo tiempo va costando un poco desenvolverse con naturalidad. Es posible que monitores más grandes que el mío —diecinueve pulgadas, 1280x1024 píxeles— faciliten el manejo de mosaicos muy concurridos, si bien dudo que una persona pueda ser realmente productiva si debe repartir su atención entre tantas cosas abiertas.


Captura de Bspwm

Para consultar rápidamente los atajos de teclado me preparé esta ventana de ayuda con los más importantes. En realidad se trata de una terminal mostrando un archivo de texto con less, asociada a la combinación de [Windows] y A.


Bspwm también puede manejar de forma primitiva ventanas flotantes, al estilo de un entorno de escritorio convencional. Más que nada porque hay programas que resultan mucho más confortables con las interfaces a su tamaño natural, y no aceptan bien las dimensiones arbitrarias de una celda del mosaico. ¿Ejemplos? Muchos videojuegos, o algunas aplicaciones que trabajan con imágenes. Comentaré además los casos de relojes y otros pequeños accesorios informativos; probablemente convendrá dejarlos flotando fuera del mosaico, en un rincón fijo, antes que tenerlos saltando de forma confusa de una celda a otra —lo ideal, de todos modos, sería utilizar un panel—.

Ah, sí, paneles o barras de estado... Siempre pueden venir bien para ver la hora e información diversa sobre el sistema y otros asuntos. Bspwm no incluye ninguno, mas el autor recomienda Lemonbar , y de hecho en el subdirectorio examples del código fuente ofrece una configuración de muestra para él. Yo no tuve mucho éxito con esta sugerencia, pero por suerte Linux es un mundo loco de alternativas y nada impide probar otras herramientas como Bmpanel2, Xmobar, Yabar..., incluso soluciones más exóticas como Conky o Xosview . Yo por mi parte rescaté Dzen , que me encanta, y dediqué varias horas de mi vida a preparame una barra de estado a mi gusto, con el nombre de la ventana activa, fecha y hora, y los datos meteorológicos de localidades cercanas; esto me sirvió de juego mental y me hizo aprender un poco de programación en Bash.

Lo cierto es que este gestor puede parecer al principio básico y poco hospitalario, pero bajo esa faz antipática esconde bastante funcionalidad. Permite, por ejemplo, establecer reglas exclusivas para ciertas ventanas —hagamos que el reproductor de música Audacious se abra siempre en el tercer escritorio virtual, o que Xclock sea visible en todos ellos y se maneje además como ventana flotante—. También elegir vuestro modelo de enfoque preferido, o mostrar ventanas a pantalla completa. Incluso minimizarlas —ocultándolas—, aunque se trate de una operación atípica en un gestor de mosaico y resulte complicado restaurarlas después.


Captura de Bspwm

Un escritorio en color verde, en homenaje a los antiguos monitores monocromo que aún llegué a usar en mi niñez. Mierda, me estoy haciendo más viejo que la pirámide de Keops... Oh, arriba y a la izquierda pueden leerse las características de mi sistema.


Un usuario con los conocimientos y la paciencia necesarios sin duda le sacará mucho partido a Bspwm. Se presta de forma natural a las chapuzas imaginativas: configúralo y dale órdenes desde tu intérprete de comandos favorito, experimenta con los accesorios que más te gusten —y, gracias a que cumple en cierta medida el estándar EWMH, funciona incluso algún paginador—... Esto es genial para ese grupo concreto de usuarios que disfrutan construyéndose entornos a medida, seguramente el tipo de gente que lee esta página. Sin embargo para un público más general, que sólo desea usar el ordenador con los menores dolores de cabeza posibles, lo veo muy poco aconsejable: incluso comparado con otros gestores de mosaico Bspwm se me antoja arisco y difícil.

Opciones de personalización

Se permite ajustar gran variedad de detalles: entre otras cosas, colores y tamaño del borde de las ventanas, el espacio de separación entre ellas, el modelo de enfoque, la cantidad de escritorios virtuales —y su nombre, aunque no sé para qué se emplea—, y algunos parámetros que afectan a la división automática de los mosaicos. También es interesante la posibilidad de definir ajustes específicos para determinadas aplicaciones.

En fin, creo que la mayoría de usuarios quedarán satisfechos en este aspecto.

Documentación

La página de manual es muy completa y explica, a su manera, casi todas las posibilidades de Bspwm. Sí, escribo «a su manera», porque se trata de uno de los textos de ayuda menos accesibles que he encontrado en un programa informático. Sirve para hacer consultas, resolver dudas concretas, y a base de verlo y ojearlo una y otra vez el lector aprende a orientarse en él.

El archivo README.md del código fuente es una réplica del texto de presentación de la página web del gestor. Intenta describir su funcionamiento básico, de nuevo «a su manera»... Al menos yo sí acabé un tanto confuso la primera vez que lo leí, aunque los conceptos más fundamentales quedan más o menos claros.

No, no hay ninguna guía de uso los para recién llegados, con ejemplos y consejos para ir aprendiendo con cierta facilidad; nada remotamente parecido a la fantástica Guía del Usuario de I3. Lo siento (carita de gatito triste, o algo).

Aciertos

Inconvenientes


Captura de Bspwm

Mi barra de estado puede desplegarse y mostrar líneas adicionales al pasar el ratón sobre ella. Y en el borde inferior se asoma el siempre útil Dmenu . El fondo del escritorio es un salvapantallas animado llamado Xmatrix .


Conclusión

Bspwm no se cuenta entre los gestores de mosaico más comprensibles para personas sin experiencia; de hecho parece concebido para el público opuesto, esa gente que disfruta con los experimentos, tomando un programa y moldeándolo para satisfacer sus gustos. Reconozco que al principio apenas me gustó, aunque he ido acostumbrándome a él y al final lo he encontrado relativamente cómodo. Siguen sin convencerme demasiado sus métodos para dividir y organizar las ventanas.

Relativamente popular, y puedo entender el por qué: al fin y al cabo trae funcionalidad para todos los gustos. Pero esos usuarios prácticos y poco inclinados a resolver puzles informáticos seguramente harán mejor en quedarse con I3 o Dwm.

 

Artículo escrito el 17 de marzo de 2019.


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