Предотвращение кражи фокуса в Awesome WM, особенно из Skype

8

Когда я использую KDE с Awesome WM и получаю новое сообщение в Skype, Plasma Desktop привлекает внимание. Это сводит меня с ума, так как я не могу просто продолжать печатать в моем текущем окне. Есть ли способ предотвратить это для любого открытого окна?

Похоже, что кража фокуса предотвращена с помощью Awesome WM или Plasma, но переключатель окна из Plasma по-прежнему выделяет окно. Таким образом, панель управления Plasma (та, что внизу) не скрыта и поэтому крадет сам фокус.

Когда я это сделал killall plasma-desktop, кража фокуса прекратилась. Тем не менее, я также убил plasma-nmи другие вещи, которые я хотел бы использовать.

Мартин Уединг
источник

Ответы:

1

Актуальной проблемой был не Skype, крадущий фокус. Skype только что уведомил оконного менеджера, что у него есть активность. Затем Awesome WM показал тег (виртуальный рабочий стол) как имеющий активность. Но тогда панель KDE Plasma все еще содержала список активных окон. В этом виджете KDE окно с активностью было изменено, и Awesome WM поместил фокус на панель плазмы KDE.

Я удалил список окон из панели Plasma и больше никогда меня не беспокоил.

Мартин Уединг
источник
0

KDE

Разве вы не можете переключиться на «щелчок, чтобы сосредоточиться» в KDE, чтобы решить эту проблему?

   сс кде

Потрясающие

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

xdotool

В Firefox существует очень давняя ошибка, которая позволяет плагинам (Flash, Acrobat и т. Д.) Украсть все сочетания клавиш для окна. Это простой обходной путь возврата фокуса клавиатуры в окно верхнего уровня:

код

   -- Escape from keyboard focus trap (eg Flash plugin in Firefox)
    awful.key({ modkey, "Control" }, "Escape", function ()
         awful.util.spawn("xdotool getactivewindow mousemove --window %1 0 0 click --clearmodifiers 2")
    end),

ПРИМЕЧАНИЕ. Этот обходной путь xdotoolдолжен быть установлен.

двигать мышью

Например, используйте Move Mouse, чтобы переместить указатель мыши в безопасное место (любую область без ссылок или встроенных элементов Flash), затем вызовите функцию ниже, чтобы имитировать щелчок мыши (который возвращает фокус).

код

-- Simulate mouse click
local function simulateClick()
    root.fake_input("button_press", 1)
    root.fake_input("button_release", 1)
end

-- Bind it to a key
    awful.key({ modkey, }, "n", function() simulateClick() end),

Ссылки

SLM
источник