И в конечном итоге также, когда они запускаются и закрываются и сколько раз они бегали на заднем плане и на переднем плане.
Мне не нужно это для каждого приложения, но только для нескольких. Я могу использовать собственный лаунчер из файла рабочего стола (но как?). Но так как у меня есть дюжина приложений для отслеживания, общее решение будет лучше.
Заранее спасибо!
Редактировать : я вызываю передний план, когда окно имеет фокус.
Я не знаю ни одного готового решения.
Если вы работаете в X Window, вы можете легко написать сценарий оболочки на основе этого ответа . У вас будет цикл, в котором вы запускаете xprop -root _NET_ACTIVE_WINDOW
, вырезаете из этого идентификатор окна, затем передаете его в xprop -id ...
, обрабатываете его вывод (например, grep
для нескольких релевантных ключей) и сохраняете его где-нибудь (например, добавляете в текстовый файл). Наконец, sleep
на 10 секунд в цикле.
Между тем, напишите несколько сценариев, которые обрабатывают файлы журналов (или загрузите их в базу данных и т. Д.).
Такой подход не может работать под Wayland из-за его модели безопасности, я боюсь, что вам придется взломать композитор, чтобы сделать это для вас.
Чтобы проверить , какие окна имеют фокус , вы можете запустить это в терминале:
[romano:~] 3s 130 % while true; do
xprop -root _NET_ACTIVE_WINDOW
sleep 3
done
_NET_ACTIVE_WINDOW(WINDOW): window id # 0x3600006
_NET_ACTIVE_WINDOW(WINDOW): window id # 0x3a00010
(Обратите внимание, что если вы введете команду xprop...
во время ввода, вы, очевидно, иметь идентификатор окна терминала, в котором вы печатаете ...)
Затем вы можете увидеть PID процесса, которому принадлежит окно с:
[romano:~] % xprop -id 0x3a00010 _NET_WM_PID
_NET_WM_PID(CARDINAL) = 18522
... а затем выполните поиск процесса с помощью любого из ps
инструментов .
[romano:~] % ps -p 18522
PID TTY TIME CMD
18522 ? 00:04:55 firefox
Обратите внимание, что это работает с X11 - понятия не имею о Wayland.