함수 출력을 기반으로 이미지를 동적으로 로드합니다.

함수 출력을 기반으로 이미지를 동적으로 로드합니다.

.pngconky에 배터리 아이콘을 표시하기 위해 하나를 로드하려고 합니다 . 지금까지 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_iconconky에서 파일을 로드하는 방법은 무엇입니까 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}}
]]

관련 정보