2010-01-24 6 views
3

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

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

xprop -root | grep "_NET_ACTIVE_WINDOW (ОКНО)"

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

Если текущее окно гном-терминал, это будет возвращать 'гном-терминал.

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

ответ

0

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

У меня есть answered a very similar question несколько дней назад, см. Эту ссылку для получения более подробной информации.

+0

Это может быть несколько процессов, если терминал gnome запускает несколько вкладок. – dseifert

+0

Я считаю, что каждая вкладка будет иметь свой собственный PID, потому что она запускает отдельную оболочку. –

0

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

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

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

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

Есть ли способ, чтобы узнать Баш PID из гнома-терминала открытой вкладки в настоящее время?

+0

Не через выход ps. Вам нужно как-то запросить приложение-гнома для информации, но я не знаю, как вы это сделаете. Возможно, проверьте исходный код? P.S .: Чтобы запросить более подробную информацию о ответе, отправьте комментарий или ответьте на этот вопрос. Добавление нового ответа затруднит чтение, поскольку порядок ответов не обязательно по времени. – dseifert

+0

Да. Он управляет командой 'ps'. –

+0

@adam: :) @dseifert: спасибо и плохо осмотрите гнома-терминал sourecode на этой неделе. – Funsi