Co właściwie oznacza DISPLAY =: 0.0?

45

Co to :0.0właściwie znaczy? Wiem, że :0jest to pierwszy serwer X, który jest uruchomiony na komputerze lokalnym, :1drugi, itd Ale co to jest .0część po :0? Czy istnieją inne kombinacje? (np. :0.0-something)

Tło: Próbuję ulepszyć skrypt startowy trzmiela, który obecnie zakłada, że :0jest to aktywny ekran. Tak nie jest, jeśli zmieniam użytkowników. Chciałem więc sprawdzić $DISPLAYzmienność przed przekazaniem jej do vglclient.

Lekensteyn
źródło
2
FWIW, en.wikipedia.org/wiki/X_Window_System#Nomenclature pomogło mi zrozumieć niektóre z tych terminów. Ta odpowiedź zawiera także przydatne informacje.
waldyrious 15.04.17

Odpowiedzi:

52

Format zmiennej wyświetlanej to [host]:<display>[.screen].

host odnosi się do nazwy hosta sieciowego, a jeśli go nie ma, oznacza połączenie z maszyną lokalną za pośrednictwem gniazda domeny unix.

Każdy host może mieć wiele ekranów, a każdy ekran może mieć wiele ekranów. Ekrany nie są już używane, ponieważ xinerama i teraz xrandr łączą wiele ekranów w jeden ekran logiczny.

camh
źródło
4
Dzięki, właśnie znalazłem właściwą stronę podręcznika, Xserver(1)o której mowa w DISPLAY NAMESsekcji X(7). Szczegółowe informacje można znaleźć na tej stronie podręcznika.
Lekensteyn,
5
I jak uzyskać listę dostępnych wyświetlaczy dla określonego hosta? Idealnie w ramach sesji ssh, w której loguję się na hoście z komputera klienckiego.
con-f-use
3
Część wyświetlacza jest również używana w X przez SSH. Każde nowe połączenie SSH z włączonym przekazywaniem X ma przypisany inny ekran, ponieważ ekrany te odpowiadają wewnętrznie przesunięciu numeru portu TCP, np. DISPLAY=localhost:10.0Spowoduje, że klient localhostprzekieruje wyjście graficzne do portu hosta 6010. Jest to wymagane w przypadku przekazywania SSH X, ponieważ jeśli masz wiele połączeń z tym samym komputerem, twój program musi wysyłać różne dane wyjściowe do różnych portów, aby serwer SSH mógł przekazać dane wyjściowe X do właściwego miejsca docelowego.
RAKK
4
@Raza: Numery portów TCP do otwarcia to 6000 + numer_wyświetlania. W przypadku hosta wyświetlania: 0,0, czyli portu 6000. W przypadku hosta wyświetlania: 10.0, czyli portu 6010. Należy pamiętać, że przekazywanie SSH X11 odbywa się za pośrednictwem portu 22, a nie portów X11.
camh
1
@Claudiu: DISPLAY =: 0 użyje gniazda domeny unix, DISPLAY = localhost: 0 użyje gniazda domeny internetowej (IP). Prawdopodobnie Twój serwer X nie nasłuchuje w punkcie końcowym TCP / IP. Nie znam domyślnego gniazda domeny unix.
camh