¿Es posible hacer un bucle en conky?

¿Es posible hacer un bucle en conky?

¿Hay alguna manera de realizar un bucle conky? Por ejemplo, tengo mi .conkyscript que muestra la carga de la CPU, sin embargo, tengo que reconfigurarlo cuando me muevo a otra máquina. Un guión trivial como

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

proporciona información sobre el recuento de núcleos ytal vezusado en un bucle como

${cpu cpu{1}}

Respuesta1

No soy un experto en conky/lua, por lo que puede haber una manera mejor, pero funciona. Necesita crear un script lua en, digamos, un archivo ~/mylua.luaque contenga

    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

y luego en tu ~/.conkyrcpuedes agregar en la conky.config={parte la línea

lua_load = '~/mylua.lua',

(o para versiones antiguas de conky anteriores a 1.10 lua_load ~/mylua.lua) y en el lugar donde desea tener los valores de la CPU, la línea

${lua_parse conky_mycpus}

Cuando se inicia conky, se ejecutará el script lua y la variable listcpusterminará siendo una cadena apropiada como "${cpu cpu1} ${cpu cpu2}", dependiendo de la cantidad de procesadores encontrados por grep.

Respuesta2

No olvide agregar una nueva línea; de lo contrario, generará resultados no deseados en la última versión de conky.

También es importante cargar varios luas en una línea.

Ejemplo:

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

Cargado con

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

Si no carga todos sus archivos lua en un solo lua_load, puede generar "Excepciones NIL".

información relacionada