Как проверить, какая программа запускается внутри gnome-терминала - PullRequest
3 голосов
/ 24 января 2010

Я хочу написать программу, которая печатает текущее имя окна с фокусом, и если это терминал gnome, то распечатывает работающую программу на текущей вкладке терминала gnome (например, vim, если запущен сеанс vim) .

Чтобы получить текущее название окна, я использовал:

xprop -root | grep "_NET_ACTIVE_WINDOW (WINDOW)"

xprop -id 0x220ad5a | grep "WM_CLASS (STRING)"

Если текущее окно является терминалом gnome, будет возвращено «терминал gnome».

Но как мне узнать, какая программа работает внутри gnome-терминала (точнее: внутри текущей вкладки gnome-терминала)? Я думал об использовании dbus, но gnome-терминал, похоже, не поддерживает его.

Ответы [ 2 ]

0 голосов
/ 24 января 2010

Спасибо, Адам! Я почти у цели. С помощью xprop я могу получить PID терминала gnome (6736). Но, к сожалению, для всех окон и вкладок gnome-терминала существует только один процесс. Посмотрите этот вывод pstree с двумя открытыми окнами терминала gnome:

 -gnome-terminal(6736)-+-bash(6738)---vim(6780) 

  |                    |-bash(7026)---pstree(7045) 

  |                    | `-{gnome-terminal}(6740) 

Есть ли способ узнать pid bash открытой вкладки терминала gnome?

0 голосов
/ 24 января 2010

Получите PID терминала gnome и проверьте, какие процессы имеют этот номер в качестве PPID.

Я ответил на очень похожий вопрос несколько дней назад, смотрите эту ссылку для деталей.

...