Получите имя процесса позади окна

Я пытаюсь сделать сценарий, который проверяет, закрывается ли Spotify. Я попробовал следующее для печати количества открытых окон Spotify, но оно не работает.

wmctrl -l | grep "Spotify" | wc -l

Причина состоит в том, потому что, когда Spotify играет музыку, изменения заголовка окна в названии песни, которая играет, и она не включает "Spotify".

Я думал, что мог сделать что-то как следующее для печати количества открытых окон Spotify:

wmctrl -l | awk '{print $1}' | xargs -I id ... | wc -l

Но я не уверен, что управляет, чтобы я мог использовать для проверки названия процесса, который выполнил бы окно, учитывая окно ID, возвращенное из wmctrl (в форме 0x06200001)

1
задан 24 December 2018 в 21:09

1 ответ

wmctrl -l | awk '{print $1}' | xargs -i xprop -id {} | grep WM_CLASS\(STRING\)\ =\ \"spotify\" | wc -l

Я использовал xargs для выполнения xprop -id <window-id> на каждом открытом окне, и для каждого окна Spotify, вывода xprop показал бы (среди большого количества другого материала) строку как это:

WM_CLASS(STRING) = "spotify", "Spotify"

Таким образом, я передал xprop по каналу в grep WM_CLASS(STRING) = "spotify", obvoiusly выход из пробелов, цитат и скобок.

1
ответ дан 7 December 2019 в 15:09

Другие вопросы по тегам:

Похожие вопросы: