Cómo identificar la ventana haciendo clic en Wayland

15

Me gustaría identificar a qué proceso pertenece una ventana en Wayland. ¿Hay algo parecido xpropa X que permita al usuario elegir una ventana haciendo clic y muestre todos los detalles de la ventana, incluido el PID?

Czerny
fuente
Dudo que haya o haya un comando como xprop. Un objetivo principal de Wayland es restringir el acceso a las ventanas de otros procesos.
mviereck
@mviereck ¿Seguramente el superusuario podría ver información de la ventana, incluso en Wayland?
Nathaniel M. Beaver
@bariumbitmap: solo si el compositor proporciona esta información fuera de su propia memoria, por ejemplo, en un archivo o mediante una API. No estoy al tanto de tal especificación (pero puede existir, sin embargo). Por supuesto, podría bifurcar un compositor como Weston e implementarlo usted mismo, si no necesita una solución general para todos los compositores.
mviereck
¿Por qué no solo xprop? Muestra una gran cantidad de detalles sobre una ventana a través de XWayland, incluido _NET_WM_PID(CARDINAL), que es el PID del proceso original.
istepaniuk 05 de

Respuestas:

1

Buenas noticias, hay algo como esto integrado en Gnome Shell, y a diferencia de los xproptrabajos con Xorg y Wayland. En última instancia, esto puede caer en el ámbito de otras herramientas si está utilizando KDE, i3 u otra cosa.

Para comenzar, escriba las teclas "ALT + F2" en el teclado que abrirá un menú como este:

alt ft

Después de que aparezca, emita el comando lg(para "espejo").

Esto abrirá la ventana de espejo, desde la cual podemos extraer información de la ventana. Seleccione "ventana" en la esquina superior derecha del espejo:

sección de ventana

Desde allí, verá una lista de ventanas, desde la cual puede hacer clic en el nombre de la ventana que desea identificar.

lista

En este caso, elegí gedit como ejemplo:

gedit

En la línea superior de esa salida puede observar:

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

El "GType" será uno de MetaWindowX11 o MetaWindowWayland.

Esta información viene según https://fedoraproject.org/wiki/How_to_debug_Wayland_problems

He

Brian Barba Roja
fuente
3
Entonces, ¿esto permite descubrir el PID del proceso que ejecuta la ventana enumerada?
czerny
0

Existe un borrador de xdg-foreignextensión de protocolo , que permite obtener identificadores de wl_surface's', creados por otros clientes de Wayland. Al tener el mango, puede obtener de él todo lo que pueda obtener de las superficies de su cliente. Sin embargo, este protocolo todavía tiene limitaciones:

  • Obviamente, no funcionará si no se implementa en clientes.
  • Está dirigido a clientes que se conocen entre sí, por lo que no proporciona una forma de activarlo: su cliente se comunica con un cliente extranjero de alguna manera, no cubierto por la extensión. Luego, el cliente extranjero publica un identificador para su cliente a través de esta extensión.
  • Obtiene demasiado control, en comparación con xprop. En realidad, ¡incluso puedes dibujar en superficies extrañas!

Por lo tanto, es poco probable que se convierta en una forma general de obtener parámetros de superficie de cualquier cliente por parte de cualquier cliente. Pero no pierda la esperanza: hay muchos ejemplos en la historia de la tecnología cuando una tecnología, inicialmente diseñada para algún propósito, se usó ampliamente para otros fines, al igual que los encendedores de automóviles o las API de accesibilidad en Android. Además, en el futuro, puede aparecer una extensión de protocolo que sea más adecuada para su tarea, ya que definitivamente es necesario (por ejemplo, para rastreadores de tiempo).

bodqhrohro
fuente