我想创建一个键绑定来将焦点切换到主客户端。 Profjim在this forum thread注意到:
要在当前标记上获取主客户端:
c = awful.client.getmaster()
我已尝试过以下操作,但它会导致我的〜/ .config / rc.lua文件被忽略,如果文件中有错误,则会出现这种情况。有谁知道正确的语法?
awful.key({ modkey, , "e", awful.client.getMaster()),
注意:如果您有默认的键绑定,“e”不应该引起任何冲突。
编辑:/r/awesomewm上有人知道解决我问题的语法:
awful.key({ modkey, }, "e", function() client.focus = awful.client.getmaster(); client.focus:raise() end),
答案 0 :(得分:2)
让我们从语法错误开始; from the documentation似乎awful.key
是一个表,而不是一个函数。它可能包含key
s ...这是哈希表,而不是序列。
最后你的表语法错了;字段可能不是语法为空,它必须具有列出的值,即使该值为nil
。
所以基本上你试图将错误的值传递给无法调用的东西。
至于如何正确地做到这一点......文件令人困惑,显然我并不是唯一一个这么认为的人。
* 深呼吸 *
好的,awful.new(...)
创建键绑定器(?),awful.key
包含键绑定,所以很明显我们必须放置结果第一个到第二个。
链接上的代码只是一个指针,只包括聚焦窗口,而不是创建键绑定。
似乎就像你想要这样的东西:
function do_focus()
current = client.focus
master = awful.client.getmaster()
if current then
client.focus = master
master:raise()
end
end
table.insert(awful.key, awful.new (modkey, 'e', nil, do_focus) )
请记住,我无法测试上述代码。