我想实现最简单的功能 - 将密钥重新映射a
到t
.在我的rc.lua
我有以下几行:
function myremapp_ress()
root.fake_input('key_press', "t")
end
function myremap_release()
root.fake_input('key_release', "t")
end
-- {{{ Key bindings
globalkeys = gears.table.join(
awful.key({ }, "a", myremap_press, myremap_release),
这不是分叉,因为据我所知,你需要停下来keygrabber
才能执行fake_input
。如果我改成这样:
function myremapp_ress()
keygrabber.stop()
root.fake_input('key_press', "t")
end
现在我可以输入 t 而不是 a,但myremap_release
现在不起作用并t
在前面输入,直到未添加其他关键字。我可以自己阻止它,但是当你按住键时,你只能得到第一次按键的结果:
function myremapp_ress()
keygrabber.stop()
root.fake_input('key_press', "t")
root.fake_input('key_release', "t")
end
我尝试过:
function myremapp_ress()
keygrabber.stop()
root.fake_input('key_press', "t")
keygrabber.run()
end
但它只是返回错误,我应该向 keygrabber.run 提供参数(这很奇怪,因为从文档来看,两个函数都获得相同的参数)。
所以我的问题是如何做这个简单的事情?有什么方法可以简单吗pause keygrabber
?是否有一些keygrabber.active
标志在 keygrabber 循环中被检查?停止运行 keygrabber 后如何重新启动它fake_input
?