Как мне получить xid из pid (и наоборот)? - PullRequest
5 голосов
/ 04 апреля 2011

Как мне получить pid от xid (идентификатор окна X)?Как получить список xids для данного pid?

(при условии, что все приложения работают с DISPLAY=:0, при этом не используется прозрачность сети)

Я ожидаю что-то вроде:

  1. Введите / proc / $ pid / fd / для отслеживания соединения с X-сервером
  2. Следуйте этому соединению, введите /proc/`pidof X`/fd
  3. Копайте в X какдолжен знать, как сопоставить подключения к нему с Windows.

Ответы [ 2 ]

4 голосов
/ 04 апреля 2011

Вы можете использовать xprop -id <windowid> _NET_WM_PID, чтобы получить свойство PID рассматриваемого окна. Вы должны знать идентификатор окна, и не все приложения устанавливают атом _NET_WM_PID.

1 голос
/ 19 января 2017

Это работает для моих целей:

=^_^= 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
...