Есть ли способ зациклиться conky
? Например, у меня есть .conky
скрипт, который отображает загрузку процессора, однако его нужно перенастроить, когда я перехожу на другую машину. Тривиальный скрипт вроде
sudo grep "processor" /proc/cpuinfo | wc -l
дает информацию о количестве ядер иможет бытьиспользуется в цикле, например
${cpu cpu{1}}
решение1
Я не эксперт по conky/lua, так что может быть есть способ получше, но это работает. Вам нужно создать скрипт lua в, скажем, файле, ~/mylua.lua
содержащем
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
и затем в вашей части ~/.conkyrc
вы можете добавить conky.config={
строку
lua_load = '~/mylua.lua',
(или для старых версий conky до 1.10 lua_load ~/mylua.lua
) и в том месте, где вы хотите получить значения процессора, строка
${lua_parse conky_mycpus}
При запуске conky будет запущен скрипт lua, и переменная listcpus
в конечном итоге станет соответствующей строкой, например "${cpu cpu1} ${cpu cpu2}"
, в зависимости от количества процессоров, найденных grep.
решение2
Не забудьте добавить новую строку, иначе это приведет к нежелательным результатам в последнем conky.
Также важно загружать несколько lua в одну строку.
Пример:
~/.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
загруженный с
lua_load = "/usr/local/share/lua/5.3/corky.lua ~/.conky/lua/cpu.lua",
Если вы не загрузите все свои lua-файлы в один lua_load, могут возникнуть «исключения NIL».