Está en la página 1de 4

bspwm (Español)

Jump to navigationJump to search

Artículos relacionados

bspwm/Example configurations
Window manager
Comparison of tiling window managers
Tango-preferences-desktop-locale.pngEste artículo o sección necesita ser
traducido.Tango-preferences-desktop-locale.png

Notas: Desactualizado. (Discusión en Talk:Bspwm (Español)#)


bspwm es un gestor de ventanas tipo mosaico que organiza las ventanas en un árbol
binario completo. Tiene soporte para EWMH y múltiples monitores, y se configura y
controla a través de mensajes.

Contents
1 Instalación
2 Configuración
2.1 Para múltiples monitores
2.2 Reglas
2.3 Paneles
2.4 Scratchpad
2.5 bspwmrc como script
3 Solución de problemas
3.1 Aparece una pantalla negra y las combinaciones de teclas no funcionan
3.2 Una aplicación no ocupa todo el espacio de su ventana
3.3 Problemas con aplicaciones Java
4 Véase también
Instalación
Instale bspwm y sxhkd, o las versiones en desarrollo: bspwm-gitAUR y sxhkd-gitAUR.
sxhkd es un simple servicio de combinaciones de teclas usables dentro de X,
requerido para comunicarse con bspwm y lanzar aplicaciones a elección.

Para comenzar bspwm al iniciar sesión, añada lo siguiente a ~/.xinitrc o


~/.xprofile (dependiendo de cómo ha escogido iniciar X):

sxhkd &
exec bspwm
Configuración
Puede encontrar ejemplos de configuración en /usr/share/doc/bspwm/examples/ y en
GitHub.

Cree los directorios ~/.config/bspwm/ y ~/.config/sxhkd/, y luego copie


/usr/share/doc/bspwm/examples/bspwmrc a ~/.config/bspwm/ y
/usr/share/doc/bspwm/examples/sxhkdrc a ~/.config/sxhkd/. En estos dos archivos se
definirán las configuraciones y las combinaciones de teclas, respectivamente. Por
último, haga que el archivo bspwmrc sea ejecutable, con chmod +x
~/.config/bspwm/bspwmrc.

Nota: Asegúrese de que su variable de entorno $XDG_CONFIG_HOME esté indicada en el


sistema, o su bspwmrc no será tomado en cuenta. Para indicarla, escriba
XDG_CONFIG_HOME="$HOME/.config" y export XDG_CONFIG_HOME en ~/.profile, en líneas
aparte.
Las opciones de configuración para cada archivo se encuentran enlistadas y
descritas en bspwm(1) y sxhkd(1).

Para múltiples monitores


El ejemplo de bspwmrc configura diez escritorios para un sólo monitor:

bspc monitor -d I II III IV V VI VII VIII IX X


Esa línea tendría que ser dividida para cada monitor:

bspc monitor DVI-I-1 -d I II III IV


bspc monitor DVI-I-2 -d V VI VII
bspc monitor DP-1 -d VIII IX X
Para averiguar el nombre de sus monitores, puede escribir xrandr -q o bspc query -M
en su terminal.

En el ejemplo anterior, el número total de escritorios fue limitado a diez. Esto es


para que cada escritorio pueda ser invocado con 'super + {1-9,0}', de acuerdo a al
ejemplo de sxhkdrc. La tecla de inicio de Windows es denominada universalmente como
'super', y es la más utilizada en el ejemplo de sxhkdrc.

Reglas
Hay dos formas de definir reglas para el comportamiento de ventanas (a partir de
cd97a32).

La primera consiste en usar el comando de regla integrado (bspc), como se muestra


en el ejemplo de bspwmrc:

bspc rule -a Gimp desktop=^8 follow=on state=floating


bspc rule -a Chromium desktop=^2
bspc rule -a mplayer2 state=floating
bspc rule -a Kupfer.py focus=on
bspc rule -a Screenkey manage=off
La segunda opción consiste en usar un comando de regla externo. Esto es más
complejo, pero permite diseñar reglas más específicas. Vea estos ejemplos.

Si alguna ventana desobedece a bspwmrc, asegúrese de que la regla correspondiente


invoque al programa con el sinónimo ejecutable de su nombre oficial. Puede
averiguar dicho sinónimo, ejecutando: xprop | grep WM_CLASS (requiere tener xorg-
xprop instalado).

Paneles
Aparte de los ejemplos de bspwmrc y de sxhkdrc, en la carpeta examples se encuentra
un ejemplo para integrar un panel lemonbarAUR. Para aprender más acerca de su uso,
visite nuestra entrada de lemonbar. Revise las dependencias opcionales que pueda
necesitar para su configuración deseada.

El panel se ejecuta incluyendo la línea panel & en su bspwmrc.

Para visualizar información del sistema en la barra de estado, se puede usar


diversas llamadas al sistema. El siguiente ejemplo le enseñará a conseguir que su
panel muestre el estado del volumen de audio:

panel_volume()
{
volStatus=$(amixer get Master | tail -n 1 | cut -d '[' -f 4 | sed
's/].*//g')
volLevel=$(amixer get Master | tail -n 1 | cut -d '[' -f 2 | sed
's/%.*//g')
# ¿está alsa en mute o no?:
if [ "$volStatus" == "on" ]
then
echo "%{Fyellowgreen} $volLevel %{F-}"
else
# si está en mute, que la fuente sea roja:
echo "%{Findianred} $volLevel %{F-}"
fi
}
Luego, verificaremos que es invocado y redirigido a $PANEL_FIFO:

while true; do
echo "S" "$(panel_volume) $(panel_clock) > "$PANEL_FIFO"
sleep 1s
done &
Scratchpad
Se puede emular un scratchpad (un terminal invocado en cualquier lugar del
escritorio para ejecutar un comando específico), añadiendo una combinación de
teclas para su invocación con xdotool:

xdotool search --onlyvisible --classname scratchpad windowunmap \


|| xdotool search --classname scratchpad windowmap \
|| st -c scratchpad -g 1000x400+460 &
y añadiendo esta regla:

bspc rule -a scratchpad sticky=on state=floating


Véase [1] y [2].

Para un scratchpad que prescinda de reglas pre-definidas, véase: [3]

Para un scratchpad con más sofisticación de comportamiento, instale tdrop-gitAUR.

bspwmrc como script


Dado que bspwmrc es un script (guión de comandos), usted puede hacer con él cosas
como éstas:

Configuraciones diferentes para cada monitor:

#! /bin/sh

if [[ $(hostname) == 'myhost' ]]; then


bspc monitor eDP1 -d I II III IV V VI VII VIII IX X
elif [[ $(hostname) == 'otherhost' ]]; then
bspc monitor VGA-0 -d I II III IV V
bspc monitor VGA-1 -d VI VII VIII IX X
elif [[ $(hostname) == 'yetanotherhost' ]]; then
bspc monitor DVI-I-3 -d VI VII VIII IX X
bspc monitor DVI-I-2 -d I II III IV V
fi

Que todas las ventanas sean flotantes:

#!/bin/bash

# change the desktop number here


FLOATING_DESKTOP_ID=$(bspc query -D -d '^3')

bspc subscribe node_manage | while read -a msg ; do


desk_id=${msg[2]}
wid=${msg[3]}
[ "$FLOATING_DESKTOP_ID" = "$desk_id" ] && bspc node "$wid" -t floating
done

(fuente)
Solución de problemas
Aparece una pantalla negra y las combinaciones de teclas no funcionan
Primero que todo, una pantalla negra significa que bspwm está funcionando. Respecto
a las combinaciones de teclas, verifique que usted haya seguido los pasos
correctamente. Si lo había hecho así, entonces incluya la ejecución de un emulador
de terminal en ~/.xinitrc:

sxhkd &
[su terminal de preferencia] &
exec bspwm
Habiendo iniciado X con startx, usted tendrá su emulador de terminal dispuesto.
Ahora, tipee pidof sxhkd. Si el comando no devuelve un número, inténtelo de nuevo
asociando sxhkd con sxhkdrc explícitamente, ejecutando pidof sxhkd -c
~/.config/sxhkd/sxhkdrc.

También puede intentar cambiando la tecla 'super' por 'Alt', en sxhkdrc.

Una aplicación no ocupa todo el espacio de su ventana


Esto puede pasar si está usando aplicaciones GTK3, y especialmente en el caso de
los cuadros de diálogo. Si se trata de eso, añada lo siguiente a ~/.config/gtk-
3.0/gtk.css:

.window-frame, .window-frame:backdrop {
box-shadow: 0 0 0 black;
border-style: none;
margin: 0;
border-radius: 0;
}

.titlebar {
border-radius: 0;
}
(fuente: foro de bspwm)

Problemas con aplicaciones Java


Si, por ejemplo, las aplicaciones Java no pueden cambiar de tamaño o sus menús se
cierran espontáneamente, véase Java#Gray window, applications not resizing with WM,
menus immediately closing.

También podría gustarte