Come identificare la finestra facendo clic su Wayland


15

Vorrei identificare a quale processo appartiene una finestra di Wayland. Esiste qualcosa di simile xpropa X che consente all'utente di scegliere una finestra facendo clic su e genera tutti i dettagli della finestra, incluso PID?


Dubito che ci sia o sarà mai un tale comando come xprop. Uno dei principali obiettivi di Wayland è limitare l'accesso alle finestre di altri processi.
mviereck,

@mviereck Sicuramente il superutente poteva vedere le informazioni della finestra, anche a Wayland?
Nathaniel M. Beaver,

@bariumbitmap: solo se il compositore fornisce queste informazioni al di fuori della propria memoria, ad esempio in un file o tramite un'API. Non sono a conoscenza di tale specifica (ma potrebbe esistere, però). Certo, potresti biforcare un compositore come Weston e implementarlo da solo, se non hai bisogno di una soluzione generale per tutti i compositori.
mviereck,

Perché non solo xprop? Mostra un sacco di dettagli su una finestra tramite XWayland, incluso _NET_WM_PID(CARDINAL), che è il processo PID originator.
istepaniuk,

Risposte:


1

Buone notizie, c'è qualcosa come questo integrato in Gnome Shell e, diversamente dalle xpropopere con Xorg e Wayland. In definitiva, questo potrebbe cadere nel regno di altri strumenti se stai usando KDE, i3 o qualcos'altro.

Per cominciare, digita i tasti "ALT + F2" sulla tastiera per visualizzare un menu come questo:

alt ft

Dopodiché, emetti il ​​comando lg(per "specchio").

Questo farà apparire la finestra dello specchio, da cui possiamo estrarre le informazioni sulla finestra. Seleziona "finestra" nell'angolo in alto a destra dello specchio:

sezione della finestra

Da lì, vedrai un elenco di finestre, da cui è possibile fare clic sul nome della finestra che si desidera identificare.

elenco

In questo caso, ho scelto gedit per un esempio:

gedit

Nella riga superiore di tale output potresti notare:

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

"GType" sarà uno di MetaWindowX11 o MetaWindowWayland.

Queste informazioni sono disponibili in https://fedoraproject.org/wiki/How_to_debug_Wayland_problems

Io ho


3
Quindi questo consente di scoprire il PID del processo che esegue la finestra elencata?
czerny,

0

Esiste una bozza di xdg-foreignestensione del protocollo , che consente di ottenere handle di wl_surface, creati da altri client Wayland. Avendo la maniglia, puoi ottenere da esso tutto ciò che puoi ottenere dalle superfici del tuo cliente. Tuttavia, questo protocollo ha ancora delle limitazioni:

  • Ovviamente, non funzionerà se non implementato nei client.
  • È mirato per i clienti che si conoscono , quindi non fornisce un modo per attivarlo: il client comunica in qualche modo con un client straniero, non coperto dall'estensione. Quindi il client straniero pubblica un handle per il tuo client tramite questa estensione.
  • Ottiene troppo controllo, se confrontato con xprop. In realtà, puoi persino disegnare su superfici estranee!

Quindi, è improbabile che questo diventi un modo generale per ottenere parametri di superficie da qualsiasi client da qualsiasi client. Ma non perdere la speranza: ci sono molti esempi nella storia della tecnologia quando una tecnologia, inizialmente progettata per qualche scopo, è stata ampiamente utilizzata per altri scopi, proprio come gli accendisigari o le API di accessibilità in Android. Inoltre, in futuro, potrebbe apparire un'estensione del protocollo più adatta al tuo compito, in quanto ce n'è sicuramente bisogno (ad esempio, per i tracker del tempo).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.