Xnest
# Xnest

Xnest ist ein X11-Display-Server-Protokoll, der seine Ausgabe in einem Fenster eines anderen X-Display-Servers darstellt. Die Software ist damit einerseits ein X-Server für andere Anwendungen und andererseits ein X-Client des X-Servers, an den es seine Ausgabe übergibt.

## Technik

Xnest ist eine Art „Erweiterung“ des X Window Virtual Framebuffer (Xvfb). Es stellt einen virtuellen Framebuffer zur Verfügung, der auf den physikalischen Framebuffer abgebildet wird, den Xnest dadurch erhält, dass es selbst ein Client an einem bestehenden X-Server und dem davon benutzen Framebuffer ist. Xnest selbst hat also keine eigene Hardware oder physikalische Eingabegeräte. Alle Eingaben erhält es über den X-Server, mit dem es kommuniziert.

## Funktionsweise und Benutzung

Wenn ein Benutzer eine X-Sitzung an dem Display :0 laufen hat, kann er einen solchen nested X-Server starten, indem er in einen Terminalemulator wie xterm zum Beispiel Xnest :1 eingibt. Standardmäßig hat solch ein verschachtelter X-Server dreiviertel der Größe der Abmessungen des „väterlichen“ Displays. Hat der Benutzer also eine Bildschirmauflösung von 1024×768 Pixeln, startet Xnest standardmäßig mit einer Auflösung von 800×600 Pixeln. Falls eine andere Auflösung gewünscht ist, kann diese mit dem Anhängen wie -geometry 1024×600 (das ist Breite mal Höhe) ausgewählt werden.

Mit Xnest kann man sehr bequem mehrere X-Sitzungen gleichzeitig starten, Programme mit unterschiedlicher Bildschirmauflösung oder zum Debugging des X Window Systems testen. Mit XDMCP kann Xnest ähnlich wie VNC genutzt werden, um einen „virtuellen Desktop“ zu einem anderen Computer in einem Fenster herzustellen. Das geht zum Beispiel, indem dem vorherigen Beispiel einfach ein Parameter angehängt wird: Xnest :1 -query name-des-anderen-computers.

