Ist es möglich, Conky zu loopen?

Ist es möglich, Conky zu loopen?

Gibt es eine Möglichkeit, eine Schleife zu erstellen conky? Ich habe beispielsweise mein .conkySkript, 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.luaenthä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 ~/.conkyrchinzufü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 listcpuswird 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.

verwandte Informationen