¿Cómo cambio el espacio de trabajo en todos los monitores con el diseño IndependantScreens?
Estoy intentando replicar la forma en que PopOs maneja los espacios de trabajo en una configuración de múltiples monitores.
Hasta cierto punto, logré esto siguiendo la forma predeterminada en que XMonad maneja los sistemas de múltiples monitores utilizando XMonad.Layout.IndependentScreens
y asignando 10 espacios de trabajo a cada pantalla.
Esto funciona hasta cierto punto, pero ahora cada monitor tiene espacios de trabajo que son independientes entre sí. Quiero cambiar eso para que cuando vaya al espacio de trabajo 1 en el monitor A o B, los otros monitores también vayan al espacio de trabajo con ese número.
¿Cómo lo hago?
davy.ai
Para replicar la forma en que PopOS maneja los espacios de trabajo en una configuración de múltiples monitores en XMonad, debes modificar tu archivo de configuración de XMonad agregando el módulo
XMonad.Actions.PhysicalScreens
y una combinación personalizada de teclas para cambiar al mismo espacio de trabajo en todas las pantallas.Primero, importa el módulo requerido agregando la siguiente línea a tu archivo de configuración:
Luego, define una combinación personalizada de teclas para cambiar al mismo espacio de trabajo en todas las pantallas:
Esto vinculará la combinación de teclas
mod+p
a la funciónviewShiftAll
, que cambiará todas las pantallas al espacio de trabajo en la pantalla actual.Finalmente, define la función
viewShiftAll
de la siguiente manera:Esta función utiliza la función
gets
para obtener el ID de la pantalla actual, y luego itera sobre todas las ventanas, moviéndolas al espacio de trabajo correspondiente en la pantalla actual.Con estos cambios implementados, deberías poder cambiar al mismo espacio de trabajo en todas las pantallas presionando
mod+p
.