在有限的时间内监听键盘事件。

我正在尝试在 awesome wm 中配置一个键盘事件,应该按照以下方式工作:

按下“XF86AudioMute”键后,用户有2秒钟时间按数字键(从0-9)以触发事件。 如果在此时间内未按下任何键(理想情况下,如果按下其他任何键也是如此),则监听数字键的操作将被中止。如果当然按下一个数字键。

有人有想法吗,我如何在 awesome 配置文件中处理这个问题?

点赞
用户436275
用户436275

Awesome 拥有键盘抓取工具和定时器。当按下 XF86AudioMute 键时,你可以启动一个在两秒后触发的定时器和一个获取所有输入的键盘抓取工具。

类似以下代码(请注意,您仍需要设置到 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

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

2016-01-02 14:19:35