Oct. 31st, 2024

vitus_wagner: My photo 2005 (Default)

В Debian 12 блютусный менеджер повадился открывать отдельные окна с сообщением "такое-то устройство connected", такое-то устройство "disconnected".

Причем в этих окнах нет кнопки "Ок", закрывать надо кликая на крестик в уголку окна. И возникает это окно почему-то в центре того дисплея, на котором случайно оказался курсор.

А у блютусной мыши есть привычка уходить в спячку и дисконнектиться, а потом коннектиться обратно когда за нее рукой схватишься.

Поэтому у меня стали эти мелкие окна копиться. И наконец мне это надоело. Пришлось немножко погуглить, потом поставить пакет wmctrl и написать вот такое:

wmctrl -l -x|awk '$3 ~ "blueman-applet" {print $1;}'|xargs -n1 wmctrl -ic

Окна мы выбираем по классу blueman-applet, потому что заголовок у них - имя bluetooth-устройства, то есть у разных мышей и наушников - разный. Но никаких других окон с таким классом blueman-applet не создает. Если открыть окно настроек, у него будет класс blueman-manager. Так что окна эти можно прибивать не глядя. Что и делает последняя команда в pipeline.

Сначала я хотел решить эту проблему только базовыми средствами X. Выбрать нужные окна я вполне могу по xprop. Но чтобы послать окну сообщение WM_CLOSE, надо уже что-то не входящее в пакет x11-utils. В нем есть только xkill, который пришибает не окно, а процесс его создавший (что мне совершенно не надо). А если ставить что-то что умеет закрывать окна из командной строки, то почему бы не wmctrl, который и поиск окон существенно упростит?

Почему бы не воспользоваться командой

 wmctrl -xc blueman-applet.Blueman-applet

А потому что она закрывает не все окна с данным классом, а только одно, первое попавшееся. Можно конечно ее в цикл обернуть:

 while wmctrl -xc blueman-applet.Blueman-applet; do :; done

Благо wmctrl возвращает ненулевой код завершения если не нашел окна которому нужно сказать close.

Profile

vitus_wagner: My photo 2005 (Default)
vitus_wagner

August 2025

S M T W T F S
     1 2
3456789
10111213141516
17181920212223
24252627282930
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 3rd, 2025 07:47 pm
Powered by Dreamwidth Studios