在有限的时间段内听取键盘事件

时间:2015-12-31 09:37:51

标签: lua awesome-wm

我正在尝试在令人敬畏的wm中配置一个键盘事件,它应该像这样工作:

按下键“XF86AudioMute”后,用户有2秒钟按数字键(从0到9)以激活事件。 如果在此时间之后没有按下这些键(理想情况下,如果按下任何其他键也是如此),则会中止数字键的监听。此外,如果当然按下数字键。

任何人都知道如何在令人敬畏的配置文件中解决这个问题?

1 个答案:

答案 0 :(得分:0)

很棒的有keygrabbers和计时器。当按下XF86AudioMute时,你将启动一个在两秒内触发的计时器和一个获取所有输入的keygrabber。

类似以下内容(请注意,您仍需要将键绑定设置为XF86AudioMute):

function do_stuff()
  local t = timer({ timeout = 2 })
  t:start()
  local grabber
  local function cleanup()
    t:stop()
    awful.keygrabber.stop(grabber)
  end
  t:connect_signal("timeout", cleanup)
  grabber = function(mod, key, event)
    if event == "release" then return end
    if key = "1" then
      naughty.notify({ text = "event 1 activated" })
    end
    cleanup()
  end
  awful.keygrabber.run(grabber)
end

编辑:顺便说一句,我从来没有测试过这段代码,也不知道它是否真的有效!