Как получить идентификатор окна из идентификатора процесса

Эта команда получит PID процесса xterm :

 xterm & export APP_PID=$! 

Как я могу получить идентификатор окна, связанный с этим процессом (идентификатор окна xterm )? Я имею в виду, что идентификатор, который xdotool selectwindow вернется после нажатия на окно xterm .

3 Solutions collect form web for “Как получить идентификатор окна из идентификатора процесса”

Это обсуждается на «другом» форуме:

  • Есть ли команда linux для определения идентификаторов окон, связанных с данным идентификатором процесса?
  • Как получить окно X11 из идентификатора процесса?

Во-первых, @Patrick указывает, что xwininfo может возвращать информацию обо всех окнах и используя xprop для каждого окна, вы можете проверить свойство _NET_WM_PID , сопоставляя его с вашим идентификатором процесса.

Я буду использовать эту простую команду, чтобы получить идентификатор окна в шестнадцатеричном формате

 wmctrl -l | grep -i xterm | awk '{print $1}' 

Для десятичного формата команда bc может использоваться для преобразования

 echo "ibase=16; `wmctrl -l | grep -i xterm | cut -c 3-11 | tr az AZ`" | bc 

Вы можете получить список соответствующих окон через

  xdotool search --pid [pid] 

также см. xdotool help search

  • xdotool: как искать окно по названию и классу с разными шаблонами (аналогично AutoHotkey)
  • xdotool - как получить идентификатор окна с учетом его X и Y?
  • Повторно активировать сохраненный pid окна с помощью xdotool
  • минимизация и повышение окна из сценария оболочки
  • Инструмент, который позволяет вам рисовать прямоугольник на экране, дает размеры + XY?
  • Как определить, находится ли окно в фокусе?
  • Могу ли я имитировать движения мыши через терминал без xdotool?
  • X: узнать, видимо ли окно пользователю, т.е. не покрыто другими
  • Как я могу автоматизировать черепицу окна с пользовательской шириной? (Корица)
  • xdotool и xbindkeys
  • xdotool печатает 8 вместо Tab
  • Linux и Unix - лучшая ОС в мире.