我正在尝试向我的 Conky 添加一个函数,该函数打印字符串的长度以用于调试目的。代码位于名为的文件内test.lua
,非常简单:
function test(word)
return string.len(word)
end
...我这样加载它。在我的conky.config
我有部分:
lua_load = '/home/xvlaze/test.lua',
lua_draw_hook_pre = 'test'
...在里面conky.text
我有部分:
${lua test "fooo"}
...在哪里test
是函数的名称并且fooo
要测试的字符串。
预期结果应该是 Conky 中打印的 4,但我得到的不是:
conky: llua_do_call: function conky_test execution failed: /home/xvlaze/test.lua:2: attempt to index a nil value (local 'string')
conky: llua_getstring: function conky_test didn't return a string, result discarded
我浏览过文档 https://github.com/brndnmtthws/conky/wiki,但我找不到任何东西。有谁知道失败在哪里吗?
关于如何在Conky中实现功能的几个指南:
-
首先:你必须使用conky_
在您的函数名称之前。
否则,运行 Conky 时会出现以下错误:
attempt to call a nil value
-
其次:您必须始终返回一个值。
我不介意重复一遍——确实如此crucial。否则,您将得到:
function foobar didn't return a string, result discarded
function_result
...在你的终端中,并且您的 Conky 将保留与您的额外代码相关的空值。不会打印任何有关您的功能的内容。
-
最后但并非最不重要的一点是:您必须始终像这样调用您的函数:
lua_load = '/path/to/function.lua',
-- Whatever content...
${lua function_name function_parameter1 function_parameterN} -- In case you use more than one parameter.
总之,虚拟函数模板可以是:
-
主文件(conky.conf):
conky.config = {
-- Whatever content... Lua styled comments.
lua_load = '/path/to/function.lua',
}
conky.text = [[
# Whatever content... In this section comments are started with '#'!
${lua function_name parameter}
]]
-
函数文件:
function conky_function_name(parameter)
-- Whatever content... Remember this is Lua, not conky.text syntax. Always use '--' comments!
return whatever -- No return, no party. A function MUST always return something!
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)