freeX: Bildschirm vergrößern / Displays verbinden

Die ausschließlichen Vertriebsrechte an diesem Artikel liegen beim Computer- & Literaturverlag (C&L). Der Artikel darf nicht kopiert oder gar erneut in einer Zeitschrift oder einem Buch veröffentlicht werden ohne vorherige Erlaubnis von C&L. Der Verlag gestattet freundlicherweise die Veröffentlichung auf diesen Seiten. Wer öfter auf diesen Hinweis trifft, sollte sich überlegen, die Zeitschrift freeX zu abonnieren.

Bildschirm vergrößern / Displays verbinden

 
Der Bildschirm unter X11 kann eigentlich nie groß genug sein. Mehrere Terminals wollen geöffnet sein, ein grafischer Browser wird für Webseiten benötigt, dann noch ein Editor, noch ein Mail-Programm, vielleicht noch ein Chat-Fenster. Da wird der Platz auf dem Desktop schnell eng.

 

1. Anordnung der Displays
2. Magische Kekse
3. Displays verbinden

Die ideale Lösung wäre, einen richtig großen Monitor anzuschließen, damit alle grafischen Fenster auf dem Desktop Platz finden, die man parallel im Blick behalten möchte. Eine Alternative dazu ist ein System mit mehreren Grafikkarten und mehreren Monitoren, die mit Hilfe des Xinerama-Features zu einem großen Desktop zusammengeschlossen werden.

Wenn auch das nicht praktikabel ist, jedoch ein zweites Computersystem, auch wenn's nur ein Notebook ist, zur Verfügung steht, gibt es noch mindestens eine dritte Chance. Natürlich ist es immer möglich, mit zwei Monitoren, zwei Tastaturen und zwei Mäusen zu arbeiten.

[4x4 LCD-Leinwand mit Xinerama auf dem LinuxTag 2002 in Karlsruhe]

Abbildung 1: 4x4 LCD-Leinwand mit Xinerama auf dem LinuxTag 2002 in Karlsruhe

Nur wer möchte schon gerne mehrere Tastaturen und Mäuse auf dem Schreibtisch stehen haben. Die Hände brauchen immer ein paar Minuten, um sich an eine neue Tastatur zu gewöhnen. Effizientes Arbeiten würde das bestimmt nicht. So schön es auch sein mag, zwei komplette Computersysteme nebeneinander stehen zu haben, der Weisheit letzter Schluß ist es auch nicht.

An dieser Stelle hilft ein kleines Programm, das für das X-Protokoll geschrieben wurde. Es verbindet zwei Displays virtuell. Der große Vorteil liegt darin, daß die Eingabegeräte (Maus, Tastatur) vom Hauptdisplay auf das Sekundärdisplay übertragen werden, wenn es aktiv ist. Eine zweite Tastatur auf dem Schreibtisch ist daher nicht mehr erforderlich.

Anordnung der Displays

Das zweite Display wird virtuell links (»west«), rechts (»east«), oberhalb (»north«) oder unterhalb (»south«) des Hauptdisplays angeordnet. Wenn der Mauszeiger dann in einer dieser Regionen aus dem aktuellen Display bewegt wird, stößt er nicht mehr auf eine virtuelle Barriere und verbleibt am Rand des Displays sondern taucht im Sekundärdisplay auf.

Eingaben über die Tastatur Eingaben erscheinen fortan ebenfalls auf dem Sekundärdisplay im dort fokussierten Fenster. Das geschieht solange bis der Mauszeiger wieder in umgekehrter Richtung auf das Hauptdisplay bewegt wird. Als Bonus wird sogar das X-Clipboard der beiden Displays miteinander verbunden. Markierter Text läßt sich so bequem zwischen den beiden physikalischen Displays übertragen.

Ausgenutzt wird dabei die Erweiterung XTEST des Sekundärdisplays, die mit X.Org meistens vorhanden ist. »x2x« wird auf dem Hauptdisplay gestartet und benötigt Schreibrechte auf dem Sekundärdisplay. Zusätzlich wird die Angabe zur Positionierung des Sekundärdisplays in Form einer Himmelsrichtung erwartet.

[Anordnung des Sekundärdisplays über die Himmelsrichtung]

Abbildung 2: Anordnung des Sekundärdisplays über die Himmelsrichtung

Magische Kekse

Bei der Verwaltung der Schreibrechte unternimmt der Computer einen Ausflug in die Fantasywelt. Sie werden nämlich üblicherweise mit "magischen Keksen" bzw. einem »MIT-MAGIC-COOKIE« verwaltet. Diese sind vergleichbar mit Zugangscodes zum X-Server und dienen der Authentifizierung der Clients.

Beim Start des X-Servers wird automatisch ein Cookie erzeugt, das für die Dauer der Sitzung gültig ist. Mit Hilfe des Programms »xauth« wird das jeweils aktuelle extrahiert und auf dem zweiten Rechner importiert. Versucht ein Programm nun mit diesem Cookie auf das Display zu schreiben, gestattet der X-Server den Zugriff und stellt z.B. das Fenster dar.

Die Zugangsberechtigung läßt sich bequem in einem Rutsch austauschen. Dazu wird sie nicht in eine Datei sondern auf die Standardausgabe geschrieben. Von dort liest das lokale »xauth« auf dem Hauptrechner:

   ssh -x remote xauth extract - remote:0 | xauth merge -

Displays verbinden

Ob der zweite Rechner Verbindungen zuläßt, wird am besten mit einem Programm getestet, das ein grafisches Fenster hervorbringt. Der Effekt ist augenscheinlich. Dazu wird die »DISPLAY«-Variable passend gesetzt. Für »x2x« ist das nicht erforderlich, denn das Programm erwartet die Angaben zu den Displays als Parameter. Der Aufruf gestaltet sich wie folgt.

   x2x -from :0.0 -to remote:0.0 -east &

Normalerweise produziert das Programm keine Ausgabe. Wenn im X-Server auf dem entfernten Rechner ein Feature vermißt wird, kann das allerdings schonmal im Terminal erscheinen, sobald der Mauszeiger auf den zweiten Rechner bewegt wird. Gegebenenfalls sollte die Ausgabe dann nach »/dev/null« umgeleitet werden.

Wie der Name bereits vermuten läßt, ist »x2x« für zwei X-Displays konzipiert. Wer nicht nur Unix und damit X11 einsetzt erreicht mit »synergy« den gleichen Effekt über die Grenzen der grafischen Oberfläche hinweg.

Martin Schulze
Quelle: freeX 6/07