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

Мне нужно решение для получения текущей активной (сфокусированной) информации о окне на рабочем столе Gnome 2. Меня больше всего интересует процесс запуска этого окна и заголовка окна.

Является ли это возможным?

РЕШЕНИЕ:

Получение заголовка окна:

xwininfo -root -children | grep $(printf '%x\n' $(xdotool getwindowfocus)) | grep -oEi '"[^"]+"' | head -1 

Получение имени процесса:

 ps -e | grep $(xdotool getwindowpid $(xdotool getwindowfocus)) | grep -v grep | awk '{print $4}' 

или:

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

  • Понимание рабочего стола Linux
  • Linux Mint 13 Xfce оконная кнопка исчезла и нет курсора мыши в текстовом режиме
  • Как настроить ярлык, чтобы открыть доступ к окну, щелкнув правой кнопкой мыши значок systray?
  • Кнопки Windows FVWM (Maximize Minimize ...), Темы
  • Открыть размер и положение ширины предварительного просмотра PDF-файла и «всегда сверху» из командной строки
  • Как запустить скрипт, когда я нажимаю клавиши Alt + Tab, поддерживающие «Window Switcher Dialog»?
  • Как эмулировать эффект KWin по командной строке?
  • настройка размера окон emacs в twm, в зависимости от сеанса vnc
  • 4 Solutions collect form web for “Можно ли получить активный процесс / заголовок окна в Gnome?”

    Вы можете использовать xdotool , универсальный инструмент автоматизации окон X.

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

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

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

    Это так просто:

     xdotool getactivewindow getwindowname 

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

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

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

    Или, если вам нужен конец строки:

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

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

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

    Interesting Posts

    Как автоматически перезапустить программу, когда она приближается к максимальному пределу потока?

    Поддержка файлов, блокировка разделяемой памяти и диска

    Ошибка: не может найти командную строку при загрузке системы

    Разрешить доступ только для чтения user2 к подкаталогу user1

    Как сделать файлы, созданные определенным пользователем, для получения определенных разрешений по умолчанию

    Где моя резервная копия базы данных PostgreSQL сохраняется после запуска pg_dump?

    "Grep: Непревзойденная ошибка [" при использовании регулярного выражения

    xfdesktop (xfce4) сломан? (невозможно установить обои)

    Мониторинг и предупреждение пользователя при изменении настроек stty?

    Я не могу удалить файл даже после изменения права собственности и разрешений

    настройка беспроводной сети debian

    Asus Bluetooth Dongle с чипом Atheros (ath3k) – пробник с открытым кодом OpenSUSE с ошибкой -5

    Фоновый скрипт, выполняемый при входе в систему, прерывается, когда я запускаю tmux в терминале

    / etc в другом разделе

    Freeradius не видит своего WAP-клиента

    Linux и Unix - лучшая ОС в мире.