¿Qué significa realmente DISPLAY =: 0.0?

45

¿Qué significa :0.0realmente? Sé que :0es el primer servidor X que se inicia en una máquina local, :1el segundo, etc. ¿Pero después de qué .0parte :0? ¿Existen otras combinaciones? (por ejemplo :0.0-something)

Antecedentes: Estoy tratando de mejorar el guión de inicio del abejorro , que asume actualmente que :0es la pantalla activa. Ese no es el caso si cambio de usuario. Así que quería validar la $DISPLAYvariable antes de pasarla vglclient.

Lekensteyn
fuente
2
FWIW, en.wikipedia.org/wiki/X_Window_System#Nomenclature me ayudó a comprender algunos de estos términos. Esta respuesta también tiene información útil.
waldyrious

Respuestas:

52

El formato de la variable de visualización es [host]:<display>[.screen].

host se refiere a un nombre de host de red, y si está ausente significa conectarse a la máquina local a través de un socket de dominio Unix

Cada host puede tener múltiples pantallas, y cada pantalla puede tener múltiples pantallas. Las pantallas ya no se usan mucho, con xinerama y ahora xrandr combinando múltiples pantallas en una sola pantalla lógica.

camh
fuente
44
Gracias, también encontré la página del manual correcta, Xserver(1)referida a la DISPLAY NAMESsección de X(7). Consulte esa página del manual para más detalles.
Lekensteyn
55
¿Y cómo obtendría una lista de pantallas disponibles para un determinado host? Idealmente dentro de una sesión ssh donde estoy conectado al host desde una PC cliente.
con-f-use
3
La parte de la pantalla también se usa en X sobre SSH. A cada nueva conexión SSH con reenvío X habilitado se le asigna una pantalla diferente, porque estas pantallas corresponden internamente a un desplazamiento del número de puerto TCP, por ejemplo, DISPLAY=localhost:10.0hará que el cliente dirija la salida gráfica al localhostpuerto host 6010. Esto es necesario para el reenvío SSH X, porque si Si tiene varias conexiones a la misma computadora, su programa debe enviar diferentes salidas a diferentes puertos para que el servidor SSH pueda reenviar la salida X al destino adecuado.
RAKK
44
@ Raza: Los números de puerto TCP para abrir son 6000 + número_de_pantalla. Para el host de pantalla: 0.0 que es el puerto 6000. Para el host de pantalla: 10.0 que es el puerto 6010. Tenga en cuenta que el reenvío SSH X11 se realiza a través del puerto 22 y no a los puertos X11.
camh
1
@Claudiu: DISPLAY =: 0 usará un socket de dominio unix, DISPLAY = localhost: 0 usará un socket de dominio de Internet (IP). Es probable que su servidor X no escuche en un punto final TCP / IP. No sé el zócalo de dominio de Unix predeterminado.
camh