
Gibt es eine Möglichkeit, eine Schleife zu erstellen conky
? Ich habe beispielsweise mein .conky
Skript, das die CPU-Auslastung anzeigt, es muss jedoch neu konfiguriert werden, wenn ich auf einen anderen Computer umsteige. Ein triviales Skript wie
sudo grep "processor" /proc/cpuinfo | wc -l
gibt Auskunft über die Kernanzahl undVielleichtwird in einer Schleife verwendet wie
${cpu cpu{1}}
Antwort1
Ich bin kein Conky/Lua-Experte, also gibt es vielleicht einen besseren Weg, aber dieser funktioniert. Sie müssen ein Lua-Skript in einer Datei erstellen, die Folgendes ~/mylua.lua
enthält :
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
und dann können Sie in Ihrem Teil die Zeile ~/.conkyrc
hinzufügenconky.config={
lua_load = '~/mylua.lua',
(oder für alte Conky-Versionen vor 1.10 lua_load ~/mylua.lua
) und an der Stelle, wo Sie die CPU-Werte haben möchten, die Zeile
${lua_parse conky_mycpus}
Beim Start von Conky wird das Lua-Skript ausgeführt und die Variable listcpus
wird letztendlich zu einer entsprechenden Zeichenfolge wie "${cpu cpu1} ${cpu cpu2}"
, abhängig von der Anzahl der von grep gefundenen Prozessoren.
Antwort2
Vergessen Sie nicht, eine neue Zeile hinzuzufügen, sonst führt dies zu unerwünschten Ergebnissen im neuesten Conky.
Es ist auch wichtig, mehrere Luas in einer Zeile zu laden.
Beispiel:
~/.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
geladen mit
lua_load = "/usr/local/share/lua/5.3/corky.lua ~/.conky/lua/cpu.lua",
Wenn Sie nicht alle Ihre Lua-Dateien in einem einzigen Lua_Load laden, werden möglicherweise „NIL-Ausnahmen“ ausgegeben.