На основе скрипта mrpeachy собрал скрипт выводящий данные в окно conky в виде шкалы.
Один из вариантов использования
У скрипта есть небольшая особенность, нет ограничения по параметру max, что очень подходит для вывода значений работы интернета. Вид изображения, горизонтальная или вертикальная шкала, выбирает сама программа. Если высота шкалы больше ширины, то выводится вертикальная шкала, если ширина больше высоты - горизонтальная. Мой скрипт можно взять здесь.
Опишу основные настройки. Для настройки скриптов я использую вывод секунд, от минимума до максимума всего минута, и не надо ничего разгонять до 100%
{ -- вертикальная шкала, цифры слева
name = "time", -- название выводимого параметра, может быть time, cpu и т.д.
arg = "%S", -- аргумент выводимого параметра, для time - %S, %M, %H, для cpu - cpu, cpu0, cpu1 и т.д.
x = 50, -- координаты по горизонтали
y = 50, -- координаты по вертикали
width = 50, -- ширина шкалы
height = 120, -- высота шкалы
scale = 20, -- количество выводимых делений
font = "Ubuntu", -- название шрифта для цифр
font_size = 12, -- размер шрифта
side = "left", -- с какой стороны выводить цифры (по умолчанию справа)
},
цвет в данном варианте установлен по умолчанию
{ -- вертикальная шкала, цифры справа
name = "time",
arg = "%S",
x = 220,
y = 50,
width = 50,
height = 120,
scale = 20,
font = "Ubuntu",
font_size = 12,
colour_scale = {{0, 0xff0000, 1},{0.5, 0xffffff, 1},{1, 0x0000ff, 1}},
},
В этом варианте сторона вывода цифр взята по умолчанию. Немного о вводе данных о цвете.
Цвет можно вывести в трех вариантах. Первый вариант возьмем из приведенного выше примера
colour_scale = {{0, 0xff0000, 1},{0.5, 0xffffff, 1},{1, 0x0000ff, 1}},
в таком варианте выводится три цвета с плавным переходом от одного к другому. Этот же вариант, но с использованием разной насыщенности цвета
colour_scale = {{0, 0x333333, 0.75},{0.5, 0xffffff, 1},{1, 0x333333, 0.75}}
показан на первом примере и используется в скрипте по умолчанию. Получается как бы выпуклое изображение шкалы.
Второй вариант
colour_scale = {{0, 0xff0000, 1},{1, 0x0000ff, 1}},
используется два цвета с плавным переходом от одного к другому
Третий вариант - однотонная шкала
colour_scale = {{0, 0xff0000, 1}},
в данном примере красная.
Цвета записываются следующим образом:
-- первая цифра имеет значение от 0 до 1 и показывает какой слой цвета задействован, не будем залезать далеко в теорию, просто 0 это один край изображения, текста и т.д., а 1 второй край.
-- следующие 8 знаков - код цвета
-- последняя цифра указывает прозрачность (насыщенность) цвета и имеет значения от 0 - полностью прозрачный, до 1 - насыщенный цвет.
{ -- горизонтальная шкала, цифры сверху
name = "time",
arg = "%S",
x = 50,
y = 250,
width = 120,
height = 50,
scale = 20,
font = "Ubuntu",
font_size = 12,
side = "left",
colour_scale = {{0, 0xff0000, 1},{0.5, 0xffffff, 1},{1, 0x0000ff, 1}},
},
{ -- горизонтальная шкала, цифры снизу
Вот вкратце и всё про этот скрипт.
Удачных коньков
Один из вариантов использования
У скрипта есть небольшая особенность, нет ограничения по параметру max, что очень подходит для вывода значений работы интернета. Вид изображения, горизонтальная или вертикальная шкала, выбирает сама программа. Если высота шкалы больше ширины, то выводится вертикальная шкала, если ширина больше высоты - горизонтальная. Мой скрипт можно взять здесь.
Опишу основные настройки. Для настройки скриптов я использую вывод секунд, от минимума до максимума всего минута, и не надо ничего разгонять до 100%
{ -- вертикальная шкала, цифры слева
name = "time", -- название выводимого параметра, может быть time, cpu и т.д.
arg = "%S", -- аргумент выводимого параметра, для time - %S, %M, %H, для cpu - cpu, cpu0, cpu1 и т.д.
x = 50, -- координаты по горизонтали
y = 50, -- координаты по вертикали
width = 50, -- ширина шкалы
height = 120, -- высота шкалы
scale = 20, -- количество выводимых делений
font = "Ubuntu", -- название шрифта для цифр
font_size = 12, -- размер шрифта
side = "left", -- с какой стороны выводить цифры (по умолчанию справа)
},
цвет в данном варианте установлен по умолчанию
{ -- вертикальная шкала, цифры справа
name = "time",
arg = "%S",
x = 220,
y = 50,
width = 50,
height = 120,
scale = 20,
font = "Ubuntu",
font_size = 12,
colour_scale = {{0, 0xff0000, 1},{0.5, 0xffffff, 1},{1, 0x0000ff, 1}},
},
В этом варианте сторона вывода цифр взята по умолчанию. Немного о вводе данных о цвете.
Цвет можно вывести в трех вариантах. Первый вариант возьмем из приведенного выше примера
colour_scale = {{0, 0xff0000, 1},{0.5, 0xffffff, 1},{1, 0x0000ff, 1}},
в таком варианте выводится три цвета с плавным переходом от одного к другому. Этот же вариант, но с использованием разной насыщенности цвета
colour_scale = {{0, 0x333333, 0.75},{0.5, 0xffffff, 1},{1, 0x333333, 0.75}}
показан на первом примере и используется в скрипте по умолчанию. Получается как бы выпуклое изображение шкалы.
Второй вариант
colour_scale = {{0, 0xff0000, 1},{1, 0x0000ff, 1}},
используется два цвета с плавным переходом от одного к другому
Третий вариант - однотонная шкала
colour_scale = {{0, 0xff0000, 1}},
в данном примере красная.
Цвета записываются следующим образом:
-- первая цифра имеет значение от 0 до 1 и показывает какой слой цвета задействован, не будем залезать далеко в теорию, просто 0 это один край изображения, текста и т.д., а 1 второй край.
-- следующие 8 знаков - код цвета
-- последняя цифра указывает прозрачность (насыщенность) цвета и имеет значения от 0 - полностью прозрачный, до 1 - насыщенный цвет.
{ -- горизонтальная шкала, цифры сверху
name = "time",
arg = "%S",
x = 50,
y = 250,
width = 120,
height = 50,
scale = 20,
font = "Ubuntu",
font_size = 12,
side = "left",
colour_scale = {{0, 0xff0000, 1},{0.5, 0xffffff, 1},{1, 0x0000ff, 1}},
},
{ -- горизонтальная шкала, цифры снизу
name = "time",
arg = "%S",
x = 50,
y = 420,
width = 120,
height = 50,
scale = 20,
font = "Ubuntu",
font_size = 12,
colour_scale = {{0, 0xff0000, 1},{0.5, 0xffffff, 1},{1, 0x0000ff, 1}},
},
Вот вкратце и всё про этот скрипт.
Удачных коньков
Утечку памяти убрать бы
ОтветитьУдалитьps ax -o args,vsz,sz,rss | grep conky
в терминале и там видно как память неумолимо сжирается
У меня работает длительное время, никакой утечки памяти не замечал. Индикаторы стоят на месте.
УдалитьВсе таки утечка есть, пользуюсь месяца 3, при долгой работе, оперативка неутомимо пожирается..
УдалитьПопробуйте после строк
Удалитьfor i,v in pairs(scale_settings) do
cr = cairo_create (cs)
dialgraph(v)
cairo_destroy(cr)
end
Добавить
cr = nil
Должно помочь
Спасибо за ответ, но, к сожалению, не попогло
УдалитьА как сделать ограничение минимум - 0, максимум - 100. Не могу сообразить.
ОтветитьУдалитьПопробуй после строк
ОтветитьУдалитьif n == (lines/2)+(5-adj)+i then
num = value - adj + (i + 4)
elseif n == (lines/2)+(5-adj)+(-i-3) then
num = value - adj-(i-1)
else
num = ""
end
Вставить примерно такую строку
if num < 0 then num = "" end
Ну и для 100 аналогично
Этот комментарий был удален автором.
ОтветитьУдалить{
ОтветитьУдалитьname = 'downspeedf',
arg = 'eth0',
x = 650,
y = 80,
width = 50,
height = 100,
scale = 20,
font = "Ubuntu",
font_size = 12,
side = "left",
colour_scale = {{0, 0xff0000, 1},{0.5, 0xffffff, 1},{1, 0x0000ff, 1}},
},
Таким образом не отображается нагрузка на итерфейс eth0. Кому-нибудь удалось реализовать это?
можно перезалить скрип
ОтветитьУдалитьможно еще раз залить скрипт?
ОтветитьУдалить