Este es uno de los capítulos del tutorial Construye tu propio escritorio con bspwm. Encontrarás los enlaces a todos los de capítulos, al final de este artículo.
Como ya has podido observar durante estos días de uso de tu nuevo gestor de ventanas tipo mosaico, se trata de una herramienta muy espartana. Sin embargo, esto tiene una clara ventaja, y es que se trata de un gestor tremendamente ligero y adaptable a tus necesidades, en el sentido de que tu puedes elegir aquellas piezas para terminar de construir tu entorno de escritorio. Así, y a pesar de que es tremendamente espartano, puedes configuras las transparencias en bspwm y también sombras. No de forma directa, sino a través de otras herramientas. Cuando digo espartana, por supuesto me refiero a la situación que te encuentras nada mas instalarla, porque con el resto de complementos, que has ido instalando con el paso del tiempo, has visto que es un entorno de escritorio increíblemente atractivo y por supuesto muy personalizable. Así, es posible aplicar transparencias, sombras y efectos 3d en bswpm e i3.
Durante este tiempo de uso de bspwm
he probado diferentes aplicaciones y herramientas que me permitían configurar las transparencias y sombras en bspwm. Últimamente, la herramienta que utilizo por defecto es picom
, sobre la que tratará este nuevo capítulo del tutorial de bspwm, en la que te mostraré como aplicar efectos 3d en bspwm.
Transparencias, sombras y efectos 3d en bspwm e i3
Una de las grandes ventajas, y a la vez un inconveniente es que bspwm, al igual que sucede con otros tiling window manager o gestores de ventana de tipo mosaico, es solo hacen lo que dicen, es decir gestionar ventanas. Así no esperes que haga nada mas, y por ello, no esperes que tenga transparencias, sobras y efectos 3d. Realmente las transparencias, sombras y efectos 3d, tanto en i3 como en bspwm, como en otros tiling window manager es algo completamente accesorio, algo que realmente no necesitas.
Esto no quita a que si quieres darle un aspecto mucho mas personal, y porque no decirlo, mas atractivo, a tu entorno de escritorio, no quieras que tenga esas transparencias, sombras y efectos 3d. Pero ¿como hacerlo?
De nuevo, como todo, existe una gran cantidad y variedad de herramientas que te permiten hacerlo, y dotar a tu entorno de escritorio de estas opciones. En concreto, después de varias pruebas, me he decantado por picom.
picom
picom, es lo que se conoce como un compositor para Xorg. Se trata de un fork de compton que a su vez es un fork de otros compositorios. Este compositor te permite utilizar tanto sobras, como transparencias como otros efectos 3d.
Instalación
La instalación es tremendamente sencilla, tanto en distribuciones derivadas de Debian como en Manjaro o Arch. En ambos casos se encuentra en los repositorios oficiales. Para el primero de los casos, simplemente tienes que ejecutar la siguiente instrucción,
sudo apt install picom
Mientras que para el caso de Manjaro, Arch y derivados la instrucción a ejecutar es,
sudo pacman -S picom
Configuración
Una vez instalado el siguiente paso es realizar la configuración. Aquí te tengo que poner sobre aviso, configurar picom es tremendamente adictivo. Puedes pasar varias horas realizando la configuración de picom hasta dejarla exactamente a tu gusto.
En mi caso, y para evitar, precisamente, estar varias horas con la configuración de picom lo hago por partes. Cuando encuentro un detalle que quiero personalizar trabajo sobre él. Pero siempre sobre un único detalle.
Para comenzar con la configuración tienes que ejecutar la siguiente instrucción,
mkdir -p ~/.config/picom/
cp /etc/xdg/picom.con ~/.config/picom/picom.conf
Otra opción interesante y mientras andas configurando picom es utilizar una configuración alternativa. Para ello, tienes que indicar la ruta de esa configuración conforme te indico en la siguiente instrucción,
picom --config /ruta/a/tu/configuracion/alternativa/picom.conf
Esta segunda solución te permitirá probar y personalizar picom, sin alterar la configuración que estés utilizando por defecto.
De cualquier forma, indicarte que picom carga la configuración al vuelo. La tiene monitorizada. De esta forma cuando realizas cualquier cambio en la configuración por defecto, recarga la misma. De esta forma puedes ver los efectos conforme los aplicas.
Por otro lado, indicarte, que el archivo de configuración de picom está fantásticamente documentado. De esta forma, realizar cualquier modificación sobre el aspecto del mismo, es algo relativamente sencillo. Esto no quita, a que guardes una copia del mismo antes de aplicar efectos para evitarte una desagradable sorpresa.
Integración con bspwm
Para integrar picom
con bspwm
, he añadido las siguientes dos instrucciones en la cabecera del archivo de configuración de este último, es decir en ~/.config/bspwm/bspwmrc
,
pkill picom
picom -f --daemon --config "${HOME}/.config/picom/picom.conf" &
Esto me permite que al reiniciar el bspwm, también reinicio picom, y no tengo que andar con preocupaciones de si se ha reiniciado o no se ha reiniciado.
Personalización
Dentro de la configuración, de picom, tienes que tener algunas ideas básicas, para evitar precisamente realizar efectos cuyo resultado no sean nada convenientes. Un ejemplo claro son los sombreados en los menús. Por ejemplo puedes personalizar el comportamiento de determinados tipos de ventana de la siguiente forma,
wintypes:
{
tooltip = { fade = true; shadow = true; opacity = 1.0; focus = true; }
dock = { shadow = false; clip-shadow-above = true; }
dnd = { shadow = false; }
popup_menu = { opacity = false; shadow = false;}
dropdown_menu = { opacity = false; shadow = false}
};
De la misma forma, puedes excluir el sombreado utilizando las siguientes excepciones,
shadow-exclude = [
"name = 'Notification'",
"class_g = 'Rofi'",
"class_g = 'Conky'",
"class_g ?= 'Notify-osd'",
"class_g = 'Cairo-clock'",
"_GTK_FRAME_EXTENTS@:c"
];
En el caso de las transparencias o opacidades, yo tengo establecida la siguiente excepción o regla para mi terminal,
opacity-rule = [
"70:class_g = 'kitty' && !focused",
];
Y de la misma forma para el difuminado utilizo las siguientes exclusiones,
blur-background-exclude = [
"window_type = 'dock'",
"window_type = 'desktop'",
"_GTK_FRAME_EXTENTS@:c"
];
El log
Indicarte que en cualquier caso tienes la opción de habilitar mas información en el log, para el caso de que se produzca un error, y no sepas cual es la causa, o simplemente para estudiar el comportamiento del mismo. En cualquier caso, por defecto el nivel de log está establecido por defecto a aviso,
log-level = "warn";
Puedes cambiarlo al modo de depuración debug
para conseguir mas información.
El vídeo
Para que veas las posibilidades que te ofrece picom te acompaño este capítulo del tutorial de un vídeo que seguro te dará una idea de las posibilidades de este compositor.
Más información,
Imagen de portada de Marco Bianchetti en Unsplash
Hola. Estoy dando mis primeros pasos con wayland. Como compositor estoy probando Labwc, que es lo más parecido a Openbox que he encontrado. El resultado parece alentador, pero no consigo entender cómo sustituir los efectos de transparencias, sombras,etc, que en x11 gestionaba con Picom. Sé que en Wayland ya no hace falta, pero no encuentro ningún tutorial sobre como configurar esos efectos en un compositor de Wayland.
Gracias por anticipado.