Separater WorkSpace für zweiten Bildschirm

16

Ich möchte folgendes Verhalten erreichen: Wenn ich meinen Laptop-Bildschirm benutze, wird mein erster Arbeitsbereich verwendet. Wenn ich einen zweiten Bildschirm (über HDMI) anschließe, wird ein zweiter Arbeitsbereich verwendet und alle neu geöffneten Fenster auf diesem zweiten Bildschirm landen im zweiten Bereich, mit der Ausnahme, dass ich den Arbeitsbereich auf dem zweiten Bildschirm auf einen anderen Arbeitsbereich umstelle.

Wenn ich meinen zweiten Bildschirm ausstecke, bleiben alle Fenster in den Arbeitsbereichen, in denen sie erstellt wurden, und ich kann die Arbeitsbereiche auf meinem Laptop wechseln, um sie anzuzeigen.

Ist dieses Verhalten schon möglich?

velop
quelle
Es ist mir bereits gelungen, Arbeitsbereiche mit Darstellung -> Verhalten und deaktivierte vertikale Arbeitsbereiche mit dem CompizConfig-Einstellungs-Manager zu aktivieren. Es gibt auch Expo und Viewport Switcher Plugins, die in der Lage zu sein scheinen, was ich will, aber ich habe Angst davor, Einstellungen ohne Wissen dort zu ändern.
12.
Ihre Frage ist etwas verwirrend. Wenn Sie darum bitten, Anzeigen als zwei separate Arbeitsbereiche zu erstellen, ist die Antwort Nein, nicht möglich. Wenn Sie beim Anschließen des zweiten Bildschirms automatisch die Anzahl der Arbeitsbereiche ändern möchten, ist dies möglich. Bitte klären / vereinfachen Sie, was Sie fragen
Sergiy Kolodyazhnyy
2
Ich fand die Option Compiz -> Desktop Wall -> Viewport Switching -> Multimonitor bahvior -> Switch separat. Aber anscheinend funktioniert das nicht.
Velop
@velop, kannst du diese Kommentare in der Frage bearbeiten?
SDsolar

Antworten:

1

Ist dieses Verhalten schon möglich?

Unter Linux ist alles möglich. Sie benötigen einige Grundkenntnisse über den Xserver , einige Zeit und ein System zum Testen, da Sie mit Ihrem X herumspielen und auf jeden Fall den Browser zum Laufen brauchen, wenn Sie Hilfe benötigen :-)

Meiner Meinung nach gibt es drei mögliche Lösungen:

  • Multimonitor-Setups verwenden Xinerama . Die einfachste Lösung, die ich mir vorstellen kann, besteht darin, Ihrer Konfiguration einen dritten virtuellen Bildschirm hinzuzufügen und die Fenster einfach mit xdotool dorthin zu verschieben. Diese Lösung hat einige Nachteile, erfordert jedoch nicht den Aufwand, Fenster zwischen verschiedenen Xservern verschieben zu müssen, was im Allgemeinen nicht möglich ist.

  • Da es nicht möglich ist, Fenster zwischen verschiedenen Xservern zu verschieben , benötigen wir dafür eine Art Proxy wie xmove oder Xpra . Ich denke, die Fenster leben dann in einer separaten Xfvb- Sitzung, um die Fenster auszublenden. Sie können eine Verbindung zur Sitzung herstellen und trennen.

  • Unabhängig davon, welche Methode Sie verwenden, benötigen Sie ein Ereignis, wenn der Monitor vom Stromnetz getrennt wird. Das Ereignis sollte ausgelöst werden, wenn die Verbindung zum Bildschirm getrennt wird und auch, wenn die Verbindung wiederhergestellt wird. Sie können das Skript dämonisieren, um auf das Ereignis zu achten.

Ich würde die Lösung aus verschiedenen Gründen mit Xpra bevorzugen. Ich kann Ihnen nur einige Hinweise geben, wie es geht. Die Lösungen sind noch nicht vollständig, sollten Sie jedoch in den Griff bekommen.

Xinerama-Lösung

Installieren

Das Xinerama-Setup muss erweitert werden, um eine statische Konfiguration zu erhalten: Siehe https://help.ubuntu.com/community/XineramaHowTo

Siehe auch gefälschter dritter Bildschirm und Xdummy

Betroffene Fenster bekommen

Wir können xdotool verwenden , um nach Fenstern zu suchen. Danach können wir ihre Position überprüfen und sie bewegen. Ich gehe von zwei Monitoren mit 1920x1080Konfiguration aus. Im Folgenden werden alle Fenster vom rechten zum linken xinerama-Bildschirm verschoben.

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 '.*')"

Sie können jetzt alle Fenster von Ihrem Laptop-Bildschirm (screen0) auf einen dritten (virtuellen) Bildschirm verschieben, wenn ein Monitor angeschlossen wird. Gleichzeitig können Sie jedes auf dem dritten Bildschirm gespeicherte Fenster auf den ersten Bildschirm verschieben.

XPRA-Lösung

Um Xpra zum Verschieben der Fenster verwenden zu können, müssen alle Fenster zuvor von Xpra verwaltet werden. Sie müssen den gesamten Desktop mit Xpra beim Systemstart starten . Zweimal ist einer Ihr Hauptdesktop, auf dem Sie arbeiten, und der andere ist hauptsächlich ein virtueller Desktop.

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

Jetzt können Sie Windows für den nicht verbundenen Bildschirm in einer separaten xpra-Sitzung ausführen und ihn beim Umschalten des Monitors verbinden / trennen.

xpra attach :99
xpra detatch :99

Es gibt auch eine nicht mehr unterstützte Gnome-Shell-Erweiterung , die nützlich sein kann, wenn Sie ein Fenster zwischen gestarteten xpra-Anzeigen manuell von der verborgenen :99zur normalen verschieben :0möchten.

Das Ereignis

  • Sie können auf das Trennen / Wiederherstellen einer bestimmten Anzeige achten

  • Achten Sie mithilfe von xwininfo auf geänderte Abmessungen Ihres Xinerama , um es unabhängig vom nicht angeschlossenen Monitor zu haben, wenn Sie Ihr Setup auf 3 Monitore erweitern und ein beliebiges Gerät vom Netz trennen möchten. Beachten Sie, dass dies nur für die xpra-Lösung funktioniert.

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

    -geometry 5760x2160+0+0

Ukos
quelle