Cách xác định cửa sổ bằng cách nhấp vào Wayland


15

Tôi muốn xác định quá trình cửa sổ thuộc về Wayland. Có bất cứ điều gì giống như xpropcho X cho phép người dùng chọn một cửa sổ bằng cách nhấp và xuất tất cả các chi tiết cửa sổ, bao gồm cả PID không?


Tôi nghi ngờ rằng có hoặc sẽ có một lệnh như xprop. Một mục tiêu chính của Wayland là hạn chế quyền truy cập vào cửa sổ của các quy trình khác.
mviereck

@mviereck Chắc chắn siêu người dùng có thể nhìn thấy thông tin cửa sổ, ngay cả trong Wayland?
Nathaniel M. Beaver

@bariumbitmap: Chỉ khi nhà soạn nhạc cung cấp những thông tin này bên ngoài bộ nhớ của chính nó, ví dụ như trong một tệp hoặc thông qua API. Tôi không biết về một đặc điểm kỹ thuật như vậy (nhưng nó có thể tồn tại, mặc dù). Tất nhiên, bạn có thể kết hợp một nhà soạn nhạc như weston và tự thực hiện điều đó, nếu bạn không cần một giải pháp chung cho tất cả các bộ tổng hợp.
mviereck

Tại sao không chỉ xprop? Nó cho thấy rất nhiều chi tiết trên một cửa sổ thông qua XWayland, bao gồm _NET_WM_PID(CARDINAL), đó là quá trình khởi tạo PID.
istepaniuk

Câu trả lời:


1

Tin vui, có một cái gì đó như thế này được tích hợp trong Gnome Shell, và không giống như xprophoạt động với Xorg Wayland. Cuối cùng, điều này có thể rơi vào địa hạt của các công cụ khác nếu bạn đang sử dụng KDE, i3 hoặc một cái gì đó khác.

Để bắt đầu, hãy nhập các phím "ALT + F2" trên bàn phím sẽ hiển thị menu như thế này:

alt ft

Sau đó, đưa ra lệnh lg(cho "kính nhìn).

Điều này sau đó sẽ đưa ra cửa sổ kính nhìn, từ đó chúng ta có thể trích xuất thông tin cửa sổ. Chọn "cửa sổ" từ góc trên bên phải của kính nhìn:

phần cửa sổ

Từ đó, bạn sẽ thấy một danh sách các cửa sổ, từ đó bạn có thể nhấp vào tên của cửa sổ bạn muốn xác định.

danh sách

Trong trường hợp này, tôi đã chọn gedit cho một ví dụ:

gedit

Trong dòng trên cùng của đầu ra đó, bạn có thể nhận thấy:

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

"GType" sẽ là một trong MetaWindowX11 hoặc MetaWindowWayland.

Thông tin này xuất hiện theo https://fedoraproject.org/wiki/How_to_debug_Wayland_probols

tôi có


3
Vì vậy, điều này có cho phép tìm ra PID của quá trình chạy cửa sổ được liệt kê không?
czerny

0

một dự thảo về xdg-foreignphần mở rộng giao thức , cho phép lấy các thẻ điều khiển wl_surface, được tạo bởi các máy khách Wayland khác. Có tay cầm, bạn có thể lấy từ nó bất cứ thứ gì bạn có thể có được từ các bề mặt của khách hàng. Tuy nhiên, giao thức này vẫn còn những hạn chế:

  • Rõ ràng, nó sẽ không hoạt động nếu không được thực hiện trong các máy khách.
  • Nó nhắm mục tiêu cho các khách hàng biết nhau, vì vậy nó không cung cấp cách để kích hoạt nó: khách hàng của bạn giao tiếp với khách hàng nước ngoài theo một cách nào đó, không thuộc phạm vi của tiện ích mở rộng. Sau đó, khách hàng nước ngoài xuất bản một điều khiển cho khách hàng của bạn thông qua tiện ích mở rộng này.
  • Nó đạt được quá nhiều kiểm soát, nếu so với xprop. Trên thực tế, bạn thậm chí có thể vẽ trên bề mặt nước ngoài!

Vì vậy, điều này khó có thể trở thành một cách chung để có được các tham số bề mặt từ bất kỳ máy khách nào bởi bất kỳ máy khách nào. Nhưng đừng mất hy vọng: có rất nhiều ví dụ trong lịch sử công nghệ khi một công nghệ, ban đầu được thiết kế cho mục đích nào đó, được sử dụng rộng rãi cho các mục đích khác, giống như bật lửa xe hơi hoặc API khả năng truy cập trong Android. Hơn nữa, trong tương lai, có thể xuất hiện một phần mở rộng giao thức phù hợp hơn cho nhiệm vụ của bạn, vì chắc chắn cần phải có nó (ví dụ, đối với trình theo dõi thời gian).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.