จะรู้ได้อย่างไรว่า Wayland หรือ X11 กำลังถูกใช้งาน


164

ดังนั้นฉันเพิ่งติดตั้ง Kali Linux ล่าสุดบนแล็ปท็อปของฉันซึ่งใช้ Debian 7 (เก่า) จากนั้นฉันก็อัพเกรดทุกอย่างให้เป็น Debian 8

ฉันต้องการ Wayland แทนที่จะเป็น X11 เสมอดังนั้นฉันจึงติดตั้งแพ็คเกจที่จำเป็น จากนั้นสร้างการ~./config/weston.iniกำหนดค่าขั้นต่ำ ตอนนี้จากหน้าจอลงชื่อเข้าใช้ Gnome:หน้าจอเข้าสู่ระบบ

ฉันสามารถบูตไปที่Gnome on WaylandหรือLXDE(ในหมู่อื่น ๆ ) ก่อนหน้านี้มีความสำเร็จที่ จำกัด มากและอันหลัง (LXDE) เกือบจะสมบูรณ์แบบแม้ว่าแผงควบคุมต้องติดตั้ง (ฉันต้องค้นหา freedesktop)

อย่างไรก็ตามใน LXDE GUI ตอบสนองได้ดีกว่าในรุ่นเก่าและอาจเร็วเมื่อเปิดใช้งาน windows 7 ฉันยินดี

แต่ฉันอยากรู้ว่านี่เป็นเพราะการอัพเกรดไลบรารี่ / โมดูลจาก Debian 7 เป็น 8 หรือจากการใช้ Wayland (ถ้าฉันใช้ Wayland เลย) ฉันอ่านผ่าน htop และพบว่ามีการ/usr/bin/Xorgทำงานและไม่มีกระบวนการชื่อ "wayland" ดังนั้นฉันกำลังใช้อันไหนอยู่


เรียกใช้ xprop เครื่องมือนี้จะทำงานกับ xapplications ที่ทำงานภายใต้ emulation แต่ไม่ใช่ wayland หรือ gnome-shell บน wayland
Mike Mestnik

4
ฉันเดาว่าฉันเป็นคนเดียวที่จะสังเกตุได้ว่าในขณะที่ OP บอกว่าเขาทำงานบนเดเบียนภาพหน้าจอที่เขานำเสนอนั้นเป็น
เฟด

คำตอบ:


226

รับ ID ของเซสชั่นที่จะผ่านโดยการออก:

loginctl

แล้ว:

loginctl show-session <SESSION_ID> -p Type

หากคุณต้องการทั้งหมดนี้ในคำสั่งเดียว:

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

ใช้อันที่สอดคล้องกับชื่อผู้ใช้ของคุณ

อ้างถึง: https://fedoraproject.org/wiki/How_to_debug_Wayland_problems

ดังนั้นสำหรับฉันมันคือ:

$ loginctl show-session 2 -p Type                                                  
Type=wayland

3
ขอบคุณสำหรับคำตอบที่ดี โปรดเพิ่ม OP ที่ควรรันloginctlก่อนเพื่อดูเซสชัน
Ho1

5
loginctl show-session `loginctl|grep <YOUR_USER_NAME>|awk '{print $1}'` -p Type
solsTiCe

ยืนยันว่าทำงานกับ Ubuntu 17.10 กับ gnome-session ... น่าประหลาดใจที่ฉันได้รับ x11
Ray Foss

2
จากเอกสารของ Fedora 28คุณยังสามารถใช้งานได้echo $WAYLAND_DISPLAYซึ่งไม่สามารถพิมพ์อะไรได้หากไม่ใช้ wayland
robsch

3
@DSJackice backticks ของคุณถูกทำเครื่องหมายว่าถูกต้อง หนึ่งสามารถคัดลอกนี้:loginctl show-session $(loginctl|grep $(whoami) |awk '{print $1}') -p Type
Andreas

166

จะทราบได้อย่างไรว่าใช้ Wayland หรือ X11 อยู่หรือไม่

บนระบบ X11 :

$ echo $XDG_SESSION_TYPE
x11

ในระบบ wayland บางระบบ :

$ echo $XDG_SESSION_TYPE
wayland

28
มันหมายความว่าอย่างไรถ้าตัวแปรนี้ไม่มีการตั้งค่า?
g.rocket

มีวิธีแสดงเวอร์ชันของโปรโตคอล wayland ที่ทำงานอยู่หรือไม่
saitam

28

สิ่งนี้ใช้ได้กับ fedora

loginctl show-session $(loginctl | grep $(whoami) | awk '{print $1}') -p Type

พลังของท่อและปรัชญาของยูนิกซ์ ดี
Talespin_Kit

/ ฉันพึมพำบางอย่างเกี่ยวกับgrep ... | awkแต่เดี๋ยวก่อนก็ดี
rahmu


9

ให้คำสั่ง

ps aux | grep gnome-shell

มันจะให้ผลลัพธ์

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

หาก Wayland เปิดใช้งานอยู่


5
และถ้าwaylandเป็นค่าเริ่มต้นคืออะไร?
Anatoly techtonik

1
กระบวนการ "gnome-shell" ของฉันไม่ได้ทำงานด้วยตัวเลือก --wayland แต่เมื่อฉันวิ่งps aux | grep waylandฉันพบว่า / usr / bin / Xwayland กำลังทำงานอยู่
paulie4

1
บ่อยครั้งที่คุณมีสองgnome-shellกระบวนการ: กระบวนการหนึ่งใช้สำหรับ gdm และกระบวนการหนึ่งใช้สำหรับเซสชันผู้ใช้ บ่อยครั้งที่ gnm-shell ของ gdm ใช้ wayland แต่ gnome-shell ของเซสชันผู้ใช้ใช้ X11
Marius Gedminas

Xwayland เป็นกระบวนการที่เชื่อมระหว่างแอปพลิเคชัน X11 และเซิร์ฟเวอร์การแสดงผล Wayland การมีอยู่ของมันบ่งบอกว่าคุณกำลังใช้งาน Wayland อยู่แล้ว แต่ตรวจสอบข้อแม้ข้างต้นเป็นไปได้ว่า Wayland จะใช้สำหรับหน้าจอเข้าสู่ระบบเท่านั้น
Marius Gedminas

1
gnome-shellใช้งานได้เฉพาะในกรณีที่คุณใช้ gnome เป็น DM
เซบาสเตียน

3

(ลอง) เรียกใช้คำสั่ง 'r' ในเมนู Alt + F2 มันจะรีสตาร์ทสภาพแวดล้อมใน Xorg (โดยไม่สูญเสีย windows และกระบวนการ) แต่ใน wayland มันจะให้ข้อความ "รีสตาร์ทไม่พร้อมใช้งานใน Wayland"


1

ไม่ฉันสังเกตเห็น pid ชื่อ Wayland ที่ htop เมื่อฉันเปลี่ยนมาใช้ Wayland เพื่อหัวเราะคิกคัก เว้นแต่จะมีการเปลี่ยนแปลงนั่นคือสิ่งที่เราควรเห็น อัปเดต: นี่คือหน้าจอที่แสดงกระบวนการ Wayland

ป้อนคำอธิบายรูปภาพที่นี่


4
ฉันไม่เห็นwaylandกระบวนการใน screengrab ของคุณ เส้นที่คุณได้เน้นเป็นกระบวนการเริ่มต้นเซสชั่นที่เรียกว่าdbus-launch gnome-wayland
Stephen Kitt


0

คุณสามารถเรียกใช้xdpyinfoคำสั่ง มันให้ข้อมูลเกี่ยวกับเซิร์ฟเวอร์ X11 ปัจจุบันของคุณ (และแสดงผล) มันจะล้มเหลวถ้าคุณไม่มี (เช่นในการตั้งค่า Wayland บริสุทธิ์)


ดูเหมือนว่าจะทำงานได้ดีบนของwaylandเซสชั่น ...
don_crissti

IMHO นั่นหมายความว่าเซสชันของWayland ของคุณไม่ใช่Wayland ที่บริสุทธิ์
Basile Starynkevitch

แน่ใจ แต่ Q คือ "วิธีการที่จะทราบว่า Wayland หรือ xorg จะใช้" สำหรับเซสชันปัจจุบัน ... ไม่ได้เป็นวิธีที่จะรู้ว่าถ้ามีเซิร์ฟเวอร์ X11 ทำงาน
don_crissti

0

คุณสามารถตรวจสอบได้ว่ามีแอปพลิเคชันที่ทำงานอยู่ในwaylandรูปแบบดั้งเดิมหรือไม่

cd /usr/bin
ldd $application_name | grep wayland

นอกจากนี้เพื่อตรวจสอบว่าไบนารีใดwaylandบ้างที่สนับสนุนคุณสามารถลอง:

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

ด้านบนไม่สะอาดมาก แต่ใช้งานได้จริง คุณสามารถไพพ์ไปที่ไฟล์และใช้vimเพื่อนำทาง

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

การ-Bตั้งค่าสถานะมาก่อนและช่วยในการพิมพ์ชื่อไบนารี

คุณสามารถตรวจสอบรายละเอียดเพิ่มเติมได้จากนี้ คำตอบนี้ดัดแปลงมาจากคำถามนี้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.