Instalar bspwm en Fedora

bspwm

Guía técnica completa para entornos profesionales y docentes


🧭 1) ¿Qué es Fedora?

Fedora es una distribución GNU/Linux patrocinada por Red Hat, reconocida por su estabilidad, innovación y políticas de software libre.
Se caracteriza por incluir versiones actualizadas del kernel y paquetes, manteniendo a la vez una fuerte orientación a la seguridad mediante SELinux.

Ofrece múltiples ediciones o spins (GNOME, KDE, XFCE, i3, Sway, etc.), y sirve como base de prueba para tecnologías que luego se integran en Red Hat Enterprise Linux.

Ventajas principales:

  • Software siempre actualizado y probado.
  • Integración nativa con SELinux.
  • Excelente documentación y soporte de comunidad.

Desventajas:

  • Ritmo de actualización rápido (puede requerir mantenimiento periódico).
  • Algunas configuraciones avanzadas no vienen preinstaladas por defecto.

🪟 2) ¿Qué es bspwm?

bspwm (Binary Space Partitioning Window Manager) es un gestor de ventanas en mosaico (tiling) para X11.
Organiza las ventanas como un árbol binario, donde cada división crea un espacio asignado a una aplicación.
Se configura a través de scripts shell y se controla mediante bspc (un cliente que envía comandos al daemon bspwm).

Características técnicas:

  • Arquitectura modular:
    bspwm (daemon) + sxhkd (gestor de atajos) + bspc (cliente de control).
  • Sin configuraciones internas fijas: todo se maneja vía shell.
  • Extremadamente liviano y rápido.
  • Alta scriptabilidad: ideal para automatizar disposiciones de ventanas y flujos de trabajo.

⚖️ 3) Comparativa rápida: bspwm vs i3 vs Sway

Criteriobspwm (X11)i3 (X11)Sway (Wayland)
Backend gráficoXorgXorgWayland
FilosofíaScriptable (bspc + sxhkd)Declarativa y estableCompatible con i3, Wayland nativo
AtajosExternos (sxhkd)IntegradosIntegrados
Reglas de ventanasPotentes (bspc rule)Limitadas (for_window)Similares a i3
VM y compatibilidadExcelente (sin GPU 3D)ExcelenteRequiere virtio-gpu
Curva de aprendizajeMediaBajaMedia-alta
Ideal paraUsuarios avanzados y scriptingUsuarios nuevos o productivosEquipos modernos con Wayland

Conclusión:

  • bspwm es perfecto para quienes desean control total mediante scripts.
  • i3 es ideal para quienes priorizan simplicidad inmediata.
  • Sway es el futuro (Wayland), pero demanda hardware compatible.

🧰 4) Requisitos previos

  • Fedora instalado (Workstation, Server o Minimal).
  • Acceso a internet y privilegios sudo.
  • Un Display Manager (GDM, LightDM o SDDM).
  • Sistema gráfico basado en X11 (no Wayland).

💡 Si usas VM: GNOME Boxes / Virt-Manager (QEMU/KVM) brinda la mejor compatibilidad con tiling WMs.


⚙️ 5) Instalación paso a paso

Paso 1: Instalar los paquetes esenciales

sudo dnf install -y bspwm sxhkd rofi polybar picom alacritty feh

Paso 2: Crear las carpetas de configuración

mkdir -p ~/.config/{bspwm,sxhkd,polybar,picom}

Paso 3: Copiar las plantillas oficiales

cp /usr/share/doc/bspwm/examples/bspwmrc ~/.config/bspwm/
cp /usr/share/doc/bspwm/examples/sxhkdrc ~/.config/sxhkd/
chmod +x ~/.config/bspwm/bspwmrc

🧩 6) Configuración básica funcional

🧱 ~/.config/bspwm/bspwmrc

#!/bin/sh

bspc monitor -d 1 2 3 4 5 6 7 8 9 10

bspc config border_width         2
bspc config window_gap           8
bspc config split_ratio          0.52
bspc config border_focus_color   "#5294E2"
bspc config border_normal_color  "#444444"

# Lanzar servicios
pgrep -x sxhkd >/dev/null || sxhkd &
picom --config ~/.config/picom/picom.conf &
~/.config/polybar/launch.sh &
feh --bg-fill /usr/share/backgrounds/default.png 2>/dev/null &

⌨️ ~/.config/sxhkd/sxhkdrc

# Terminal
super + Return
  alacritty

# Menú de aplicaciones
super + d
  rofi -show drun

# Cerrar ventana
super + q
  bspc node -c

# Navegar entre ventanas
super + {h,j,k,l}
  bspc node -f {west,south,north,east}

# Mover ventanas
super + shift + {h,j,k,l}
  bspc node -s {west,south,north,east}

# Cambiar de escritorio
super + {1-9,0}
  bspc desktop -f '^{1-9,10}'

📊 ~/.config/polybar/launch.sh

#!/usr/bin/env bash
killall -q polybar || true
while pgrep -u "$UID" -x polybar >/dev/null; do sleep 0.5; done
polybar example & disown
chmod +x ~/.config/polybar/launch.sh

⚙️ ~/.config/polybar/config.ini

[bar/example]
width = 100%
height = 28
modules-left = workspaces
modules-right = date

[module/workspaces]

type = internal/xworkspaces

[module/date]

type = internal/date interval = 1 date = %Y-%m-%d %H:%M

💨 ~/.config/picom/picom.conf

backend = "xrender";
vsync = true;
shadow = false;
fading = false;

🚀 7) Iniciar bspwm

Con gestor de sesión (GDM/LightDM)

Cerrá sesión → seleccioná bspwm → iniciar sesión.

Sin display manager (modo consola)

sudo dnf install -y xorg-x11-xinit
echo 'exec bspwm' > ~/.xinitrc
startx

🧩 8) Solución de problemas comunes

ProblemaSolución
No responden los atajosAsegurate de que sxhkd está corriendo (pgrep -x sxhkd)
No aparece la barraVerificá ~/.config/polybar/launch.sh y permisos de ejecución
Parpadeo o sombras rarasEditá ~/.config/picom/picom.conf o no inicies picom
Pantalla negra inicialPuede deberse a fondo o compositor; comentá las líneas finales del bspwmrc
Atajos con tecla “Super” no funcionan en VMUsá Alt (Mod1) o habilitá “Grab keyboard” en tu hipervisor

📈 9) Cuándo elegir bspwm

Si querés…Elegí…
Control total, scripting y reglas personalizadasbspwm
Configuración rápida y establei3
Entorno Wayland modernoSway
Usarlo en VM sin GPU 3Di3 o bspwm

✅ 10) Resumen rápido

sudo dnf install bspwm sxhkd rofi polybar picom alacritty feh
cp /usr/share/doc/bspwm/examples/bspwmrc ~/.config/bspwm/
cp /usr/share/doc/bspwm/examples/sxhkdrc ~/.config/sxhkd/
chmod +x ~/.config/bspwm/bspwmrc

Luego:

  • Seleccioná bspwm al iniciar sesión (o startx).
  • Editá sxhkdrc y bspwmrc a gusto.
  • Disfrutá de un entorno minimalista, rápido y perfectamente scriptable.

🧠 Conclusión

bspwm en Fedora combina lo mejor de ambos mundos:
la base sólida y moderna de Fedora con la flexibilidad extrema de un tiling manager scriptable.
Ideal para usuarios avanzados, docentes o entornos donde la eficiencia, la reproducibilidad y el control fino son prioridad.

🧩 “bspwm no te impone un flujo de trabajo; te deja diseñarlo.”

Comentarios

2 respuestas a “Instalar bspwm en Fedora”

  1. B. Rev. Avatar
    B. Rev.

    Hi Dagorret,

    First of all, thank you for your excellent guide on installing BSPWM on Fedora. I followed it step by step and found it very clear and effective. However, I encountered a black screen after installation, which turned out to be caused by a corrupted ISO image. After verifying the checksum and reinstalling, everything worked perfectly.

    To help others who might face similar issues, I’d like to suggest a small addition to the end of your article — a “Post-installation verification” section. It could help users confirm that their setup is functional and offer quick solutions if something goes wrong.

    Here’s a draft you might consider:

    🛠️ Post-installation verification

    If you followed all the steps and encounter a black screen when launching BSPWM, try the following:

    Verify the ISO checksum before installation

    Use sha256sum or md5sum to confirm the image is not corrupted.
    Compare the result with the official checksum.

    Make sure bspwmrc is executable
    bash
    chmod +x ~/.config/bspwm/bspwmrc

    Add a terminal to .xinitrc to avoid a blank screen
    bash
    xterm &
    sxhkd &
    exec bspwm

    Switch to a TTY if the graphical session fails

    Press Ctrl + Alt + F3 to access a terminal.
    Run startx manually and check for errors.

    Ensure sxhkd is running

    Without it, keyboard shortcuts won’t work and you won’t be able to launch a terminal.

    🧭 Suggestions for next steps

    Once BSPWM is running, consider adding:

    A compositor: picom for transparency and shadows
    A status bar: polybar or lemonbar
    An application launcher: rofi
    A wallpaper manager: feh or nitrogen
    A custom terminal: alacritty, kitty, or st

    Thanks again for your work — your guide was a great starting point. I hope this addition helps others get up and running smoothly.

    Best regards,
    Carlos

    1. dagorret Avatar

      You’re absolutely right about making ~/.config/bspwm/bspwmrc executable — that’s an important step. Everything else can be customized to the user’s preference. Thanks for pointing it out!

      (Traducción: Tenés toda la razón respecto a hacer ejecutable ~/.config/bspwm/bspwmrc, es un paso importante. Todo lo demás queda a gusto del usuario. ¡Gracias por señalarlo!)

Responder a dagorretCancelar respuesta