Как привязать ключ клиента к определенному классу клиента в Awesome WM?

Я хочу привязать клиентский ключ для выполнения какой-либо операции с ярлыком Mod1-q только в браузере vivaldi, поэтому я пишу в конфиге clientkeys в своем rc.lua:

awful.key({"Mod1"}, "q",
function (c)
  if c.class == "Vivaldi-stable" then
    someoperation()
  end
end,
{description = "Some operation only in browser", group = "client"})

Проблема с этим кодом в том, что someoperation() выполняется, если Mod1+q нажимается в браузере vivaldi, но все остальные окна вообще не получают ввода, а я хочу, чтобы они получали Mod1+q, как и раньше. Есть ли какой-то очевидный способ привязать ключи только к определенному классу клиента, может быть, через функцию match?


person sandric    schedule 22.12.2017    source источник


Ответы (1)


Добавьте к подходящей записи (с class = "Vivaldi[-]stable") до awful.rules следующее:

callback = function(c)
    local keys = c:keys()
    c:keys(gears.table.join(keys,
        awful.key({"Mod1"}, "q", someoperation,
        { description = "Some operation only in browser", group = "client"})))
end
person Uli Schlachter    schedule 23.12.2017