Получил комментарий с просьбой объяснить поподробней, что и делаю.
В скриптах, написанных на языке LUA, параметры компьютера выводятся в окно conky следующим образом. Берется команда "классических" conky, например
и перед командой добавляем команду conky_parse, буквально означающую, что далее следует команда из "классических" conky, выводимая команда заключается в простые скобки и кавычки.
Таким образом можно вывести любую команду из текста классических конок.
Рассмотрим вывод баров с помощью скрипта написанного французским программистом выкладывающим свои скрипты под ником wlourf. Скрипт можно взять на его страничке wlourf.deviantart.com
Описание работы скрипта, на английском, в блоге wlourf.
Я использовал этот скрипт во многих своих конках и попробую описать как это работает. Вид баров, выводимый этим скриптом
К сожалению в строке запуска скрипта ошибка. Видно wlourf немного поспешил и не заметил.
Для запуска скрипта необходимо изменить строки
lua_load /path/to/the/script/bargraph.lua
на строки
lua_load /path/to/the/script/bargraph.lua
Описание параметров задействованных в этом скрипте.
Обязательные параметры
name - название выводимого параметра
arg - аргумент выводимого параметра
max - максимальное значение выводимого параметра
На этих параметрах я хочу немного остановиться. При отсутствии одного из них скрипт просто не будет работать. В скрипте, для проверки и демонстрации работы эти параметры выводят время в секундах. Я тоже так делаю при настройке и отладки. это выглядет так
все параметры обязательно должны заканчиваться запятой.
Тут всё понятно. Строка в классических конки выглядет так
${time %S}
time - название
%S - аргумент
60 - максимальное количество выводимых секунд
Для CPU это будет выглядеть так
Для всех процессоров название одно - cpu
Для ядер
cpu или cpu0 - весь процессор
cpu1 - 1 ядро
cpu2 - 2 ядро и т.д.
max для всех процессов выводимых в % или градусах будет равен 100, для сети необходимо подбирать экспериментально
Для вывода температуры графической карты NVIDIA, для других карт не знаю, так как у меня NVIDIA
name="nvidia",
arg="temp",
max=100,
Но есть параметры состоящие из одного слова, например
memperc
swapperc
Тогда в строке name оставляем пустое поле в кавычках, а в строке arg пишем название
name="",
При необходимости вывести команду, например при выводе температуры процессора, в классических конках это, для моей материнской платы и процессора, выглядит так
${execi 4 sensors | grep 'CPU Temperature' | cut -c 22-24}
Для вывода этим скриптом будет
name="",
arg=conky_parse"${execi 4 sensors | grep 'CPU Temperature' | cut -c 22-24}",
max=100,
Необязательные параметры
Это параметры, которые, если их не вписать, то будут выведены параметры записанные в скрипте т.е. по умолчанию. Некоторые из этих параметров, я так думаю, требуют разъяснений
x, y - координаты выводимого параметра, по умолчанию вывод в центр окна конки
cap - оформление конца бара, возможные варианты r,b,s (r - закругленный, s- прямоугольный, b - прямоугольный, расширенный), по умолчанию "b". О концах линий можно посмотреть здесь http://www.cairographics.org/samples/set_line_cap/
Верхний бар - по умолчанию
Средний бар - cap="s"
Нижний бар - cap="r"
angle - поворот бара, по умолчанию = 0 (вертикальный бар), 90 - горизонтальный бар. Это выглядит так
Верхний бар angle=0, нижний - angle=90. При параметре равном 180, 270 изображения будут перевернуты, ну и конечно возможен любой параметр от 0 градусов до 360.
skew_x - наклон бара относительно оси X, по умолчанию = 0
skew_y - наклон бара относительно оси Н, по умолчанию = 0
Наклон отличается от поворота неизменностью основания бара, вот так это выглядит
Слева наклон, справа - поворот.
Наклон может иметь отрицательное значение, на картинке значение равно -45.
blocks - количество блоков (секций) из которых будет состоять бар (не меньше 1) , по умолчанию 10
height - высота блока, по умолчанию 10 пикселей
width - ширина блока, по умолчанию 20 пикселей
space - расстояние между блоками, по умолчанию 2 пикселя
Первый бар
Второй бар
Третий бар
Следующие параметры выводят в окно конки бар в виде сектора
angle_bar - угол сектора, по умолчанию 0
radius - расстояние от координат X, Y начала вывода сектора, по умолчанию 0. При включении этих параметров параметр width не работает.
Верхний бар
Нижний бар
angle=90,
angle_bar=45,
radius=50,
Переходим к раскраске баров. Цвет задаётся в шестнадцатеричном формате с добавлением насыщенности по форме
{0x00ff00,1} - зелёный цвет полной насыщенности. Насыщенность цвета изменяется от 0 до 1.
fg_colour - цвет выводимого параметра, по умолчанию {0x00FF00,1}
bg_colour - цвет фона, на котором выводится параметр, по умолчанию {0x00FF00,0.5}
alarm - величина параметра с которого необходимо изменить цвет, по умолчанию max
alarm_colour - цвет параметра выше заданного параметром alarm, по умолчанию fg_colour
alarm=50,
bg_colour={0x00ff00,0.25},
fg_colour={0x00ff00,1},
alarm_colour={0xff0000,1},
smooth - плавный переход из одного цвета в другой, включить true выключить false, по умолчанию false
Верхний бар - выключен
Нижний бар - включен
mid_colour - добавление градации цвета по схеме {позиция градации (от 0 до 1), цвет в шестнадцатеричном формате, насыщенность}, возможность добавления 3 цветов, по умолчанию выключено
Верхний бар - mid_colour - выключен
Средний бар - добавлен желтый цвет
fg_colour={0x00ff00,1},
alarm_colour={0xff0000,1},
smooth=true,
Нижний бар - основной цвет изменён на синий, добавлены зелёный и желтый
led_effect - эффект "светодиода" для каждого отдельного блока, не работает с параметром smooth=true, по умолчанию выключен. Возможные варианты
led_effect="r" - радиальный эффект
led_effect="a" - параллельный эффект
led_effect="e" - перпендикулярный эффект
Цвет задаётся следующими параметрами
fg_led - цвет параметра в центре блока, по умолчанию fg_colour
bg_led - цвет фона в центре блока, по умолчанию bg_colour
alarm_led - цвет alarm в центре блока, по умолчанию alarm_colour
Вот так это выглядит
Верхний бар
led_effect="r",
fg_led={0x00ff00,1},
alarm_led={0xff0000,1},
bg_led={0x00ff00,0.25},
Средний бар
led_effect="a",
fg_led={0x00ff00,1},
alarm_led={0xff0000,1},
bg_led={0x00ff00,0.25},
Нижний бар
led_effect="e",
fg_led={0x00ff00,1},
alarm_led={0xff0000,1},
bg_led={0x00ff00,0.25},
Ну и совсем экзотика, зеркальное отражение бара, не работает с секторными барами. Лучше самим поэкспериментировать, чем мне объяснить.
reflection_alpha - насыщенность зеркального изображения, значения от 0 до 1, по умолчанию 0 - нет зеркального отражения
reflection_scale - масштаб зеркального изображения, по умолчанию 1, размер основного изображения (значения от 0 до 1)
reflection_length - часть зеркального изображения прозрачность которой отсутствует, по умолчанию 0 (значения от 0 до 1)
reflection - расположение зеркального изображения. Все значения соответствуют вертикальному бару.
reflection="b" - отражение внизу (по умолчанию)
reflection="t" - отражение сверху
reflection="l" - отражение слева
reflection="r" - отражение справа
Ну и последнее объяснение.
draw_me - Насколько я понял, этот параметр по умолчанию (true или 1) при обработке строки типа
"${if_empty ${wireless_essid wlan0}}${else}1$endif"
выводит фоновое изображение. При присвоении параметру значения false фоновое изображение не выводится
Как работает скрипт попробуйте разобраться сами. Если возникнут вопросы, пишите, попробую ответить.
В скриптах, написанных на языке LUA, параметры компьютера выводятся в окно conky следующим образом. Берется команда "классических" conky, например
${cpu cpu0}
и перед командой добавляем команду conky_parse, буквально означающую, что далее следует команда из "классических" conky, выводимая команда заключается в простые скобки и кавычки.
conky_parse("$cpu cpu0}")
Таким образом можно вывести любую команду из текста классических конок.
Рассмотрим вывод баров с помощью скрипта написанного французским программистом выкладывающим свои скрипты под ником wlourf. Скрипт можно взять на его страничке wlourf.deviantart.com
Описание работы скрипта, на английском, в блоге wlourf.
Я использовал этот скрипт во многих своих конках и попробую описать как это работает. Вид баров, выводимый этим скриптом
К сожалению в строке запуска скрипта ошибка. Видно wlourf немного поспешил и не заметил.
Для запуска скрипта необходимо изменить строки
lua_load /path/to/the/script/bargraph.lua
lua_draw_hook_pre main_rings
на строки
lua_load /path/to/the/script/bargraph.lua
lua_draw_hook_pre main_bars
Описание параметров задействованных в этом скрипте.
Обязательные параметры
name - название выводимого параметра
arg - аргумент выводимого параметра
max - максимальное значение выводимого параметра
На этих параметрах я хочу немного остановиться. При отсутствии одного из них скрипт просто не будет работать. В скрипте, для проверки и демонстрации работы эти параметры выводят время в секундах. Я тоже так делаю при настройке и отладки. это выглядет так
name = "time",
arg = "%S",
max = 60,
все параметры обязательно должны заканчиваться запятой.
Тут всё понятно. Строка в классических конки выглядет так
${time %S}
time - название
%S - аргумент
60 - максимальное количество выводимых секунд
Для CPU это будет выглядеть так
name = "cpu",
arg = "cpu",
max = 100,
Для всех процессоров название одно - cpu
Для ядер
cpu или cpu0 - весь процессор
cpu1 - 1 ядро
cpu2 - 2 ядро и т.д.
max для всех процессов выводимых в % или градусах будет равен 100, для сети необходимо подбирать экспериментально
Для вывода температуры графической карты NVIDIA, для других карт не знаю, так как у меня NVIDIA
name="nvidia",
arg="temp",
max=100,
Но есть параметры состоящие из одного слова, например
memperc
swapperc
Тогда в строке name оставляем пустое поле в кавычках, а в строке arg пишем название
name="",
arg="memperc",
max=100,
При необходимости вывести команду, например при выводе температуры процессора, в классических конках это, для моей материнской платы и процессора, выглядит так
${execi 4 sensors | grep 'CPU Temperature' | cut -c 22-24}
Для вывода этим скриптом будет
name="",
arg=conky_parse"${execi 4 sensors | grep 'CPU Temperature' | cut -c 22-24}",
max=100,
Необязательные параметры
Это параметры, которые, если их не вписать, то будут выведены параметры записанные в скрипте т.е. по умолчанию. Некоторые из этих параметров, я так думаю, требуют разъяснений
x, y - координаты выводимого параметра, по умолчанию вывод в центр окна конки
cap - оформление конца бара, возможные варианты r,b,s (r - закругленный, s- прямоугольный, b - прямоугольный, расширенный), по умолчанию "b". О концах линий можно посмотреть здесь http://www.cairographics.org/samples/set_line_cap/
Верхний бар - по умолчанию
Средний бар - cap="s"
Нижний бар - cap="r"
angle - поворот бара, по умолчанию = 0 (вертикальный бар), 90 - горизонтальный бар. Это выглядит так
Верхний бар angle=0, нижний - angle=90. При параметре равном 180, 270 изображения будут перевернуты, ну и конечно возможен любой параметр от 0 градусов до 360.
skew_x - наклон бара относительно оси X, по умолчанию = 0
skew_y - наклон бара относительно оси Н, по умолчанию = 0
Наклон отличается от поворота неизменностью основания бара, вот так это выглядит
Слева наклон, справа - поворот.
Наклон может иметь отрицательное значение, на картинке значение равно -45.
blocks - количество блоков (секций) из которых будет состоять бар (не меньше 1) , по умолчанию 10
height - высота блока, по умолчанию 10 пикселей
width - ширина блока, по умолчанию 20 пикселей
space - расстояние между блоками, по умолчанию 2 пикселя
Первый бар
blocks=20,
height=8,
height=8,
width=25,
Второй бар
blocks=50,
height=2,
height=2,
width=25,
Третий бар
blocks=1,
height=200,
height=200,
width=25,
Следующие параметры выводят в окно конки бар в виде сектора
angle_bar - угол сектора, по умолчанию 0
radius - расстояние от координат X, Y начала вывода сектора, по умолчанию 0. При включении этих параметров параметр width не работает.
Верхний бар
angle=90,
angle_bar=45,
angle_bar=45,
Нижний бар
angle=90,
angle_bar=45,
radius=50,
Переходим к раскраске баров. Цвет задаётся в шестнадцатеричном формате с добавлением насыщенности по форме
{0x00ff00,1} - зелёный цвет полной насыщенности. Насыщенность цвета изменяется от 0 до 1.
fg_colour - цвет выводимого параметра, по умолчанию {0x00FF00,1}
bg_colour - цвет фона, на котором выводится параметр, по умолчанию {0x00FF00,0.5}
alarm - величина параметра с которого необходимо изменить цвет, по умолчанию max
alarm_colour - цвет параметра выше заданного параметром alarm, по умолчанию fg_colour
alarm=50,
bg_colour={0x00ff00,0.25},
fg_colour={0x00ff00,1},
alarm_colour={0xff0000,1},
smooth - плавный переход из одного цвета в другой, включить true выключить false, по умолчанию false
Верхний бар - выключен
Нижний бар - включен
mid_colour - добавление градации цвета по схеме {позиция градации (от 0 до 1), цвет в шестнадцатеричном формате, насыщенность}, возможность добавления 3 цветов, по умолчанию выключено
Верхний бар - mid_colour - выключен
fg_colour={0x00ff00,1},
alarm_colour={0xff0000,1},
alarm_colour={0xff0000,1},
Средний бар - добавлен желтый цвет
fg_colour={0x00ff00,1},
alarm_colour={0xff0000,1},
smooth=true,
mid_colour={{0.5,0xffff00,1}},
Нижний бар - основной цвет изменён на синий, добавлены зелёный и желтый
fg_colour={0x0000ff,1},
alarm_colour={0xff0000,1},
smooth=true,
mid_colour={{0.25,0x00ff00,1},{0.5,0xffff00,1}},
alarm_colour={0xff0000,1},
smooth=true,
mid_colour={{0.25,0x00ff00,1},{0.5,0xffff00,1}},
led_effect - эффект "светодиода" для каждого отдельного блока, не работает с параметром smooth=true, по умолчанию выключен. Возможные варианты
led_effect="r" - радиальный эффект
led_effect="a" - параллельный эффект
led_effect="e" - перпендикулярный эффект
Цвет задаётся следующими параметрами
fg_led - цвет параметра в центре блока, по умолчанию fg_colour
bg_led - цвет фона в центре блока, по умолчанию bg_colour
alarm_led - цвет alarm в центре блока, по умолчанию alarm_colour
Вот так это выглядит
Верхний бар
led_effect="r",
fg_led={0x00ff00,1},
alarm_led={0xff0000,1},
bg_led={0x00ff00,0.25},
Средний бар
led_effect="a",
fg_led={0x00ff00,1},
alarm_led={0xff0000,1},
bg_led={0x00ff00,0.25},
Нижний бар
led_effect="e",
fg_led={0x00ff00,1},
alarm_led={0xff0000,1},
bg_led={0x00ff00,0.25},
Ну и совсем экзотика, зеркальное отражение бара, не работает с секторными барами. Лучше самим поэкспериментировать, чем мне объяснить.
reflection_alpha - насыщенность зеркального изображения, значения от 0 до 1, по умолчанию 0 - нет зеркального отражения
reflection_scale - масштаб зеркального изображения, по умолчанию 1, размер основного изображения (значения от 0 до 1)
reflection_length - часть зеркального изображения прозрачность которой отсутствует, по умолчанию 0 (значения от 0 до 1)
reflection - расположение зеркального изображения. Все значения соответствуют вертикальному бару.
reflection="b" - отражение внизу (по умолчанию)
reflection="t" - отражение сверху
reflection="l" - отражение слева
reflection="r" - отражение справа
angle=90,
reflection_alpha=1,
reflection_scale=1,
reflection_length=1,
reflection="r",
reflection_alpha=1,
reflection_scale=1,
reflection_length=1,
reflection="r",
Ну и последнее объяснение.
draw_me - Насколько я понял, этот параметр по умолчанию (true или 1) при обработке строки типа
"${if_empty ${wireless_essid wlan0}}${else}1$endif"
выводит фоновое изображение. При присвоении параметру значения false фоновое изображение не выводится
Как работает скрипт попробуйте разобраться сами. Если возникнут вопросы, пишите, попробую ответить.
Комментариев нет:
Отправить комментарий