Як визначити вікно, натиснувши на Wayland


15

Я хотів би визначити, якому процесу належить вікно в Wayland. Чи є щось подібне xpropдля X, що дозволяє користувачеві вибрати вікно, клацнувши та видаючи всі деталі вікна, включаючи PID?


Я сумніваюся, що є або коли-небудь буде така команда, як xprop. Однією з головних цілей Wayland є обмеження доступу до вікон інших процесів.
mviereck

@mviereck Напевно, супервайзер міг бачити інформацію про вікна навіть у Wayland?
Натаніель М. Бівер

@bariumbitmap: Тільки якщо композитор надає ці відомості поза власною пам'яттю, наприклад, у файл або через API. Я не знаю такої специфікації (але вона може існувати, хоча). Звичайно, ви можете роздрібнити композитор, як weston, і реалізувати це самостійно, якщо вам не потрібно загальне рішення для всіх композиторів.
mviereck

Чому б не просто xprop? Він показує надзвичайно багато деталей над вікном через XWayland, в тому числі _NET_WM_PID(CARDINAL), що є PID процесу-джерела.
istpaniukuk

Відповіді:


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. Більше того, у майбутньому може з’явитися розширення протоколу, яке більше підходить для вашої задачі, оскільки в цьому безумовно є потреба (наприклад, у трекерах часу).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.