Fensterschubser
Wer mit mehreren, rĂ€umlich voneinander getrennten Rechnern arbeitet, muss mitunter einen Blick auf den jeweils anderen Bildschirm werfen. Kann der Nutzer die Fenster einer Anwendung auf den eigenen Bildschirm herĂŒberholen, bleibt ihm mancher FuĂweg erspart.
Zu den Annehmlichkeiten, die das X Window System bietet, zĂ€hlt seine FĂ€higkeit, eine Anwendung auf einem Rechner auszufĂŒhren und die dazugehörigen Fenster auf einem anderen anzuzeigen. Dazu muss der Nutzer lediglich beim Start die Umgebungsvariable DISPLAY entsprechend setzen: DISPLAY=anderswo:0 firefox etwa startet lokal einen Browser und schickt seine Fenster auf den Bildschirm des Rechners anderswo â vorausgesetzt, dass keine Firewall im Weg steht und der Anwender das Recht besitzt, dort Fenster zu öffnen. Letzteres lĂ€sst sich mit xauth erreichen, Ersteres zum Beispiel mit einem ssh-Tunnel oder Virtual Private Network (VPN) beheben.
Allerdings gestattet X11 es von sich aus nicht, ein Fenster nachtrĂ€glich von einem Display aufs andere zu schieben: Jede Anwendung ist fest an âihrenâ X-Server gebunden. Wer vom Rechner hier aus einen Blick auf ein Fenster werfen will, das auf anderswo geöffnet ist, muss tricksen.
Fenster gehen auf die Reise
Eine Möglichkeit besteht darin, den kompletten Desktop von anderswo in ein lokales Fenster zu kopieren, etwa mit x11vnc und einem beliebigen VNC-Viewer [1] [1]. Letzterer darf sogar auf einem Rechner laufen, der kein X11 beherrscht, etwa auf einem Windows-PC. Das Programm eignet sich auĂerdem dazu, einem anderen Nutzer bei Schwierigkeiten ĂŒber die Schulter zu sehen â selbstverstĂ€ndlich nur mit dessen Genehmigung. Allerdings benötigt es ein gewisses MaĂ an Rechenleistung, da es den Bildschirm permanent ĂŒberwachen und alle Ănderungen zum VNC-Viewer senden muss.
Einzelne Anwendungen lassen sich zum Beispiel mit xmove von einem Display aufs andere âbeamenâ. Ăhnlich wie beim Star-Trek-Transporter befinden sie sich dabei entweder auf der einen oder auf der anderen Seite, nie auf beiden. Allerdings ist dafĂŒr anders als auf der Enterprise ein wenig Vorarbeit nötig: Der Nutzer muss zunĂ€chst den Proxy-X-Server xmove starten. Der erzeugt ein zweites Display, normalerweise <rechner>:1, das mit dem ersten verbunden ist.
Startet der Nutzer anschlieĂend ein Programm mit DISPLAY=<rechner>:1 <programm>, erscheinen dessen Fenster wie gewohnt auf dem lokalen Bildschirm. Sie lassen sich jedoch mit xmovectrl auf ein beliebiges anderes Display transportieren. Allerdings muss man dazu die Kommandozeile bemĂŒhen. xmovectrl <rechner>:1 âlist zeigt die mit dem Proxy verbundenen Anwendungen:
mr@hier> xmovectrl hier:1 -list
2 xterm hier:0
5 xterm hier:0
Der Befehl xmovectrl hier:1 âmove dort:0 5 verschiebt das zweite der beiden Terminal-Fenster auf den Rechner dort. Mit âmoveall dort:0 lassen sich alle Anwendungen auf einmal verschieben. Die Option âsetdefaultserver dort:0 bewirkt, dass sich Fenster schon beim Programmstart auf dem Rechner dort öffnen. Mit âquit kann der Nutzer den Proxy-Server samt aller damit verbundenen Anwendungen beenden.
Malen in der Fremde
Leider hat das Verfahren ein paar Nachteile. X-Server-Erweiterungen etwa lassen sich nicht nutzen â von der altehrwĂŒrdigen Shape-Extension, die Fenster mit abgerundeten Ecken und dergleichen ermöglicht, bis hin zu modernen Erweiterungen fĂŒr Video-Wiedergabe oder 3D-Grafik. Auch ist keineswegs garantiert, dass der Ziel-Server ĂŒber die von der Anwendung benötigten Fonts verfĂŒgt. Einige Programme funktionieren daher eventuell nicht.
Einen vielversprechenden Ansatz verfolgt das noch junge Projekt xpra (X Persistent Remote Applications). Es verwendet den virtuellen X.org-Server Xvfb zusammen mit einem sogenannten Compositing Window Manager. Anwendungen zeichnen nicht direkt in ihre Fenster, sondern in einen bereitgestellten Puffer, den der Window Manager auf dem Schirm darstellt. Dieselbe Technik kommt unter anderem bei 3D-Desktops wie Compiz zum Einsatz. Im Fall von xpra malt der Window Manager jedoch nicht auf den lokalen (virtuellen) Bildschirm, sondern ĂŒbertrĂ€gt den Fensterinhalt auf einen entfernten Rechner.
DarĂŒber hinaus erlaubt es das Programm Ă€hnlich wie das Konsolenprogramm screen, die Netzverbindung zu trennen und bei Bedarf wiederherzustellen â von einem beliebigen Rechner aus. Anwendungen laufen wĂ€hrend der Unterbrechung weiter. Allerdings fehlen der Software fĂŒr den reibungslosen praktischen Einsatz noch ein paar Funktionen. Wer sich an seiner Weiterentwicklung beteiligen möchte, sollte ĂŒber Python-Kenntnisse verfĂŒgen.
Das dazu passende grafische Interface bietet der Window Shifter. Das Open-Source-Programm steht unter Version 3 der GPL, lÀuft unter Linux/Unix, Mac OS X oder Windows und kann nicht nur xpra nutzen, sondern auch ssh-Tunnel, TigerVNC oder NoMachines NX.
[2]Literatur
[1] Ralph HĂŒlsenbusch; Remote Desktop; Tischleindeckdich; Der Arbeitsplatz im Netz â von ĂŒberall erreichbar; iX 10/2006, S. 42 [3]
iX-Link: www.ix.de/ix1009139 [4] (mr [5])
URL dieses Artikels:
https://www.heise.de/-1058766
Links in diesem Artikel:
[1] #lit
[2]
[3] http://www.heise.de/kiosk/archiv/ix/06/10/042/
[4] http://www.ix.de/ix1009139
[5] mailto:mr@ix.de
Copyright © 2010 Heise Medien