Принудительно сфокусировать клиент под мышью

Есть рецепты, как сменить фокус на движение мыши или смену клиента. Но я хочу предотвратить кражу фокуса любым окном. Например. Я открываю новый терминал с помощью ярлыка по умолчанию meta-Enter, и когда он открывается, он сразу же крадет фокус. Есть ли способ предотвратить это?


person Eugene Pakhomov    schedule 24.02.2017    source источник


Ответы (1)


Да, это возможно. Фокусные события могут происходить разными способами. В случае с новыми клиентами просто прокомментируйте строку focus в ваших правилах.

Чтобы фокус следовал за мышью, удалите client.focus = c в разделе mouse::enter rc.lua.

Для конкретных клиентов можно добавить фильтры фокуса:

https://awesomewm.org/apidoc/libraries/awful.ewmh.html#add_activate_filter

Для самого глубокого и продвинутого управления фокусом вы можете отключить обработчик фокуса по умолчанию (awful.ewmh.activate) от сигнала request::activate (Awesome 4.0+) и реализовать свой собственный. В этом случае вы будете иметь полный контроль над всеми событиями фокуса.

person Emmanuel Lepage Vallee    schedule 24.02.2017
comment
Странно, закомментирование focus строки в правилах ничего не изменило. Но добавление фильтра через add_activate_filter, который всегда возвращает false, помогло. Спасибо! - person Eugene Pakhomov; 04.03.2017