O que DISPLAY =: 0.0 realmente significa?

45

O que :0.0realmente significa? Eu sei que :0é o primeiro servidor X iniciado em uma máquina local, :1o segundo etc. Mas qual é essa .0parte depois :0? Existem outras combinações? (por exemplo :0.0-something)

Antecedentes: Estou tentando melhorar o initscript do zangão, que atualmente assume que :0é a exibição ativa. Esse não é o caso se eu trocar de usuário. Então, eu queria validar a $DISPLAYvariável antes de passá-la para vglclient.

Lekensteyn
fonte
2
FWIW, en.wikipedia.org/wiki/X_Window_System#Nomenclature me ajudou a entender alguns desses termos. Esta resposta também tem informações úteis.
waldyrious

Respostas:

52

O formato da variável de exibição é [host]:<display>[.screen].

host refere-se a um nome de host de rede e, se ausente, significa conectar-se à máquina local por meio de um soquete de domínio unix.

Cada host pode ter várias telas e cada tela pode ter várias telas. As telas não são mais usadas, com o xinerama e agora o xrandr combinando várias telas em uma única tela lógica.

camh
fonte
4
Obrigado, também encontrei a página de manual correta, Xserver(1)consulte a DISPLAY NAMESseção X(7). Consulte a página do manual para obter detalhes.
21711 Lehensteyn
5
E como obteria uma lista de exibições disponíveis para um determinado host? Idealmente, dentro de uma sessão ssh, onde estou logado no host a partir de um PC cliente.
con-f-use
3
A parte de exibição também é usada no X sobre SSH. Cada nova conexão SSH com o encaminhamento X ativado recebe uma exibição diferente, porque essas telas correspondem internamente a um deslocamento do número da porta TCP, por exemplo, DISPLAY=localhost:10.0fará com que o cliente direcione a saída gráfica para a localhostporta 6010 do host . Isso é necessário para o encaminhamento SSH X, porque se você possui várias conexões com o mesmo computador, seu programa deve enviar saídas diferentes para portas diferentes, para que o servidor SSH possa encaminhar a saída X para o destino apropriado.
RAKK 01/04
4
@Raza: Os números da porta TCP a serem abertos são 6000 + display_number. Para host de exibição: 0.0, que é a porta 6000. Para host de exibição: 10.0, que é a porta 6010. Observe que o encaminhamento SSH X11 é feito na porta 22 e não nas portas X11.
Camh
1
@ Claudiu: DISPLAY =: 0 usará um soquete de domínio unix, DISPLAY = localhost: 0 usará um soquete de domínio da Internet (IP). É provável que o servidor X não esteja escutando um ponto final TCP / IP. Não conheço o soquete de domínio unix padrão.
CAMH