¿Hay alguna manera de realizar un bucle conky
? Por ejemplo, tengo mi .conky
script 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.lua
que 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 ~/.conkyrc
puedes 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 listcpus
terminará 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".