如何在 Conky 中实现基本的 Lua 功能?
How to implement a basic Lua function in Conky?
我正在尝试向我的 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
我浏览了 documentation,但我找不到任何东西。有人知道故障在哪里吗?
关于如何在Conky中实现功能的几个指导:
首先:您必须在函数名称前使用 conky_
。
否则,当 运行 你的 Conky:
时,你会得到以下错误
attempt to call a nil value
其次:您必须始终RETURN一个值。
我不介意重复它 - 它 至关重要 。否则,您将获得:
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
我正在尝试向我的 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
我浏览了 documentation,但我找不到任何东西。有人知道故障在哪里吗?
关于如何在Conky中实现功能的几个指导:
首先:您必须在函数名称前使用
时,你会得到以下错误conky_
。 否则,当 运行 你的 Conky:attempt to call a nil value
其次:您必须始终RETURN一个值。 我不介意重复它 - 它 至关重要 。否则,您将获得:
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