创建键绑定以将主客户端聚焦在awesome-wm中

时间:2013-09-23 18:17:24

标签: lua awesome-wm

我想创建一个键绑定来将焦点切换到主客户端。 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), 

1 个答案:

答案 0 :(得分:2)

让我们从语法错误开始; from the documentation似乎awful.key是一个表,而不是一个函数。它可能包含keys ...这是哈希表,而不是序列。

最后你的表语法错了;字段可能不是语法为空,它必须具有列出的值,即使该值为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) )

请记住,我无法测试上述代码。