Espacio de trabajo separado para la segunda pantalla

16

Me gustaría lograr un comportamiento como este: cuando uso la pantalla de mi computadora portátil se usa mi primer espacio de trabajo. Cuando conecto una segunda pantalla (a través de HDMI), se utiliza un segundo espacio de trabajo y todas las nuevas ventanas abiertas en esta segunda pantalla aterrizarán en el segundo espacio, excepto que cambie el espacio de trabajo en la segunda pantalla a otro espacio de trabajo.

Cuando desconecte mi segunda pantalla, todas las ventanas permanecerán en los espacios de trabajo en los que se crearon y puedo cambiar los espacios de trabajo en mi computadora portátil para verlas.

¿Es este comportamiento ya posible?

velop
fuente
Ya logré habilitar espacios de trabajo con Apariencia -> Comportamiento y espacios de trabajo verticales deshabilitados con el Administrador de configuración de CompizConfig. También hay complementos de Expo y Viewport Switcher que parecen ser capaces de hacer lo que quiero, pero me da miedo cambiar la configuración sin saberlo.
velop
Tu pregunta es un poco confusa. Si está pidiendo hacer pantallas como dos espacios de trabajo separados, entonces la respuesta es no, no es posible. Si solicita cambiar automáticamente el número de espacios de trabajo al conectar la segunda pantalla, entonces eso es posible. Por favor aclare / simplifique lo que está preguntando
Sergiy Kolodyazhnyy
2
Encontré la opción Compiz -> Muro de escritorio -> Cambio de ventana gráfica -> Comportamiento multimonitor -> Cambiar por separado. Pero aparentemente esto no funciona.
velop
@velop, ¿puedes editar estos comentarios en la pregunta?
SDsolar

Respuestas:

1

¿Es este comportamiento ya posible?

Todo es posible en Linux. Necesitará algunos conocimientos básicos sobre el Xserver , algo de tiempo y un sistema para probar, ya que está jugando con su X y ciertamente necesita que se ejecute el navegador si necesita ayuda :-)

En mi opinión, hay tres posibles soluciones:

  • Las configuraciones multimonitor utilizan Xinerama . La solución más simple que se me ocurre es agregar una tercera pantalla virtual a su configuración y simplemente mover las ventanas allí usando xdotool. Hay algunas desventajas en esta solución, pero no requeriría el esfuerzo de mover ventanas entre diferentes servidores X, lo que en general no es posible.

  • Como no es posible mover ventanas entre diferentes servidores X , necesitamos un tipo de proxy como xmove o Xpra para hacer esto por nosotros. Creo que las ventanas viven en una sesión Xfvb separada para ocultar las ventanas. Puede adjuntar y separar a la sesión.

  • Independientemente del método que esté utilizando, necesita un evento cuando el monitor se desconecte. El evento debe activarse cuando la pantalla se desconecta y también cuando se vuelve a conectar. Puede demonizar la secuencia de comandos para ver el evento.

Preferiría la solución usando Xpra por varias razones. Solo puedo darte algunos indicios de cómo hacerlo. Las soluciones no están completas pero deberían ayudarlo a comenzar.

Solución Xinerama

Preparar

La configuración de Xinerama debe ampliarse para tener una configuración estática: consulte https://help.ubuntu.com/community/XineramaHowTo

ver también tercera pantalla falsa y Xdummy

obtener ventanas afectadas

Podemos usar xdotool para buscar ventanas. Luego podemos verificar su posición y moverlos. Asumo dos monitores con 1920x1080configuración. Lo siguiente moverá todas las ventanas de la pantalla de xinerama de derecha a izquierda.

while read xwindowid; do
    eval $(xdotool getwindowgeometry --shell "$xwindowid")
    if (( X > 1920 && X <= (1920 * 2))); then
        xdotool windowmove --relative $WINDOW -1920 y
    fi
done <<< "$(xdotool search --screen 0 '.*')"

Ahora puede mover todas las ventanas desde la pantalla de su computadora portátil (screen0) a una tercera pantalla (virtual) si se conecta un monitor. Al mismo tiempo, puede mover cualquier ventana almacenada en la tercera pantalla a la primera pantalla.

Solución XPRA

Para usar Xpra para mover las ventanas, todas las ventanas deben ser administradas por Xpra antes. Tienes que iniciar todo el escritorio usando XPRA en el inicio del sistema. Dos veces uno es su escritorio principal donde trabaja y el otro es principalmente un escritorio virtual.

xpra start-desktop :99
xpra start-desktop :1 --exit-with-children −−attach

Ahora puede tener Windows para la pantalla desconectada ejecutándose en una sesión xpra separada y adjuntarla / desconectarla cuando el monitor cambie.

xpra attach :99
xpra detatch :99

También hay una extensión de shell de gnome dicontinued que podría ser útil si desea mover manualmente una ventana de lo oculto :99a lo normal :0entre las pantallas xpra iniciadas.

El evento

  • Puede ver la desconexión / reconexión de una pantalla específica

  • tal vez esté atento a las dimensiones cambiadas de su xinerama usando xwininfo para que sea independiente del monitor desconectado si lo desea, es decir, extender su configuración a 3 monitores y desconectar un dispositivo arbitrario. Tenga en cuenta que esto solo funcionará para la solución xpra.

    xwininfo -display :0 -root | grep -e "-geometry"

    -geometry 5760x2160+0+0

ukos
fuente