我正在尝试向现有的conky设置中添加一些lua功能,以便可以清除conky文本中的重复“代码”。例如,我具有有关每个已安装的FS,每个内核等的信息,其中面板中显示的每一行只有一个参数不同。
我的第一个骨架,尝试使用lua函数进行此操作似乎可以运行,但是在我的面板中什么也不显示。我仅找到了非常简单的示例作为基础,因此我可能犯了一个简单的错误,但我什至不知道如何诊断它。我在这里的代码是根据我已经能够找到的有关编写函数(例如How to implement a basic Lua function in Conky?)的模型进行建模的,但这几乎是我在该主题上发现的所有深度,除了绘画和开罗示例。
这是添加到我的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运行时是否创建了日志,或者提供了一些调试输出的方法?即使我在这里犯了一个简单的错误,我仍然希望能够随着我的代码变得更加复杂而对事物进行诊断。
答案 0 :(得分:0)
成功!
在整理了几篇文章的信息后,我发现了我的基本缺陷- 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 :(得分:0)
主要注意事项:您应该从包含 lua 脚本的目录中运行 conky。