Complete bspwm guide: the tiling window manager for Linux

Introducción a bspwm

bspwm (Binary Space Partitioning Window Manager) es un gestor de ventanas de tiling que ha ganado popularidad entre usuarios de Linux que buscan un entorno ligero y altamente configurable. En lugar de ofrecer un escritorio completo, bspwm se encarga únicamente de colocar y administrar las ventanas, dejando al usuario la libertad de elegir su propio panel, lanzador y otras utilidades. Este enfoque minimalista reduce el consumo de recursos, lo que lo hace adecuado tanto para hardware antiguo como para estaciones de trabajo de alto rendimiento donde se quiere aprovechar al máximo el espacio de pantalla.

¿Qué es bspwm?

bspwm divide la pantalla en regiones binarias mediante un algoritmo de partición espacial. Cada vez que se abre una nueva ventana, el gestor decide su posición basándose en la partición actual, lo que produce una disposición ordenada sin solapamientos. Su comportamiento se controla mediante archivos de configuración escritos en sintaxis de shell, lo que permite ajustar gaps, márgenes, relaciones de división y reglas específicas para aplicaciones sin necesidad de recompilar el código. La comunicación con el daemon sxhkd se encarga de los atajos de teclado, separando claramente la lógica de ventana del manejo de entradas.

Installation in popular distributions

En la mayoría de las distribuciones Linux, bspwm se encuentra disponible en los repositorios oficiales. En Ubuntu o Debian basta con ejecutar:

  • sudo apt update
  • sudo apt install bspwm sxhkd

In Arch Linux and derivatives:

  • sudo pacman -S bspwm sxhkd

In Fedora:

  • sudo dnf install bspwm sxhkd

Tras la instalación, es necesario iniciar la sesión mediante un archivo.xinitrco un gestor de inicio comolightdmorgdmque ejecuteexec bspwm. Muchos usuarios crean una entrada personalizada en/usr/share/xsessions/bspwm.desktoppara poder seleccionarla directamente desde el gestor de inicio gráfico.

Basic configuration

La configuración de bspwm se almacena en~/.config/bspwm/bspwmrc, un script de shell que se ejecuta al iniciar el gestor. Aquí se definen los gaps, el ancho de borde, el esquema de colores y las reglas para aplicaciones específicas. Un ejemplo sencillo podría ser:

  • bspc monitor -d I II III IV V VI VII VIII IX X
  • bspc config border_width 2
  • bspc config window_gap 12
  • bspc config split_ratio 0.50
  • bspc config borderless_monocle true
  • bspc config gapless_monocle true

Estas líneas crean diez escritorios virtuales, establecen un borde de 2 píxeles, un espacio de 12 píxeles entre ventanas, una relación de división del 50 % y activan los modos monocle sin bordes ni gaps. Al ser un script de shell, se pueden incluir condicionales, ejecutar comandos externos y aplicar temas dinámicamente según el hardware o la hora del día.

Atajos de teclado y el archivo sxhkd

sxhkd (Simple X HotKey Daemon) se encarga de capturar las combinaciones de tecla y traducirlas en acciones para bspwm. Su archivo de configuración,~/.config/sxhkd/sxhkdrc, sigue una sintaxis muy legible:

  • super + Return
  • alacritty
  • super + Shift + q
  • bspc node -c
  • super + {h,j,k,l}
  • bspc node -{west,south,north,east}

En este ejemplo,super + Returnlanza una terminal Alacritty,super + Shift + qcierra la ventana enfocada y las flechas consupermueven el foco en las direcciones cardinales. Gracias a la separación entre sxhkd y bspwm, es posible reutilizar el mismo daemon para otros gestores de ventanas o para lanzar scripts personales, lo que aumenta la modularidad del entorno.

Autostart y scripts de sesión

In additionbspwmrc, muchos usuarios añaden un script de autostart que se ejecuta al iniciar la sesión para lanzar paneles, applets y servicios auxiliares. Un típicoautostart.shmay contain:

  • #!/usr/bin/env bash
  • pgrep -x sxhkd > /dev/null || sxhkd &
  • picom --experimental-backends &
  • feh --bg-scale ~/Imágenes/fondo.jpg &
  • polybar ejemplo &
  • nm-applet &
  • xfce4-power-manager &

Este script asegura que sxhkd esté activo, inicia un compositor como picom para efectos de transparencia, establece el fondo de pantalla con feh, lanza una barra de estado como polybar y pone en marcha applets de red y gestión de energía. Al hacer el script ejecutable (chmod +x ~/.config/bspwm/autostart.sh) y llamarlo desdebspwmrcwith~/.config/bspwm/autostart.sh &, se consigue una sesión completamente funcional sin depender de un entorno de escritorio pesado.

Advantages and disadvantages

Entre las principales ventajas de bspwm destacan su bajo consumo de memoria y CPU, la gran flexibilidad de configuración mediante scripts de shell y la capacidad de crear flujos de trabajo totalmente personalizados. Además, al estar desacoplado de los componentes de escritorio, se pueden combinar con cualquier panel, lanzador o gestor de archivos que el usuario prefiera. Por otro lado, la curva de aprendizaje puede ser empinada para quienes provienen de entornos de escritorio tradicionales, ya que requiere edición manual de archivos de configuración y una comprensión básica de los conceptos de tiling y atajos de teclado.

Resources and community

La comunidad de bspwm es activa y se centra en su repositorio oficial en GitHub () y en el de sxhkd (). Allí se encuentran ejemplos de configuración, temas y scripts contribuidos por usuarios de todo el mundo. Además, existen varios subreddits como r/bspwm y canales de Discord donde se comparten capturas de pantalla, se resuelven dudas y se presentan nuevos trucos.

Conclusion

bspwm representa una opción poderosa para quienes desean tomar el control total de su entorno de trabajo en Linux. Su enfoque minimalista, basado en la partición binaria del espacio de pantalla y la configuración mediante scripts de shell, permite crear un escritorio tan ligero o tan elaborado como se desee. Aunque la inversión inicial en tiempo de configuración puede ser mayor que la de un entorno de escritorio convencional, el retorno en productividad, rendimiento y satisfacción personal suele justificar el esfuerzo. Si buscas un gestor de ventanas que se adapte a tus flujos de trabajo y que crezca contigo a medida que exploras nuevas herramientas, bspwm vale la pena probarlo.

This work is under aCreative Commons License Attribution 4.0 International for Francesc Roig francesc @ vivaldi.net.

EnglishenEnglishEnglish