Я пытаюсь найти способ поднять все окна с одним конкретным названием.
Например, у меня есть два окна с именем superconky
(да, как вы уже догадались, я пытаюсь запустить conky в lubuntu).
У меня есть команда, которую я получил с форумов LXDE: sh -c 'wmctrl -k on; wmctrl -a superconky;'
Я использую ее для отображения рабочего стола, кроме conky. Это отлично работает, но только если у вас есть один conky. Если у вас есть два или более, вы останетесь с одним и всеми другими свернутыми.
Итак , что я должен сделать, чтобы поднять все окна?
Заранее спасибо.
"Так, что я должен сделать для повышения всех окон?"
, По-видимому, Вы имеете в виду все носатые окна?
, Так как wmctrl не делает то, что Вы хотите путем определения имени окна, необходимо использовать более точный метод speciying идентификатор окна.
Для получения списка идентификаторов окна каждый делает
wmctrl -l
Настолько предполагающий, что окна имеют суперносатый в заголовке, для извлечения просто идентификаторов окна из того списка
windowid_list="`wmctrl -l | sed -ne 's|^\([^ ]*\).*superconky.*|\1|p'`"
Тогда обрабатывают список
if [ -n "${windowid_list}" ]
then
for windowid in ${windowid_list}
do
wmctrl -i -a "${windowid}"
done
fi
, Обращают внимание, что флаг "-i" для обозначения числового windowid должен быть определен перед флагом действия ("-a", "-R", или безотносительно) или ничего не происходит.
Также обращают внимание, что "-a" повышает и фокусирует окно и что только одно окно может быть сфокусировано за один раз.
кроме того, если второе суперносатое окно непосредственно под первым, когда второй повышен, он затенит первое.