Conky конфиги linux mint

Конфиги Conky

#1 — 28 августа 2012 в 09:41

[code=php]
background yes
update_interval 1

cpu_avg_samples 2
net_avg_samples 2
temperature_unit celsius

double_buffer yes
no_buffers yes
text_buffer_size 2048

gap_x 10
gap_y 30
minimum_size 190 450
maximum_width 190

own_window_class conky
own_window yes
own_window_type conky
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager

border_inner_margin 0
border_outer_margin 0
alignment tr

draw_shades no
draw_outline no
draw_borders no
draw_graph_borders no

override_utf8_locale yes
use_xft yes
xftfont caviar dreams:size=8
xftalpha 0.5
uppercase no

default_color FFFFFF
color1 DDDDDD
color2 AAAAAA
color3 888888
color4 F0292C

/.conky/conky_red.lua
lua_draw_hook_post main

[code=php]
require ‘cairo’

———————————————————————————
— clock DATA
— HOURS
clock_h = <
<
name=’time’, arg=’%H’, max_value=12,
x=110, y=80,
graph_radius=53,
graph_thickness=3,
graph_unit_angle=30, graph_unit_thickness=30,
graph_bg_colour=0xffffff, graph_bg_alpha=0.0,
graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.3,
txt_radius=34,
txt_weight=1, txt_size=10.0,
txt_fg_colour=0xFFFFFF, txt_fg_alpha=0.6,
graduation_radius=53,
graduation_thickness=6, graduation_mark_thickness=2,
graduation_unit_angle=30,
graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
>,
>
— MINUTES
clock_m = <
<
name=’time’, arg=’%M’, max_value=60,
x=110, y=80,
graph_radius=57,
graph_thickness=2,
graph_unit_angle=6, graph_unit_thickness=6,
graph_bg_colour=0xffffff, graph_bg_alpha=0.1,
graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.3,
txt_radius=70,
txt_weight=0, txt_size=9.0,
txt_fg_colour=0xFFFFFF, txt_fg_alpha=0.6,
graduation_radius=57,
graduation_thickness=0, graduation_mark_thickness=2,
graduation_unit_angle=30,
graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
>,
>
— SECONDS
clock_s = <
<
name=’time’, arg=’%S’, max_value=60,
x=110, y=80,
graph_radius=50,
graph_thickness=2,
graph_unit_angle=6, graph_unit_thickness=2,
graph_bg_colour=0xffffff, graph_bg_alpha=0.0,
graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.2,
txt_radius=40,
txt_weight=0, txt_size=12.0,
txt_fg_colour=0xFFFFFF, txt_fg_alpha=0.3,
graduation_radius=0,
graduation_thickness=0, graduation_mark_thickness=0,
graduation_unit_angle=0,
graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.0,
>,
>

———————————————————————————
— gauge DATA
gauge = <
<
name=’cpu’, arg=’cpu0′, max_value=100,
x=85, y=200,
graph_radius=24,
graph_thickness=5,
graph_start_angle=180,
graph_unit_angle=2.7, graph_unit_thickness=2.7,
graph_bg_colour=0xffffff, graph_bg_alpha=0.1,
graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.2,
hand_fg_colour=0xF0292C, hand_fg_alpha=1.0,
txt_radius=34,
txt_weight=0, txt_size=8.0,
txt_fg_colour=0xF0292C, txt_fg_alpha=1.0,
graduation_radius=28,
graduation_thickness=0, graduation_mark_thickness=1,
graduation_unit_angle=27,
graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
caption=»,
caption_weight=1, caption_size=8.0,
caption_fg_colour=0xFFFFFF, caption_fg_alpha=0.3,
>,

<
name=’memperc’, arg=», max_value=100,
x=85, y=300,
graph_radius=24,
graph_thickness=5,
graph_start_angle=180,
graph_unit_angle=2.7, graph_unit_thickness=2.7,
graph_bg_colour=0xffffff, graph_bg_alpha=0.1,
graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.2,
hand_fg_colour=0xF0292C, hand_fg_alpha=1.0,
txt_radius=10,
txt_weight=0, txt_size=8.0,
txt_fg_colour=0xF0292C, txt_fg_alpha=1.0,
graduation_radius=23,
graduation_thickness=0, graduation_mark_thickness=2,
graduation_unit_angle=27,
graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.5,
caption=»,
caption_weight=1, caption_size=8.0,
caption_fg_colour=0xFFFFFF, caption_fg_alpha=0.3,
>,
<
name=’fs_used_perc’, arg=’/home’, max_value=100,
x=85, y=380,
graph_radius=24,
graph_thickness=5,
graph_start_angle=180,
graph_unit_angle=2.7, graph_unit_thickness=2.7,
graph_bg_colour=0xffffff, graph_bg_alpha=0.1,
graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.2,
hand_fg_colour=0xF0292C, hand_fg_alpha=1.0,
txt_radius=34,
txt_weight=0, txt_size=8.0,
txt_fg_colour=0xF0292C, txt_fg_alpha=1.0,
graduation_radius=28,
graduation_thickness=0, graduation_mark_thickness=1,
graduation_unit_angle=27,
graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
caption=’/home’,
caption_weight=1, caption_size=8.0,
caption_fg_colour=0xFFFFFF, caption_fg_alpha=0.5,
>,
<
name=’swapperc’, arg=», max_value=100,
x=85, y=380,
graph_radius=18,
graph_thickness=5,
graph_start_angle=180,
graph_unit_angle=2.7, graph_unit_thickness=2.7,
graph_bg_colour=0xffffff, graph_bg_alpha=0.1,
graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.2,
hand_fg_colour=0xF0292C, hand_fg_alpha=1.0,
txt_radius=10,
txt_weight=0, txt_size=8.0,
txt_fg_colour=0xF0292C, txt_fg_alpha=1.0,
graduation_radius=28,
graduation_thickness=0, graduation_mark_thickness=1,
graduation_unit_angle=27,
graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
caption=’/swap’,
caption_weight=1, caption_size=8.0,
caption_fg_colour=0xFFFFFF, caption_fg_alpha=0.5,
>,
>

——————————————————————————-
— rgb_to_r_g_b
— converts color in hexa to decimal

function rgb_to_r_g_b(colour, alpha)
return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
end

——————————————————————————-
— angle_to_position
— convert degree to rad and rotate (0 degree is top/north)

function angle_to_position(start_angle, current_angle)
local pos = current_angle + start_angle
return ( ( pos * (2 * math.pi / 360) ) — (math.pi / 2) )
end

——————————————————————————-
— draw_clock_ring
— displays clock

function draw_clock_ring(display, data, value)
local max_value = data[‘max_value’]
local x, y = data[‘x’], data[‘y’]
local graph_radius = data[‘graph_radius’]
local graph_thickness, graph_unit_thickness = data[‘graph_thickness’], data[‘graph_unit_thickness’]
local graph_unit_angle = data[‘graph_unit_angle’]
local graph_bg_colour, graph_bg_alpha = data[‘graph_bg_colour’], data[‘graph_bg_alpha’]
local graph_fg_colour, graph_fg_alpha = data[‘graph_fg_colour’], data[‘graph_fg_alpha’]

— background ring
cairo_arc(display, x, y, graph_radius, 0, 2 * math.pi)
cairo_set_source_rgba(display, rgb_to_r_g_b(graph_bg_colour, graph_bg_alpha))
cairo_set_line_width(display, graph_thickness)
cairo_stroke(display)

— arc of value
local val = (value % max_value)
local i = 1
while i 0 and graduation_thickness > 0 and graduation_unit_angle > 0 then
local nb_graduation = 360 / graduation_unit_angle
local i = 1
while i 0 and graduation_thickness > 0 and graduation_unit_angle > 0 then
local nb_graduation = graph_end_angle / graduation_unit_angle
local i = 0
while i 5 then
go_clock_rings(display)
go_gauge_rings(display)
end

cairo_surface_destroy(cs)
cairo_destroy(display)
end
[/code]

Источник

LM 16 Cinnamon: Conky. Часть 1. Подготовительные работы

Conky, или в народе «коньки», представляет собой мощный и разнообразно настраиваемый системный монитор, берущий начало от torsmo.

Читайте также:  Разрешить перетаскивание windows 10

Я не имею своей целью излагать тут теорию и даже большинство практических нюансов настройки и отладки conky, а просто приведу свои настройки и свой результат, отсылая всех интересующихся более подробными сведениями к Гуглу и по ссылкам, которые буду приводить по ходу дела.

Я настраивал свои «коньки» в течение, наверное, 2 – 3 месяцев (не помню уже точно), а «подстраиваю» их периодически до сих пор. Однако не пугайтесь, это связано не столько со сложностью настроек (conky можно запустить сразу после установки, хотя вряд ли кого-то устроит его дефолтный вид), сколько с тюнингом «под себя» и под своё железо.

Меня в конечном счете устоил такой вариант, который и кочует теперь от Ubuntu к Arch’у и по всем LinuxMint, включая «Росинки» 9, 11 и 13 alpha, вот уже года три, а то и больше.

Содержание

Установка необходимого

Сами «коньки» могут быть установлены из репозитория разными пакетами: conky-cli, conky-std и conky-all. Разумно сразу выбрать последний пакет, чтобы не морочиться в том случае, если со временем захочется расширить функциональность.

Однако кроме этого надо установить и настроить еще много чего.

Необходимые пакеты

Список пакетов, которые потребуются, ниже. Некоторые потребуют предварительной настройки, об этом — еще ниже.

lm-sensors
sensord
libsensors4
hddtemp
smartmontools
lsscsi
lynx (лучше lynx-cur)

Настройка lm-sensors

lm-sensors находит датчики (температуры, вращения кулеров, напряжения), соответствующий драйвер для их опроса и обеспечивает вывод показаний в stdout.

Запускаем в терминале

и отвечаем на все вопросы положительно, т.е. печатая y или просто нажимая Enter там, где подсказка выглядит как YES/no.

Этот процесс займет какое-то время. В конце, если программа нашла датчики, должна появиться такая примерно запись:

после чего последует еще один, последний вопрос (о сохранении найденной конфигурации), на который также отвечаем y.

Затем загружаем модуль (или модули), который нашла утилита:

должна вывести данные датчиков, которые (после того как мы разберёмся где что) пригодны для парсинга простенькими скриптами и вывода в окне conky. Для примера под спойлером мой вывод команды sensors.

$ sensors radeon-pci-0100 Adapter: PCI adapter temp1: +36.0°C w83627ehf-isa-0290 Adapter: ISA adapter Vcore: +1.06 V (min = +0.00 V, max = +1.74 V) in1: +0.18 V (min = +1.98 V, max = +2.04 V) ALARM AVCC: +3.31 V (min = +2.98 V, max = +3.63 V) +3.3V: +3.31 V (min = +2.98 V, max = +3.63 V) in4: +1.69 V (min = +2.04 V, max = +1.91 V) ALARM in5: +1.73 V (min = +2.04 V, max = +2.04 V) ALARM in6: +1.92 V (min = +1.98 V, max = +2.04 V) ALARM 3VSB: +3.31 V (min = +2.98 V, max = +3.63 V) Vbat: +3.31 V (min = +2.70 V, max = +3.63 V) in9: +1.68 V (min = +1.53 V, max = +1.53 V) ALARM fan1: 2343 RPM (min = 0 RPM, div = 8) fan2: 2280 RPM (min = 0 RPM, div = 16) fan3: 0 RPM (min = 0 RPM, div = 128) fan5: 0 RPM (min = 0 RPM, div = 128) temp1: +21.0°C (high = -1.0°C, hyst = -1.0°C) ALARM sensor = thermistor temp2: +31.0°C (high = +80.0°C, hyst = +75.0°C) sensor = thermistor temp3: +31.0°C (high = +80.0°C, hyst = +75.0°C) sensor = thermistor cpu0_vid: +0.375 V intrusion0: ALARM

Настройка hddtemp

hddtemp предназначен для мониторинга температуры жестких дисков.

В LM 16 этот пакет идет «из коробки», поэтому сразу приступаем к его настройке. В других системах его надо установить из реп, при этом может быть задан вопрос, запускать ли его как демона; следует ответить утвердительно.

Читайте также:  Прикольные звуки при включение windows

Главная проблема с hddtemp состоит в том, что его запуск разрешён только от root’a, и обычным путём его данные в Conky вывести не получается. Есть, условно говоря, два метода решения этой проблемы (метод симлинка и метод правки ручками конфига hddtemp), которые я объединил в один — по принципу «кашу маслом не испортишь»

Открываем файл /etc/default/hddtemp

Исправим и раскомментируем последнюю строку следующим образом:

Теперь найдем строку

Далее избавляем hddtemp от излишнего самомнения двумя следующими командами (это предложено юзером valet2valet на гентушном форуме):

После этого команда от простого юзера

должна безропотно выводить результат, к примеру так:

Скрипты. Подготовка данных к выводу в Conky.

Прежде чем приступать к оформлению главного файла conky —

/.conkyrc, который и формирует всю картинку на мониторе, надо разобраться, как выводить туда данные с нашего железа и от ПО.

/.conky, где можно будет хранить необходимые для работы conky скрипты, бэкапы файла

/.conkyrc и даже справочные файлы. Так легче, во-1-х, не забыть где что лежит, а во-2-х, бэкапировать всё это богатство одним махом.

Вывод температур процессора, материнки и видеокарты.

Главное в этом деле – разобраться, какая температура из вывода команды sensors чему соответствует. Тут нам помогут только три вещи (то есть я не знаю других): информация из BIOS, утилита inxi и, выражаясь наукообразно, логические структуры нашего мышления, а по-простонародному – репа.

То, что мне удалось установить в результате, под спойлером:

Остаётся подготовить эти результаты к выводу в Conky. Для этого сочиним маленькие простенькие скрипты, поместим их в директорию

/.conky, присвоим им права на исполнение командой:

и протестируем их прямо на месте, запуская их обычным образом:

1. Скрипт для вывода температуры процессора (будем выводить температуру одного ядра), назовём его cputemp.sh

2. Скрипт для вывода температуры видеокарты назовём video.sh

3. Скрипт для вывода температуры матплаты назовём systemp.sh

Всё зависит от ваших предпочтений и знаний shell.

Что касается вывода температуры жестких дисков, то никаких скриптов не нужно. Теперь, когда мы сладили с этой утилитой, ее данные можно выводить непосредственно в Conky, как это будет показано в описании

Скрипт для вывода своего IP

Скрипт myip.sh для определения своего IP-адреса имеет смысл сделать в том случае, если вы находитесь, например, за маршрутизатором и простыми средствами типа команды ifconfig определить внешний адрес нельзя.

Погодные скрипты

Погоду в Conky каждый выводит по-своему, кто во что горазд. Ну, и я тоже, конечно

Под спойлером – коротенький обзор нескольких способов и объяснение, почему я от них в конце концов отказался.

Например, Olgman, чей блог полностью посвящен Conky, написал большой материал в нескольких частях О том как написать программу на lua для приема сводок погоды с любого сайта. Сергей Минаев aka Brainsburn в своем очень полезном материале Conky. Подробная настройка (который очень мне помог на начальном этапе освоения сабжа) приводит два варианта скрипта, которым парсится XML с сайта informer.gismeteo.ru (впоследствии с meteoservice.ru, читайте комменты на странице по вышеприведенной ссылке). Сам Сергей, между тем, не пользуется этим скриптом, а попросту берет каждые 10 мин. wget’ом маленьку картинку с гисметео, т.е. использует информер. И это имеет определенный смысл: бесплатное и свободное предоставление погодных информеров до некоторой степени гарантирует стабильность, на которую нельзя расчитывать при других вариантах импорта данных. Но тут есть и недостатки. Картинка, как правило, ломает весь визуальный ряд Conky, и приходится либо мириться с этим, либо подстраивать под картинку всё остальное.

Читайте также:  Перестал работать dvd привод windows 10

Итак, язык Lua я осваивать пока не собираюсь (мотивации маловато), парсить XML не вижу особого смысла (т.к. мне нужны только краткие погодные данные, которые можно получить более простым путём), идея с картинкой мне не нравится по эстетическим соображениям. Поэтому я использую обыкновенный shell, а данные беру консольным браузером lynx с морды одного из погодных сайтов.

Логика построения скрипта такова:

1. Берём дамп морды сайта с помощью lynx;

2. отбираем нужные строки grep’ом с контекстными опциями;

3. парсим отобранные строки потоковым редактором sed.

Метеосайтов в природе немало, и это хорошо. А плохо то, что большинство из них часто и непредсказуемым образом меняют формат представления данных (так сказать, выражение морды). Теоретически можно написать такой железобетонный скрипт, который бы учитывал эти изменения, но на практике, имхо, овчина не стоит выделки, и гораздо проще иметь в запасе 3 – 4 скрипта, берущих данные с разных сайтов. Писать на досуге такие скрипты нетрудно и гораздо увлекательнее, чем тупо раскладывать пасьянс.

Выберем для примера сайт Meteoinfo.ru. Возьмем с него погоду для Москвы:

Рассмотрим полученный дамп (он сравнительно небольшой, 140 строк) на предмет, где находится нужное нам содержание. Оказывается, оно начинается с 65 – 66 строки. Можно отсчитывать нужные строки отсюда, но мне показалось удобнее сделать иначе: найти строку приблизительно посередине нужного куска вывода (таковой оказалась строка

Нужные данные располагаются в 7 строк выше и 7 строк ниже этого. Пишем в терминале:

и получаем такой вывод:

Чудесно, дальше можно спокойно парсить этот кусок дампа. Для начала вырезаем ненужную строку с рисунком («Погода [10.gif]») и, если надо, строку «Комментарий к погоде Дымка (видимость больше 1 км)». Этим мы несколько сократим объем работ с sed’ом.
Начало скрипта приобретает вид

а затем его вывод передаем по пайпу редактору sed.
Окончательный вид скрипта:

Запустив этот скрипт в терминале, получаем примерно такой вывод:

/.conky$ ./meteoinfo.sh 10:00:00 Давление, мм рт.ст. 740 Температура 1.3 °C Влажность 91% Ветер Ю-В Скорость 1 м/с Облачность 10 Осадки за 12 часов, мм 0

Как видим, ничего особенно сложного нет, и, применяя подобный алгоритм, мы можем брать погодные данные почти с любого метеосайта, а главное – парсить и форматировать вывод как нашей душеньке угодно. Требуются лишь некоторые знания shell и sed. После того, как мы получим нужный формат вывода путём отладки в терминале, нам останется только прописать периодический запуск этого скрипта в .conkyrc, к примеру, так:

Но не будем забегать вперед, файлу .conkyrc будет посвящена следующая 2-я часть поста.

Мой .conkyrc

Автор должен покаяться: он совсем уже забросил мысли о написании второй части, поскольку считал это дело неинтересным и никому не нужным. Однако читатели автора пристыдили и вразумили. Пока суд да дело, выкладываю «сырьём» свой

/.conkyrc. Может быть, даже прокомментирую его несколько позже, и посмотрим, хватит ли этого на вторую часть поста.

Приведу внешний вид conky, соответствующий этому .conkyrc:

Как видите, отличия с тем, что на первом скрине, невелики (ушел один диск, добавился другой, нашлось место для оборотов cpu fan и прочие мелочи).

Источник

Оцените статью