我正在考虑改用Awesome WM(出于多种原因,可入侵性可能是最重要的-我是Emacs的重度用户;-))。
几年前,我曾经使用平铺WM(StumpWM),它具有一个很好的功能,即仅将一个键绑定为“前缀”。我将其设置为(否则对我而言无用)“菜单”键,因此基本上所有WM绑定都为“按菜单,释放它,按其他操作”。
从文档/教程中,我可以看到Awesome将其功能绑定到“ modkey + something”的方法略有不同。
是否可以像以前一样将“菜单”用作“粘性modkey”?或更确切地说,我该怎么做?
答案 0 :(得分:0)
您可以为菜单键创建一个“普通”键绑定,在其中启动一个键盘抓取器,然后使用它来获取随后的“内容”。这意味着您必须自己重新设计轮子,因为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'被按下”之类的事情。