Действительно ли возможно получить процесс/заголовок активного окна в Gnome?

Ubuntu использует ureadahead пакет. Это могло бы взять некоторую работу для получения его идущий на Arch, но должно быть возможно. Посмотрите страницу Ureadahead на Wiki Arch.

28
06.07.2013, 06:32
4 ответа

Можно использовать xdotool, универсальное средство автоматизации X-окна.

focused_window_id=$(xdotool getwindowfocus)
active_window_id=$(xdotool getactivewindow)
active_window_pid=$(xdotool getwindowpid "$active_window_id")

(Я не знаю, каково различие между сфокусированным и активным.)

(Я думал, что wmctrl мог сделать это, но по-видимому нет.)

17
27.01.2020, 19:39

Попробуйте команду xwininfo, http://www.xfree86.org/4.2.0/xwininfo.1.html, она определенно возвращает заголовок окна и насколько процесс идет, хорошо...

X присвоил ему идентификатор и стал родительским PID окна и также скрыл бы его по умолчанию, таким образом, предполагая, что Gnome имеет поддерживаемый NET_WM_PID, поскольку этот патч с 2001 указывает, что это имеет, http://mail.gnome.org/archives/gtk-devel-list/2001-October/msg00238.html, затем мы можем рассмотреть это сообщение, http://www.mail-archive.com/devel@xfree86.org/msg05809.html, где автор пишет короткую программу C для преобразования идентификатора Окна в PID, вуаля.

4
27.01.2020, 19:39
  • 1
    Но это кажется этим xwininfo требует, чтобы я вручную выбрал необходимое окно. Я надеялся на способ получить сфокусированное окно от удара. –  Rogach 17.05.2012, 22:30
  • 2
    Что-то как в, 'xwininfo - корень - дети | grep-oEi 'Идентификатор окна: (? [0-9a-zA-Z] +) | grep-oEi' (? 0-9a-zA-Z)' - редактирование: мой палец скользил, мой regex для идентификатора окна был плох. проверьте этот другой сайт на переменную ссылку: davygoat.com/software/rizzle/How_it_works.html –  rhoyerboat 17.05.2012, 23:19
  • 3
    Эта команда только дает "корневой" идентификатор окна а не активный один :( –  Rogach 18.05.2012, 06:39

Более простой (IMO), чем решение OP (т.е. без ps, grep и awk), для получения имени процесса :

cat /proc/$(xdotool getwindowpid $(xdotool getwindowfocus))/comm

Или если Вы хотите конец строки :

echo $(cat /proc/$(xdotool getwindowpid $(xdotool getwindowfocus))/comm)
8
27.01.2020, 19:39
  • 1
    Да, cat /proc/ хорошо (и возможно быстрее, так как это не включает захват целого ps вывод). Я добавил его к решению рассматриваемое тело, таким образом, будущие пользователи смогут найти его. –  Rogach 06.07.2013, 06:34

Это очень просто:

xdotool getactivewindow getwindowname

Удачи, надеюсь, это сработает для вас!

28
27.01.2020, 19:39

Теги

Похожие вопросы