根据函数输出动态加载图像

根据函数输出动态加载图像

我正在尝试加载一个.png以在 conky 中显示电池图标。到目前为止,我已经尝试使用 eval 嵌套函数调用,但我似乎找不到解决方案。

这是我的非工作 conky.text:

conky.text = [[
  ${image ${lua battery_icon $battery_status $battery_icon}}
]]

我的battery_icon函数如下所示:

function conky_battery_icon(battery_status, battery_percent)
  if (battery_status == "charging")
  then
    icon = "charging-battery.png";
  else 
    ...
  end

  return("/path/to/icons/" .. icon);
end

我检查了该函数是否有效,并且可以通过将以下行添加到我的conky.text

${lua battery_icon $battery_status $battery_percent}

如何使用返回的路径battery_icon加载 conky 中的文件image

相关问题:动态 conky 变量参数

答案1

您可以返回完整形成的 conky 语句来显示图标,而不是单独返回路径。例如,如果我有一个返回图像语句的 Lua 函数,例如...

function conky_myimg()
    local path = "/home/David/System/Icons/StuffedTux.png";
    local s = "${image "..path.."}";
    return s;
end

conky.text...我用行调用我的函数...

${lua_parse myimg}

...然后conky显示图标。

conky 显示的图标

答案2

还没有测试过它,但我会尝试添加lua到你的conky.text,然后它会读...

conky.text = [[
  ${image ${lua battery_icon $battery_status $battery_icon}}
]]

相关内容