Bagaimana cara mengetahui apakah Wayland atau X11 sedang digunakan

166

Jadi saya baru saja menginstal Kali Linux terbaru di laptop saya yang didasarkan pada Debian 7 (oldstable). Saya kemudian dist-upgrade-ed semuanya ke Debian 8.

Saya selalu menginginkan Wayland alih-alih X11, jadi saya menginstal paket yang diperlukan. Kemudian dibuat ~./config/weston.inikonfigurasi minimal . Sekarang, dari layar masuk Gnome:Layar login

Saya bisa boot ke Gnome on Waylandatau LXDE(antara lain). Yang sebelumnya dengan keberhasilan yang sangat terbatas dan yang terakhir (LXDE) hampir sempurna, meskipun panel perlu diatur (saya harus mencari freedesktop).

Bagaimanapun, di LXDE, GUI lebih responsif daripada yang ada di oldstable dan mungkin secepat ketika menjalankan windows 7. Saya senang.

Tapi saya ingin tahu apakah ini karena semua upgrade perpustakaan / modul dari Debian 7 ke 8 atau dari menggunakan Wayland (jika saya benar-benar menggunakan Wayland sama sekali). Saya menelusuri htop dan menemukan proses yang /usr/bin/Xorgberjalan dan tidak ada yang bernama "wayland". Jadi yang mana yang sedang saya jalankan?

Dehbop
sumber
jalankan xprop, alat ini akan bekerja pada aplikasi xap yang berjalan di bawah emulasi tetapi tidak pada Windows atau gnome-shell di Windows.
Mike Mestnik
4
Saya kira saya adalah satu-satunya yang memperhatikan bahwa sementara OP mengatakan dia beroperasi pada debian, tangkapan layar yang disajikannya jelas fedora ...
user1404316

Jawaban:

228

Dapatkan ID sesi untuk lulus dengan menerbitkan:

loginctl

Kemudian:

loginctl show-session <SESSION_ID> -p Type

Jika Anda ingin semua ini dalam satu perintah:

loginctl show-session $(awk '/tty/ {print $1}' <(loginctl)) -p Type | awk -F= '{print $2}'

Gunakan yang sesuai dengan nama pengguna Anda.

Rujuk ke: https://fedoraproject.org/wiki/How_to_debug_Wayland_problems

Jadi, bagi saya itu adalah:

$ loginctl show-session 2 -p Type                                                  
Type=wayland
Andreas
sumber
3
Terima kasih atas jawabannya. Harap tambahkan bahwa OP harus dijalankan loginctlterlebih dahulu untuk melihat sesi.
Ho1
5
loginctl show-session `loginctl|grep <YOUR_USER_NAME>|awk '{print $1}'` -p Type
solsTiCe
dikonfirmasi bekerja di ubuntu 17.10 dengan gnome-session ... anehnya saya mendapatkan x11
Ray Foss
2
Menurut Fedora 28 docs Anda juga dapat menggunakan echo $WAYLAND_DISPLAYyang tidak mencetak apa pun jika wayland tidak digunakan.
robsch
3
@ DSJustice backtick Anda telah mengalami penurunan harga. Orang dapat menyalin ini:loginctl show-session $(loginctl|grep $(whoami) |awk '{print $1}') -p Type
Andreas
166

Bagaimana cara mengetahui apakah Wayland atau X11 digunakan?

pada sistem X11 :

$ echo $XDG_SESSION_TYPE
x11

pada beberapa sistem wayland :

$ echo $XDG_SESSION_TYPE
wayland
Ayush
sumber
29
Apa artinya jika variabel ini tidak disetel?
g.rocket
Apakah ada cara untuk menunjukkan juga versi protokol wayland yang sedang berjalan?
saitam
28

Ini bekerja pada fedora

loginctl show-session $(loginctl | grep $(whoami) | awk '{print $1}') -p Type
antismap
sumber
Kekuatan pipa dan filosofi unix. Bagus.
Talespin_Kit
Aku menggumamkan sesuatu grep ... | awk, tapi hei, tidak apa-apa.
rahmu
10

Saya suka jawaban Ayush yang terbaik, tetapi saya pikir saya akan mengatakan bahwa jawaban Andreas dapat dilakukan dalam satu baris:

loginctl show-session "$XDG_SESSION_ID" -p Type

Anda juga dapat lulus --valueuntuk menjatuhkan Type=awalan.

Alex Robbins
sumber
9

Berikan perintah

ps aux | grep gnome-shell

Ini akan memberikan output

/usr/bin/gnome-shell --wayland --display-server

Jika Wayland aktif.

rksomayaji
sumber
5
Dan bagaimana jika waylandstandarnya?
anatoly techtonik
1
Proses "gnome-shell" saya tidak berjalan dengan opsi --wayland, tetapi ketika saya berlari ps aux | grep wayland, saya menemukan bahwa / usr / bin / Xwayland sedang berjalan.
paulie4
1
Seringkali Anda memiliki dua gnome-shellproses: satu digunakan untuk gdm, dan satu lagi digunakan untuk sesi pengguna. Seringkali gnome-shell gdm menggunakan wayland tetapi gnome-shell sesi pengguna menggunakan X11.
Marius Gedminas
Xwayland adalah proses yang menjembatani antara aplikasi X11 dan server tampilan Wayland. Keberadaannya menyiratkan bahwa Anda sudah menjalankan Wayland - tetapi periksa peringatan di atas, mungkin Wayland hanya digunakan untuk layar masuk.
Marius Gedminas
1
gnome-shellhanya berfungsi jika Anda menggunakan gnome sebagai DM.
Sebastian
3

(coba) Jalankan perintah 'r' di menu Alt + F2. Ini akan memulai ulang lingkungan di Xorg (tanpa kehilangan jendela dan proses) tetapi di wayland itu akan memberikan pesan "Restart tidak tersedia di Wayland".

Owen
sumber
1

Tidak, saya perhatikan seorang pid bernama Wayland di htop, ketika saya beralih ke Wayland untuk terkikik. Kecuali jika itu berubah itulah yang harus dilihat. Pembaruan: Ini adalah screengrab yang menunjukkan proses Wayland.

masukkan deskripsi gambar di sini

SD Allen
sumber
4
Saya tidak melihat waylandproses di screengrab Anda; baris yang Anda sorot adalah dbus-launchproses, memulai sesi yang disebut gnome-wayland.
Stephen Kitt
0

Anda bisa menjalankan xdpyinfoperintah. Ini memberikan informasi tentang server X11 Anda saat ini (dan tampilan). Ini akan gagal jika Anda tidak memilikinya (misalnya dalam pengaturan Wayland murni).

Basile Starynkevitch
sumber
tampaknya bekerja dengan baik pada waylandsesi saya ...
don_crissti
IMHO, itu hanya berarti bahwa sesi wayland Anda bukan Wayland murni .
Basile Starynkevitch
tentu tetapi T adalah "bagaimana cara mengetahui apakah wayland atau xorg digunakan" untuk sesi saat ini ... tidak bagaimana untuk mengetahui apakah ada server X11 berjalan
don_crissti
0

Anda juga bisa memeriksa apakah aplikasi berjalan dalam waylandbentuk asli mereka :

cd /usr/bin
ldd $application_name | grep wayland

Selanjutnya, untuk memeriksa biner mana yang memiliki waylanddukungan Anda dapat mencoba:

cd /usr/bin
find . | xargs ldd | grep wayland -B 55

Di atas tidak benar-benar sangat bersih tetapi berfungsi. Anda dapat mem-pipe-nya ke file dan menggunakannya vimuntuk navigasi.

cd /usr/bin
find . | xargs ldd | grep wayland -B 55 >> candidates
vim candidates
# Use vi movement

The -Bbendera singkatan sebelum dan membantu untuk mencetak nama biner.

Anda dapat memeriksa ini untuk lebih jelasnya. Jawaban ini diadaptasi dari pertanyaan ini .

HaoZeke
sumber