【问题标题】:How do I debug lua functions called from conky?如何调试从 conky 调用的 lua 函数?
【发布时间】:2019-06-08 20:05:25
【问题描述】:

我正在尝试将一些 lua 功能添加到我现有的 conky 设置中,以便可以清理我的 conky 文本中重复的“代码”。例如,我有每个已安装的 FS、每个核心等的信息,其中我的面板中显示的每一行仅相差一个参数。

我的第一个骨架,尝试为此使用 lua 函数似乎可以运行,但在我的面板中没有显示任何内容。我只找到了非常简单的示例来以此为基础,所以我可能犯了一个简单的错误,但我什至不知道如何诊断它。我这里的代码是根据我已经找到的关于编写函数的内容建模的,例如 How to implement a basic Lua function in Conky? ,但这就是我在该主题上找到的所有深度,除了绘图和 cairo 示例。

这是添加到我的 conky 配置中的代码,以及我的 functions.lua 文件的内容

conky.config = {
...
    lua_load = '/home/conky-manager/MyConky/functions.lua',

};

conky.text = [[
...
${voffset 5}${lua conky_test 'test'}
...
]]

文件-functions.lua

function conky_test(parm1)
    return 'result text'
end

我希望看到的是“结果文本”显示在我的面板中该函数调用出现的位置,但没有显示。

是否有 conky 在运行时创建的日志,或者提供一些调试输出的方法?即使我在这里犯了一个简单的错误,我仍然希望能够在我的代码变得更加复杂时进行诊断。

【问题讨论】:

    标签: function lua conky


    【解决方案1】:

    成功了!

    在将几篇文章的信息拼凑在一起后,我发现了我的基本缺陷 - 1. 缺少一个“conky_main”函数, 2.缺少一个'lua_draw_hook_post'来调用它,并且 3.意识到如果我从终端调用conky,lua中的打印语句会出现在那里。

    所以,对于任何看到这个问题并有同样问题的人,这里是更正的代码。

    conky.config = {
    ...
        lua_load = '/home/conky-manager/MyConky/functions.lua',
        lua_draw_hook_post = "main",
    
    };
    
    conky.text = [[
    ...
    ${lua conky_test 'test'}
    ...
    ]]
    

    以及我的functions.lua文件中的正确基础

    function conky_test(parm1)
        return 'result text'
    end
    
    function conky_main()
        if conky_window == nil then
            return
        end
    end
    

    几点说明:

    1. 我还没有确定使用 'lua_draw_hook_pre' 代替 'lua_draw_hook_post' 是否有任何区别,但在这个例子中似乎没有。
    2. 此外,一些示例显示实际调用此“测试”函数而不是编写“主”,但“主”似乎在检查 conky_window 是否存在方面有价值。
    3. 一些示例似乎表明需要使用前缀 'conky_' 命名函数,但随后显示了调用这些函数而不使用前缀的示例,因此我假设在调用期间会推断出前缀。

    【讨论】:

    • 现在不适合我。情况有变化吗?
    • 我似乎也无法正常工作。我总是最终得到空白变量。我似乎无法将它们打印到终端或任何东西?
    • 实际上,我现在才开始使用它。这与我的整体设置有关。我试图在不同的文件中使东西模块化,但我一直在 github 上查看几个不同的项目以及它们是如何做到的。正因为如此,它有点混合和匹配。我把事情理顺了,然后让'lua_load = main.lua'(在我的例子中)让它在那之后立即工作。不需要 lua_draw_hook 或 conky_main()。
    【解决方案2】:

    重要提示:您应该从包含 lua 脚本的目录中运行 conky。

    【讨论】:

      猜你喜欢
      • 2013-12-22
      • 2011-02-01
      • 2015-04-03
      • 2015-07-14
      • 1970-01-01
      • 2012-06-30
      • 2014-09-01
      • 2010-11-15
      相关资源
      最近更新 更多