Was bedeutet eigentlich DISPLAY =: 0.0?

45

Was bedeutet das :0.0eigentlich? Ich weiß, dass dies :0der erste X-Server ist, der auf einem lokalen Computer gestartet wird, :1der zweite usw. Aber was folgt .0danach :0? Gibt es noch andere Kombinationen? (zB :0.0-something)

Hintergrund: Ich versuche, das Initscript der Hummel zu verbessern, bei der derzeit davon ausgegangen wird , dass :0es sich um die aktive Anzeige handelt. Das ist nicht der Fall, wenn ich den Benutzer wechsle. Deshalb wollte ich die $DISPLAYVariable validieren , bevor ich sie an weitergebe vglclient.

Lekensteyn
quelle
2
FWIW, en.wikipedia.org/wiki/X_Window_System#Nomenclature hat mir geholfen, einige dieser Begriffe zu verstehen. Diese Antwort enthält auch nützliche Informationen.
Waldyrious

Antworten:

52

Das Format der Anzeigevariable ist [host]:<display>[.screen].

host bezieht sich auf einen Netzwerkhostnamen und bedeutet bei Abwesenheit, eine Verbindung zum lokalen Computer über einen Unix-Domain-Socket herzustellen.

Jeder Host kann mehrere Anzeigen haben, und jede Anzeige kann mehrere Bildschirme haben. Bildschirme werden nicht mehr oft verwendet, da xinerama und jetzt xrandr mehrere Bildschirme zu einem einzigen logischen Bildschirm zusammenfassen.

camh
quelle
4
Danke, ich habe gerade auch die richtige Handbuchseite gefunden, Xserver(1)siehe DISPLAY NAMESAbschnitt von X(7). Einzelheiten finden Sie auf dieser Handbuchseite.
Lekensteyn
5
Und wie erhalte ich eine Liste der verfügbaren Displays für einen bestimmten Host? Idealerweise in einer SSH-Sitzung, in der ich vom Client-PC aus am Host angemeldet bin.
con-f-use
3
Der Anzeigeteil wird auch bei X über SSH verwendet. Jeder neuen SSH-Verbindung mit aktivierter X-Weiterleitung wird eine andere Anzeige zugewiesen, da diese Anzeigen intern einem Offset der TCP-Portnummer entsprechen, dh DISPLAY=localhost:10.0der Client leitet die grafische Ausgabe an den Host- localhostPort 6010 weiter. Dies ist für die SSH-X-Weiterleitung erforderlich, da wenn Wenn Sie mehrere Verbindungen zu demselben Computer haben, muss Ihr Programm verschiedene Ausgaben an verschiedene Ports senden, damit der SSH-Server die X-Ausgabe an das richtige Ziel weiterleiten kann.
RAKK
4
@Raza: Die zu öffnenden TCP-Portnummern sind 6000 + display_number. Für Anzeigehost: 0.0, dh Port 6000. Für Anzeigehost: 10.0, dh Port 6010. Beachten Sie, dass die SSH X11-Weiterleitung über Port 22 und nicht über X11-Ports erfolgt.
Camh
1
@Claudiu: DISPLAY =: 0 verwendet einen Unix-Domain-Socket, DISPLAY = localhost: 0 verwendet einen Internet-Domain-Socket (IP). Es ist wahrscheinlich, dass Ihr X-Server einen TCP / IP-Endpunkt nicht überwacht. Ich kenne den Standard-Unix-Domain-Socket nicht.
15.