conky에서 루프가 가능합니까?

conky에서 루프가 가능합니까?

그것을 반복하는 방법이 있습니까 conky? 예를 들어, CPU 로드를 표시하는 스크립트가 있는데 .conky다른 시스템으로 이동할 때 이를 재구성해야 합니다. 이와 같은 간단한 스크립트

sudo grep "processor" /proc/cpuinfo | wc -l

코어 수에 대한 정보를 제공합니다.아마도예를 들어 루프에 사용됩니다.

${cpu cpu{1}}

답변1

저는 conky/lua 전문가가 아니므로 더 좋은 방법이 있을 수 있지만 이 방법은 효과가 있습니다. ~/mylua.lua다음을 포함하는 파일에 lua 스크립트를 생성 해야 합니다.

    local file = io.popen("grep -c processor /proc/cpuinfo")
    local numcpus = file:read("*n")
    file:close()
    listcpus = ""
    for i = 1,numcpus
    do  listcpus = listcpus.."${cpu cpu"..tostring(i).."} "
    end

    function conky_mycpus()
     return listcpus
    end

그런 다음 섹션에 줄을 ~/.conkyrc추가하십시오.conky.config={

lua_load = '~/mylua.lua',

(또는 1.10 이전의 conky 버전의 경우 lua_load ~/mylua.lua) CPU 값을 얻으려는 위치에서는 다음 줄을 사용합니다.

${lua_parse conky_mycpus}

conky가 시작되면 lua 스크립트가 실행되고 변수는 예를 들어 grep에서 찾은 프로세서 수에 따라 listcpus적절한 문자열이 됩니다 ."${cpu cpu1} ${cpu cpu2}"

답변2

새 줄을 추가하는 것을 잊지 마십시오. 그렇지 않으면 최신 conky에서 원치 않는 결과가 발생할 수 있습니다.

한 줄에 여러 개의 루아를 로드하는 것도 중요합니다.

예:

~/.conky/lua/cpu.lua

function conky_mycpus()
        local file = io.popen("grep -c processor /proc/cpuinfo")
        local numcpus = file:read("*n")
        file:close()
        listcpus = ""
        for i = 1,numcpus
         do listcpus = listcpus.."${offset 15}Core "..tostring(i).." ${color ff8300}${cpubar cpu"..tostring(i).." 6}${color FFFDE2}\n"
        end

        return listcpus
end

완전히 적재 된

lua_load             = "/usr/local/share/lua/5.3/corky.lua ~/.conky/lua/cpu.lua",

하나의 lua_load에 모든 lua 파일을 로드하지 않으면 "NIL 예외"가 발생할 수 있습니다.

관련 정보