วิธีระบุหน้าต่างโดยคลิกใน Wayland


15

ฉันต้องการระบุว่ากระบวนการใดเป็นหน้าต่างใน Wayland มีอะไรที่เหมือนกับxpropX ที่ให้ผู้ใช้เลือกหน้าต่างโดยการคลิกและแสดงรายละเอียดของหน้าต่างทั้งหมดรวมถึง PID หรือไม่


ฉันสงสัยว่ามีหรือจะเป็นเช่นคำสั่ง xprop เป้าหมายสำคัญอย่างหนึ่งของ Wayland คือ จำกัด การเข้าถึงหน้าต่างของกระบวนการอื่น ๆ
mviereck

@mviereck แน่นอน superuser สามารถดูข้อมูลหน้าต่างแม้ใน Wayland?
นาธาเนียลเอ็มบีเวอร์

@bariumbitmap: เฉพาะเมื่อผู้แต่งให้ข้อมูลเหล่านี้นอกหน่วยความจำของตัวเองตัวอย่างเช่นในไฟล์หรือผ่าน API ฉันไม่ทราบคุณสมบัติดังกล่าว (แต่อาจมีอยู่) แน่นอนว่าคุณสามารถแยกนักแต่งเพลงอย่างเวสตันและนำไปใช้กับตัวเองได้หากคุณไม่ต้องการโซลูชันทั่วไปสำหรับผู้แต่งเพลงทุกคน
mviereck

ทำไมไม่เพียงxprop? มันแสดงรายละเอียดที่น่ากลัวมากมายผ่านหน้าต่างผ่าน XWayland รวมถึง_NET_WM_PID(CARDINAL)ซึ่งเป็นกระบวนการริเริ่ม PID
istepaniuk

คำตอบ:


1

ข่าวดีมีบางสิ่งที่สิ่งนี้สร้างขึ้นใน Gnome Shell และไม่เหมือนกับxpropงานของ Xorg และ Wayland ท้ายที่สุดสิ่งนี้อาจอยู่ในขอบเขตของเครื่องมืออื่น ๆ หากคุณใช้ KDE, i3 หรืออย่างอื่น

เริ่มต้นด้วยการพิมพ์คีย์ "ALT + F2" บนแป้นพิมพ์ซึ่งจะแสดงเมนูดังนี้:

alt ft

หลังจากนั้นขึ้นมาออกคำสั่งlg(สำหรับ "มองหากระจก)

นี่จะเป็นการเปิดหน้าต่างกระจกมองขึ้นมาซึ่งเราสามารถดึงข้อมูลหน้าต่างได้ เลือก "หน้าต่าง" จากมุมบนขวาของกระจกมอง:

ส่วนหน้าต่าง

จากตรงนั้นคุณจะเห็นรายการหน้าต่างซึ่งคุณสามารถคลิกที่ชื่อของหน้าต่างที่คุณต้องการระบุ

รายการ

ในกรณีนี้ฉันเลือก gedit เป็นตัวอย่าง:

Gedit

ในบรรทัดบนสุดของเอาต์พุตนั้นคุณอาจสังเกตเห็น:

Inspecting object: object instance proxy GType: MetaWindowX11 ...`

"GType" จะเป็นหนึ่งใน MetaWindowX11 หรือ MetaWindowWayland

ข้อมูลนี้มาตามhttps://fedoraproject.org/wiki/How_to_debug_Wayland_problems

ฉันได้


3
ดังนั้นสิ่งนี้จะช่วยให้การหา PID ของกระบวนการทำงานในหน้าต่างที่ระบุไว้?
czerny

0

มีร่างของxdg-foreignส่วนขยายโปรโตคอลซึ่งช่วยให้ได้รับการจัดการwl_surface's สร้างขึ้นโดยลูกค้า Wayland อื่น ๆ มีจุดจับคุณสามารถได้รับจากทุกสิ่งที่คุณสามารถได้รับจากพื้นผิวของลูกค้าของคุณ อย่างไรก็ตามโปรโตคอลนี้ยังมีข้อ จำกัด :

  • เห็นได้ชัดว่ามันจะไม่ทำงานหากไม่ได้ใช้งานในลูกค้า
  • เป็นเป้าหมายสำหรับลูกค้าที่รู้จักกันดังนั้นจึงไม่มีวิธีการทริกเกอร์: ลูกค้าของคุณสื่อสารกับลูกค้าต่างประเทศไม่ทางใดก็ทางหนึ่งโดยไม่ครอบคลุมโดยส่วนขยาย จากนั้นลูกค้าต่างประเทศจะเผยแพร่หมายเลขอ้างอิงสำหรับลูกค้าของคุณผ่านทางส่วนขยายนี้
  • xpropมันได้รับการควบคุมมากเกินไปหากเทียบกับ ที่จริงคุณสามารถวาดบนพื้นผิวต่างประเทศ!

ดังนั้นจึงไม่น่าจะกลายเป็นวิธีทั่วไปในการรับพารามิเตอร์พื้นผิวจากไคลเอนต์ใด ๆ โดยไคลเอนต์ใด ๆ แต่อย่าเสียความหวัง: มีตัวอย่างมากมายในประวัติศาสตร์เทคโนโลยีเมื่อเทคโนโลยีที่ออกแบบมาเพื่อจุดประสงค์บางอย่างได้ถูกนำมาใช้อย่างกว้างขวางเพื่อจุดประสงค์อื่น ๆ เช่นเดียวกับที่จุดบุหรี่ในรถยนต์หรือ API การเข้าถึงใน Android ยิ่งไปกว่านั้นในอนาคตอาจมีส่วนขยายโปรโตคอลที่เหมาะกับงานของคุณมากขึ้นเนื่องจากมีความต้องการแน่นอน (เช่นสำหรับตัวติดตามเวลา)

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