如何从pid获取xid(反之亦然)?

Vi.*_*Vi. 5 linux x11 pid

如何从xid(X窗口标识符)获取pid?如何获取给定pid的xid列表?

(假设所有应用程序都使用运行DISPLAY=:0,而没有使用网络透明性)

我期望的是这样的:

  1. 挖入/ proc / $ pid / fd /以跟踪与X服务器的连接
  2. 跟随这种联系,深入挖掘 /proc/`pidof X`/fd
  3. 在X内部进行挖掘,因为它应该知道如何将与它的连接映射到Windows。

Nou*_*him 5

您可以用来xprop -id <windowid> _NET_WM_PID获取相关窗口的 PID 属性。您应该知道窗口的窗口 ID,并且并非所有应用程序都设置原子_NET_WM_PID


Izk*_*ata 1

这适用于我的目的:

=^_^= izkata@Izein:~$ XID=0x340001c
=^_^= izkata@Izein:~$ printf "%d\n" $XID               # Convert from hex to decimal
54525980
=^_^= izkata@Izein:~$ xdotool getwindowpid 54526066
20639
=^_^= izkata@Izein:~$ ps 20639
  PID TTY      STAT   TIME COMMAND
20639 ?        Ssl  116:25 /usr/lib/firefox/firefox
Run Code Online (Sandbox Code Playgroud)