【问题标题】:Create keybinding to focus master client in awesome-wm在 awesome-wm 中创建键绑定以聚焦主客户端
【发布时间】:2013-09-23 18:17:24
【问题描述】:

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

【问题讨论】:

  • 哇,文档有点可怕......(你很困惑,但我不怪你)

标签: lua awesome-wm


【解决方案1】:

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

最后你的表格语法是错误的;一个字段不能在语法上为空,它必须有一个列出的值,即使该值是nil

所以基本上你试图将错误的值传递给无法调用的东西。


至于如何正确地做到这一点......文档令人困惑,显然我不是唯一一个这样认为的人。

*深呼吸*

好的,awful.new(...)creates key binders(?),而awful.keycontains key bindings,所以很明显我们必须把第一个的结果放到第二。
您链接上的代码只是一个指针,仅涵盖聚焦窗口,而不是创建键绑定。

似乎你想要这样的东西:

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) )

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多