Для большей информативности, не всегда же смотришь на вывод параметров в конки, можно использовать скрипты переключающие цвет выводимого параметра при достижении им определённых значений.
Первый скрипт colorize.sh, написан на bash, и дискретно изменяет цвет. Может использоваться в классических конки для вывода температуры процессора, нагрузки на процессор и для привлечения внимания к любым выводимым параметрам. В одних из своих конок этот скрипт был мной задействован на информацию о количестве поступивших писем.
Пределы переключения цвета задаются в строках
COOL=60 -- нижний предел переключения
WARM=95 -- верхний предел переключения
В данном примере выводимый параметр окрашен в зелёный цвет. При достижении порога в 60, градусов или процентов, происходит переключение на желтый, а при достижении 95 на красный цвет.
В conkyrc скрипт подключается такой строкой, пример для вывода температуры ядра
Второй скрипт написан на lua, но может использоваться и в классических конках. Этот скрипт плавно изменяет цвет от цвета установленного вами до красного цвета. Может применяться для вывода нагрузки CPU и используемого объёма памяти.
Все объяснения в заголовке скрипта. Единственное, что можно добавить, первоначальный цвет выводимых параметров можно установить в строках
return conky_change_colour(value, 100, 0x3aca36) .. str
Первый скрипт colorize.sh, написан на bash, и дискретно изменяет цвет. Может использоваться в классических конки для вывода температуры процессора, нагрузки на процессор и для привлечения внимания к любым выводимым параметрам. В одних из своих конок этот скрипт был мной задействован на информацию о количестве поступивших писем.
#!/bin/bash
# colorize.sh
COOL=60
WARM=95
if [[ $1 -lt $COOL ]]
then echo "\${color 00BF00}"$1 # COOL
elif [[ $1 -gt $WARM ]]
then echo "\${color FF0000}"$1 # HOT
else echo "\${color FFFF00}"$1 # WARM
fi
exit 0
Пределы переключения цвета задаются в строках
COOL=60 -- нижний предел переключения
WARM=95 -- верхний предел переключения
В данном примере выводимый параметр окрашен в зелёный цвет. При достижении порога в 60, градусов или процентов, происходит переключение на желтый, а при достижении 95 на красный цвет.
В conkyrc скрипт подключается такой строкой, пример для вывода температуры ядра
Temperature ${execpi 6 sensors | grep 'Core 0' | cut -c 15-16 | xargs ~/conky_26.02.2011/scripts/colorize.sh}${color}°
Второй скрипт написан на lua, но может использоваться и в классических конках. Этот скрипт плавно изменяет цвет от цвета установленного вами до красного цвета. Может применяться для вывода нагрузки CPU и используемого объёма памяти.
--[[ change_colour.lua by olgmen 19.02.2011
Изменение цвета текста в зависимости от величины выводимого параметра
Color change depending on the output parameter
When writing used a script written Brenden Matthews
Copyright (c) 2009 Brenden Matthews, all rights reserved.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Для запуска необходимо добавить в conkyrc следующие строки
lua_load ~/путь_к_скрипту/change_colour.lua
TEXT
# Для вывода нагрузки процессора
CPU0 ${lua_parse change_cpu_colour 0}${color} %
CPU1 ${lua_parse change_cpu_colour 1}${color} %
CPU2 ${lua_parse change_cpu_colour 2}${color} %
# Для вывода используемой памяти, свопа
mem ${lua_parse change_mem_colour memperc}${color} %
swap ${lua_parse change_mem_colour swapperc}${color} %
]]
require 'cairo'
function components_to_colour(r, g, b)
-- Take the RGB components r, g, b, and return an RGB integer
return ((math.floor(r + 0.5) * 0x10000) + (math.floor(g + 0.5) * 0x100) + math.floor(b + 0.5)) % 0xffffff -- no bit shifting operator in Lua afaik
end
function colour_to_components(colour)
-- Take the RGB components r, g, b, and return an RGB integer
return (colour / 0x10000) % 0x100, (colour / 0x100) % 0x100, colour % 0x100
end
function conky_change_colour (value, max, default_colour)
if value == nil then value = 0 end
local r, g, b = colour_to_components(default_colour)
r = r + (256 - r) * value/max * 2
if r > 255 then r = 255 end
if r < 255 then
g = g + (256 - g) * value/max * 2
if g > 255 then g = 255 end
else
g = 255 - 255/(max/2) * (value - max/2)
end
b = b - b/max * value * 2
if b < 0 then b = 0 end
colour = components_to_colour(r, g, b)
return string.format("${color #%06x}", colour)
end
function conky_change_cpu_colour(arg)
str = conky_parse(string.format('${cpu cpu%s}', arg))
value = tonumber(str)
return conky_change_colour(value, 100, 0x3aca36) .. str
end
function conky_change_mem_colour(arg)
str = conky_parse(string.format('${%s}', arg))
value = tonumber(str)
return conky_change_colour(value, 100, 0x3aca36) .. str
end
Изменение цвета текста в зависимости от величины выводимого параметра
Color change depending on the output parameter
When writing used a script written Brenden Matthews
Copyright (c) 2009 Brenden Matthews, all rights reserved.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Для запуска необходимо добавить в conkyrc следующие строки
lua_load ~/путь_к_скрипту/change_colour.lua
TEXT
# Для вывода нагрузки процессора
CPU0 ${lua_parse change_cpu_colour 0}${color} %
CPU1 ${lua_parse change_cpu_colour 1}${color} %
CPU2 ${lua_parse change_cpu_colour 2}${color} %
# Для вывода используемой памяти, свопа
mem ${lua_parse change_mem_colour memperc}${color} %
swap ${lua_parse change_mem_colour swapperc}${color} %
]]
require 'cairo'
function components_to_colour(r, g, b)
-- Take the RGB components r, g, b, and return an RGB integer
return ((math.floor(r + 0.5) * 0x10000) + (math.floor(g + 0.5) * 0x100) + math.floor(b + 0.5)) % 0xffffff -- no bit shifting operator in Lua afaik
end
function colour_to_components(colour)
-- Take the RGB components r, g, b, and return an RGB integer
return (colour / 0x10000) % 0x100, (colour / 0x100) % 0x100, colour % 0x100
end
function conky_change_colour (value, max, default_colour)
if value == nil then value = 0 end
local r, g, b = colour_to_components(default_colour)
r = r + (256 - r) * value/max * 2
if r > 255 then r = 255 end
if r < 255 then
g = g + (256 - g) * value/max * 2
if g > 255 then g = 255 end
else
g = 255 - 255/(max/2) * (value - max/2)
end
b = b - b/max * value * 2
if b < 0 then b = 0 end
colour = components_to_colour(r, g, b)
return string.format("${color #%06x}", colour)
end
function conky_change_cpu_colour(arg)
str = conky_parse(string.format('${cpu cpu%s}', arg))
value = tonumber(str)
return conky_change_colour(value, 100, 0x3aca36) .. str
end
function conky_change_mem_colour(arg)
str = conky_parse(string.format('${%s}', arg))
value = tonumber(str)
return conky_change_colour(value, 100, 0x3aca36) .. str
end
Все объяснения в заголовке скрипта. Единственное, что можно добавить, первоначальный цвет выводимых параметров можно установить в строках
return conky_change_colour(value, 100, 0x3aca36) .. str
Подскажите пожалуйста. Как менять цвет в зависимости от загрузки процессора, вот в этой строке :
ОтветитьУдалитьfg_colour=0x8DB1FF,
-строка в скрипте LUA , скрипт построен на часах , выводит круглый бар.