Поднимите все окна с определенным названием

Я пытаюсь найти способ поднять все окна с одним конкретным названием.

Например, у меня есть два окна с именем superconky (да, как вы уже догадались, я пытаюсь запустить conky в lubuntu).

У меня есть команда, которую я получил с форумов LXDE: sh -c 'wmctrl -k on; wmctrl -a superconky;'

Я использую ее для отображения рабочего стола, кроме conky. Это отлично работает, но только если у вас есть один conky. Если у вас есть два или более, вы останетесь с одним и всеми другими свернутыми.

Итак , что я должен сделать, чтобы поднять все окна?

Заранее спасибо.

2
задан 9 July 2014 в 21:00

1 ответ

"Так, что я должен сделать для повышения всех окон?"

, По-видимому, Вы имеете в виду все носатые окна?

, Так как 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" повышает и фокусирует окно и что только одно окно может быть сфокусировано за один раз.

кроме того, если второе суперносатое окно непосредственно под первым, когда второй повышен, он затенит первое.

3
ответ дан 9 July 2014 в 21:00

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

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