Apa yang dimaksud DISPLAY =: 0,0 sebenarnya?

45

Apa :0.0maksud sebenarnya? Saya tahu itu :0adalah X server pertama yang dijalankan pada mesin lokal, :1yang kedua, dll. Tapi apa .0bagian setelah itu :0? Apakah ada kombinasi lain? (mis. :0.0-something)

Latar Belakang: Saya mencoba untuk meningkatkan skrip init dari lebah yang saat ini menganggap itu :0adalah tampilan aktif. Itu tidak terjadi jika saya beralih pengguna. Jadi saya ingin memvalidasi $DISPLAYvariabel sebelum meneruskannya ke vglclient.

Lekensteyn
sumber
2
FWIW, en.wikipedia.org/wiki/X_Window_System#Nomenclature membantu saya memahami beberapa istilah ini. Jawaban ini juga memiliki info berguna.
waldyrious

Jawaban:

52

Format variabel tampilan adalah [host]:<display>[.screen].

host mengacu pada nama host jaringan, dan jika tidak ada berarti terhubung ke mesin lokal melalui soket domain unix.

Setiap host dapat memiliki beberapa tampilan, dan setiap tampilan dapat memiliki beberapa layar. Layar tidak banyak digunakan lagi, dengan xinerama dan sekarang xrandr menggabungkan beberapa layar menjadi satu layar logis.

camh
sumber
4
Terima kasih, saya baru saja menemukan halaman buku panduan yang tepat, Xserver(1)merujuk pada DISPLAY NAMESbagian X(7). Lihat halaman manual itu untuk detailnya.
Lekensteyn
5
Dan bagaimana cara saya mendapatkan daftar tampilan yang tersedia untuk host tertentu? Idealnya dalam sesi ssh di mana saya masuk di host dari PC klien.
con-f-use
3
Bagian tampilan juga digunakan pada X over SSH. Setiap koneksi SSH baru dengan penerusan X diaktifkan ditugaskan tampilan yang berbeda, karena layar ini sesuai secara internal dengan offset nomor port TCP, misalnya DISPLAY=localhost:10.0akan menyebabkan klien mengarahkan output grafis ke host localhost6010. Ini diperlukan untuk penerusan SSH X, karena jika Anda memiliki beberapa koneksi ke komputer yang sama, program Anda harus mengirim output yang berbeda ke port yang berbeda sehingga server SSH dapat meneruskan output X ke tujuan yang tepat.
RAKK
4
@Raza: Nomor port TCP yang akan dibuka adalah 6000 + display_number. Untuk host layar: 0,0 yaitu port 6000. Untuk host tampilan: 10.0 yaitu port 6010. Perhatikan bahwa penerusan SSH X11 dilakukan melalui port 22 dan bukan port X11.
camh
1
@Claudiu: DISPLAY =: 0 akan menggunakan soket domain unix, DISPLAY = localhost: 0 akan menggunakan soket domain internet (IP). Kemungkinan server X Anda tidak mendengarkan pada titik akhir TCP / IP. Saya tidak tahu soket domain unix default.
camh