您可以为 Menu 键创建一个“普通”键绑定,在其中启动一个 keygrabber 并使用它来获取随后的“某物”。这意味着您必须自己重新发明一些轮子,因为 AwesomeWM 中的代码不会为您管理键绑定,但它应该是可行的。
对您入门没有多大帮助的快速示例:
diff --git a/awesomerc.lua b/awesomerc.lua
index 5d2bd2c10..7973b210a 100644
--- a/awesomerc.lua
+++ b/awesomerc.lua
@@ -242,6 +243,12 @@ root.buttons(gears.table.join(
-- {{{ Key bindings
-- @DOC_GLOBAL_KEYBINDINGS@
globalkeys = gears.table.join(
+ awful.key({}, "Menu", nil, function()
+ keygrabber.run(function(mods, key, action)
+ print("You did:", gears.debug.dump_return(mods), key, action)
+ keygrabber.stop()
+ end)
+ end),
awful.key({ modkey, }, "s", hotkeys_popup.show_help,
{description="show help", group="awesome"}),
awful.key({ modkey, }, "Left", awful.tag.viewprev,
它的作用是在菜单键被释放后打印第一个“键盘事件”。这可以例如是“一个在菜单键被释放之前被按下的键被释放”,但你可能只关心“'s'被按下”之类的东西......