É possível fazer loop em conky

É possível fazer loop em conky

Existe uma maneira de fazer um loop conky? Por exemplo, tenho meu .conkyscript que exibe a carga da CPU, porém, ele precisa ser reconfigurado quando mudo para outra máquina. Um script trivial como

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

fornece informações sobre a contagem de núcleos etalvezusado em um loop como

${cpu cpu{1}}

Responder1

Eu não sou um especialista em conky/lua, então pode haver uma maneira melhor, mas funciona. Você precisa criar um script lua em, digamos, um arquivo ~/mylua.luacontendo

    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

e então no seu ~/.conkyrcvocê pode adicionar na conky.config={parte a linha

lua_load = '~/mylua.lua',

(ou para versões antigas do conky anteriores a 1.10 lua_load ~/mylua.lua) e no local onde você deseja ter os valores da CPU, a linha

${lua_parse conky_mycpus}

Quando o conky for iniciado, o script lua será executado e a variável listcpusacabará sendo uma string apropriada como "${cpu cpu1} ${cpu cpu2}", dependendo do número de processadores encontrados pelo grep.

Responder2

Não se esqueça de adicionar uma nova linha, caso contrário, isso levará a resultados indesejados no último conky.

Também é importante carregar várias luas em uma linha.

Exemplo:

~/.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

carregado com

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

Se você não carregar todos os seus arquivos lua em um único lua_load, isso poderá gerar "Exceções NIL".

informação relacionada