Multimonitor, Muerte, Y Resurrección ==================================== 21 de Marzo, 2021 En lo que creo/espero que AHORA SI sea la última parte de esta saga, voy a documentar como estoy manejando este tema por estos días, luego de tantas idas y venidas y de probar cosas. La experiencia ha sido por demás interesante y entretenida por momentos, y en esta entrega ve la llegada de un "nuevo" participante del que no había dicho nada antes porque no era particularmente relevante para todo este tema, pero de repente se ha encontrado en el foco de toda esta historia. La manera en la cual yo uso bspwm en mi instalación de Void es a través de un servicio de usuario que se activa en cuanto arranco la sesión de X via `startx`. Varios experimentos que vine haciendo con bspwm y con inicio de sesión en un solo monitor, y a veces sin X (tema para un futuro artículo) me han llevado a esta conclusión. Cuando estoy a dos monitores usando la laptop, empleo otro servicio de usuario para cambiar mi fondo de pantalla 1 vez por hora. Pero tener wallpapers solamente en la laptop me parece un desperdicio porque el 99% no puedo verlos, y tener el terminal con transparencias es algo que me aburre medio rápido así que me puse a investigar una manera de solo tener el servicio de wallpapers exclusivamente cuando estoy usando el segundo monitor. Me puse a leer e intentar varias cosas para tal fin. Paralelamente también estaba haciendo experimentos con mi configuración de bspwm porque descubrí que se podía aplicar distinto grosor de bordes y espaciado entre ventanas a cada monitor, con lo cual empezó a ser todo una tarea conjunta lo de tener 2 configuraciones distintas según fuera el caso. Así fue como llegue al estado actual de cosas, a saber: - No uso mas los scripts de antes, pero no los borré porque son útiles y funcionan lo más bien. - Todo el chequeo de cantidad de monitores ahora se hace en un único lugar en vez de hacerlo varias veces según los scripts. - La configuración de bspwm es o una u otra. Seguramente se pueda recargar en caliente llegado el caso, pero eso es una exploración para otro momento. El fragmento relevante de mi `xinitrc` es este: ``` conectados=$(xrandr | awk '( $2 == "connected" ) { count++ } END { print count }') if [ "$conectados" = 2 ]; then monis & exec runsvdir -P ~/.local/service.2x else exec runsvdir -P ~/.local/service.x fi ``` `service.2x` es la carpeta que contiene los servicios que se ejecutan cuando se detecta el segundo monitor, que en este caso son el de fondo de pantalla y bspwm con la configuración para ambos monitores.