我正在努力通过将显示逻辑重构为 lua 函数来简化我的 conky,但我找不到任何关于如何传递文件路径的示例,而且我的猜测尝试产生了脚本错误。
我试图做的是在我的面板上显示有关每个 fs 的以下内容:root、home 和其他 3 个已安装的文件系统。当前,每一行的工作 conky 逻辑类似于 /home 的这一行:
${goto 10}${voffset 4}${font StyleBats:size=8}4${font} Home: ${goto 90}${color1}${fs_bar 6,100 /home}${color} ${goto 150}${alignr}${fs_free /home}
每个后续行仅在标签和 2 个硬编码路径(在 fs_bar 和 fs_free 部分)中有所不同
所以,我正在拍摄这样的函数调用:
${lua conky_display_fs("Home", "/home")}
带有lua函数:
function conky_display_fs (fname, fpath)
local outstring = conky_parse("${goto 10}${voffset 4}${font StyleBats:size=8}4${font} " .. fname .. ": ${goto 90}${color1}${fs_bar 6,100 " .. fpath .. "}${color} ${goto 150}${alignr}${fs_free " .. fpath .."}")
print (outstring)
return outstring
结尾
但它始终无法在 conky 调试日志中显示以下内容
conky: llua_do_call: function conky_display_fs("Home", execution failed: attempt to call a nil value
所以,我猜问题出在我如何传递路径字符串,因为它只显示错误中的第一个值。我想到了字符串转义等,但是在 conky 配置的其他部分中使用的文件名不需要任何,例如:
lua_load = "~/conky-manager/MyConky/functions.lua",
而且我找不到任何传递文件路径的示例,甚至找不到传递多个字符串参数的示例,只有使用 vars 的简单示例。
这适用于现有的 conky 配置,其中第一个代码块中显示的成功的 conky 文本完美运行。我已经在调用上尝试了几种变体,更改引号、逗号/无逗号、不同的参数名称以避免关键字......