Это часто происходит со мной, что приложение открывается вопрос и интересно, которому точному приложению принадлежит это окно, потому что, если я смотрю в Средстве запуска, нет никакого приложения, которое в настоящее время фокусируется (никакой белый треугольник на правой стороне значка, когда я фокусирую окно сообщения),
Существует ли способ узнать принадлежность открытого окна?
Используя xdotool
Сначала удостоверьтесь xdotool
доступно в Вашей системе:
sudo apt-get install xdotool
Следующая команда будет печатать название процесса окна в настоящее время в фокусе:
cat "/proc/$(xdotool getwindowpid "$(xdotool getwindowfocus)")/comm"
Чтобы дать себе, больше времени, чтобы сфокусировать окно / нажимает на него, можно предварительно ожидать маленькую продолжительность сна:
sleep 5 && cat "/proc/$(xdotool getwindowpid "$(xdotool getwindowfocus)")/comm"
Имя процесса должно быть отображено после короткого срока.
Используя wininfo
Wininfo является графической утилитой, которая отображает различную информацию об окнах и их свойствах, включая PID (идентификатор процесса) связанный с окном:
wininfo
должно быть доступным в официальных репозиториях:
sudo apt-get install wininfo
Определив PID окна можно затем искать имя процесса, связанное с ним. Существуют различные способы сделать это, например, путем взгляда на /proc
:
$ cat /proc/17002/comm
gnome-terminal
Это было бы именем процесса, связанным с PID 17002
.
Более изящный путь, который позволяет осматривать контекст дерева процесса, как предложено @Rmano:
$ pstree -a -s -l -p -u 17002
init,1
└─lightdm,1900
└─lightdm,3202 --session-child 12 19
└─lxsession,3307,glutanimate -s LXDE -e LXDE
└─openbox,3362 --config-file /home/glutanimate/.config/openbox/lxde-rc.xml
└─gnome-terminal,17002
├─bash,1841
├─bash,2332
├─bash,2424
│ └─pstree,2484 -a -s -l -p -u 17002
├─gnome-pty-helpe,1840
├─{gnome-terminal},1835
├─{gnome-terminal},1836
├─{gnome-terminal},1842
└─{gnome-terminal},2269
Конечно, можно также объединиться pstree
с xdotool
опция выше (благодаря @rubo77 для указания на это!):
sleep 2; pstree -spaul $(xdotool getwindowpid "$(xdotool getwindowfocus)")
Источники:
Можно создать сочетание клавиш с этой командой:
zenity --info --text $(xprop $win_id WM_CLASS | cut -d" " -f4-)
Можно использовать xprop
для получения идентификатора Процесса нажатого Окна:
xprop $win_id _NET_WM_PID
тогда анализируют его с pstree
:
pstree -spaul $(xprop $win_id _NET_WM_PID | cut -d" " -f3-)
Это Вы можете перенаправленный к окну текстовой информации с
pstree -spaul $(xprop $win_id _NET_WM_PID | cut -d" " -f3-)|zenity --text-info --title "pstree of clicked Window"
, я попробовал к , создают сочетание клавиш для этой последней команды (если Вам нужна она regularely), но по некоторым причинам Это не работает.
Установив xdtool и yad, вы можете получить красивое приложение с графическим интерфейсом.
#!/bin/bash
while true; do cat "/proc/$(xdotool getwindowpid "$(xdotool
getwindowfocus)")/comm"; sleep 1; echo -e '\f'; done | yad --no-
buttons --no-focus --geometry 250x10 --fixed --text-info --
title="Active window" --listen