- Настройка Conky
- Настройка Conky
- 1. Командная строка
- 2. Синтаксис конфигурационного файла
- 2. Расположение
- 3. Настройка окна
- 4. Прозрачность
- 5. Шрифт
- 6. Интервал обновления
- 7. Цвета
- 8. Синтаксис текстовой секции
- 9. Переменные текстовой секции
- 9. Примеры использования переменных
- Выводы
- LM 16 Cinnamon: Conky. Часть 1. Подготовительные работы
- Содержание
- Установка необходимого
- Необходимые пакеты
- Настройка lm-sensors
- Настройка hddtemp
- Скрипты. Подготовка данных к выводу в Conky.
- Вывод температур процессора, материнки и видеокарты.
- Скрипт для вывода своего IP
- Погодные скрипты
- Мой .conkyrc
Настройка Conky
Программа Conky — это системный монитор, который позволяет выводить на экран информацию о вашем процессоре, памяти, жестком диске, сетевом подключении, запущенных процессах и многом другом, что происходит в системе. Основная особенность Conky в том, что данные выводятся на рабочий стол в виде виджета, как будто они нарисованы на вашем изображении фона рабочего стола.
По умолчанию виджет Conky выглядит не очень красивым, но вы можете его настроить и сделать именно таким, каким захотите или установить одну из уже настроенных тем из интернета. В этой статье будет рассмотрена настройка Conky вручную. Эта информация также может пригодится вам для редактирования уже существующих тем или для создания новых.
Настройка Conky
1. Командная строка
Когда вы впервые запускаете Conky с параметрами по умолчанию, виджет выглядит примерно вот так:
Очень не красиво. Даже не обращаясь к конфигурационному файлу темы, вы можете настроить расположение и прозрачность из командой строки. Чтобы изменить положение виджета на экране используйте опцию -a. Доступны такие параметры left, right, top, bottom, middle. Надо указать расположение по вертикали и по горизонтали. Например:
conky -a middle_middle
Теперь виджет расположен по центру. Как видите, при обновлении виджет мерцает. Чтобы этого избежать можно использовать двойную буферизацию. Для этого добавьте опцию -b:
conky -b -a middle_middle
Теперь намного лучше, но самая полезная опция conky — это -c. Она позволяет задать конфигурационный файл из которого надо загружать тему. Дальше, в этой статье мы будем изменять конфигурационный файл темы, чтобы не повредить стандартную тему скопируйте его в домашнюю папку:
Затем проверьте, что всё работает:
conky -a middle_middle -c
Ещё можно запускать conky в режиме демона, это необходимо для автозагрузки программы, для этого используйте опцию -d, но пока этого делать не надо, потому что дальше будем редактировать конфигурационный файл.
2. Синтаксис конфигурационного файла
В прошлом пункте я предложил скопировать файл /etc/conky/conky.conf в
/.conky/default. С ним и будем работать. По умолчанию, любой конфигурационный файл conky делиться на две секции. Это секция настроек:
conky.config = <
параметр1=значение,
параметр2=значение
>
И секция данных для вывода:
Начнём мы с работы над секцией настроек.
2. Расположение
С помощью параметра alignment можно настроить расположение виджета на экране. Доступны значения, такие же как и в командой строке и указываются они точно так же. Давайте расположим наш виджет вверху справа:
Чтобы увидеть эффект сохраните файл и перезапустите Conky:
Все хорошо, но сейчас окно прикасается к краю экрана. Давайте отодвинем его на 50 пикселей. Для указания отступа от края по горизонтали используется параметр gap_x, а по вертикали gap_y. По вертикали окно выглядит нормально, а по горизонтали его надо немного сместить:
3. Настройка окна
В этом конфигурационном файле окно виджета Conky уже и так нормально настроено. Но знание этих настроек может пригодится вам в других файлах:
own_window = true,
own_window_class = ‘Conky’,
own_window_type = ‘desktop’,
Первая строчка включает использование собственного окна, вторая указывает класс для окна Conky, а третья указывает тип — desktop. Это всё необходимо, чтобы у окна не было никаких дополнительных элементов управления и оконный менеджер не трогал его. Если в вашем окружении всё же ещё какие нибудь элементы управления появляются, можно добавить ещё такую строчку:
4. Прозрачность
Сейчас окно чёрное, чтобы сделать его прозрачным добавьте такие строчки:
own_window_transparent = true,
own_window_argb_visual = true,
Не плохо, но хочется, чтобы окно было не полностью прозрачным, а только частично. Для этого надо отключить реальную прозрачность:
Затем можно настроить цвет и нужный уровень прозрачности с помощью ARGB:
own_window_colour = ‘171717’,
own_window_argb_value = 180,
Цвет может быть практически любым. А значение прозрачности может быть от нуля, до 255, где 0 — это полностью прозрачный и 255 — вообще не прозрачный.
5. Шрифт
С помощью параметра font можно настраивать шрифт и его размер. Например, я хочу использовать шрифт Noto Mono и размер чуть побольше:
font = ‘Noto Mono:size=13’,
Параметр use_xft чуть ниже включает использование шрифтов X сервера, поэтому он тоже здесь нужен.
6. Интервал обновления
За интервал обновления данных отвечает параметр update_interval, в данном случае, это одна секунда, можно сделать пол секунды:
Если вы запустили программу без опции -b, то увидите, что при обновлении виджет немного мерцает. Чтобы этого избежать включите двойную буферизацию:
7. Цвета
В секции настроек можно задать цвета, которые вы будете использовать потом в секции вывода. Это делать не обязательно, так как там можно сразу же указывать цвета, но это довольно удобно. Для этого просто добавьте переменные color1, color2, color3 и т д:
color1 = ‘#ff0000’,
color2 = ‘#00ff00’,
color3 = ‘#00ff00’,
8. Синтаксис текстовой секции
В текстовой секции записывается текст, который будет выводится в виджете. Здесь синтаксис такой:
Если для переменной нужны параметры, она пишется в скобках, если параметры не нужны, можно писать без скобок. Например:
$
Это одна из строк, в которой я использовал переменные цветов, объявленные выше. Пустая переменная $color сбрасывает цвет до значения по умолчанию, переменная $uptime выводит время работы компьютера. Это будет выглядеть так:
9. Переменные текстовой секции
Все операции с выводом текста выполняются с помощью переменных. Давайте рассмотрим основные переменные, которые вы можете использовать:
- alignc — выравнивание по центру;
- alignr — выравнивание по правому краю;
- color — меняет цвет на указанный в формате HEX, перед цветом надо указать решетку, если не указать никакого цвета, сбросит текущий цвет, на цвет по умолчанию;
- colorN — позволяет менять цвет на цвет из переменных color1, color2, color3 и так далее;
- exec — выполнить переданную в параметрах команду оболочки;
- execi — похоже на exec, но выполняет указанную команду с заданным интервалом обновления;
- execbar — если результат выполняемой команды от 0 до 100, выводится бар;
- execgauge — если результат выполнения команды от 0 до 100, выводится круговая диаграмма;
- execgraph — аналогично, execbar, только выводит график;
- font — задать или сбросить шрифт для последующего текста;
- hr — нарисовать горизонтальную линию;
- scroll — прокручивать переданный в параметрах текст;
- fs_bar — выводит бар с информацией о том, сколько места использовано на указанном разделе, в параметрах надо передать точку монтирования;
- fs_free — свободное место на разделе;
- fs_size — общий размер раздела;
- fs_used — использованное место на разделе;
- tail — показывает указанное количество последних строк из выбранного файла;
- top — позволяет отображать информацию о процессах в системе. В параметры принимает тип информации, которую надо отобразить и номер процесса в рейтинге. Все процессы сортируются по количеству потребляемых ресурсов процессора.
- addr — выводит текущий IP адрес;
- downspeedf — скорость загрузки данных из сети в килобайтах;
- upspeedf — скорость исходящего трафика в килобайтах;
- curl — загрузить данные по ссылке из интернета и отобразить.
Это далеко не все переменные, а только самые интересные из тех, которые вы можете использовать. Все переменные вы можете посмотреть выполнив:
9. Примеры использования переменных
Давайте для примера выведем свободное место в вашей домашней папке на виджет:
Аналогично можно сделать для каталога /boot:
Чтобы показать ваш текущий IP адрес можно воспользоваться переменной curl:
Температура процессора conky может быть получена с помощью sensors переменной execi:
А так можно узнать температуру видеокарты NVIDIA:
После нескольких экспериментов у меня получился такой конфиг conky:
conky.config = <
alignment = ‘top_right’,
background = false,
border_width = 1,
cpu_avg_samples = 2,
default_color = ‘white’,
default_outline_color = ‘white’,
default_shade_color = ‘white’,
draw_borders = false,
draw_graph_borders = true,
draw_outline = false,
draw_shades = false,
use_xft = true,
font = ‘Noto Mono:size=13’,
gap_x = 50,
gap_y = 60,
minimum_height = 5,
minimum_width = 5,
net_avg_samples = 2,
no_buffers = true,
out_to_console = false,
out_to_stderr = false,
extra_newline = false,
own_window = true,
own_window_class = ‘Conky’,
own_window_type = ‘desktop’,
own_window_transparent = false,
own_window_argb_visual = true,
own_window_colour = ‘171717’,
own_window_argb_value = 180,
stippled_borders = 0,
update_interval = 0.5,
double_buffer = true,
uppercase = false,
use_spacer = ‘none’,
show_graph_scale = false,
show_graph_range = false,
color1 = ‘#ff9950’,
>
conky.text = [[
$
$hr
$
$
$
$
$
$
$
$
$hr
$
$
$
$hr
$
$
$
]]
Выводы
В этой статье мы рассмотрели как настроить Conky. Используя все эти параметры и переменные вы сможете создать такой виджет, какой только захотите, всё упирается только в вашу фантазию и время. Делитесь вашими конфигурационными файлами в комментариях!
Источник
LM 16 Cinnamon: Conky. Часть 1. Подготовительные работы
Conky, или в народе «коньки», представляет собой мощный и разнообразно настраиваемый системный монитор, берущий начало от torsmo.
Я не имею своей целью излагать тут теорию и даже большинство практических нюансов настройки и отладки 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 этот пакет идет «из коробки», поэтому сразу приступаем к его настройке. В других системах его надо установить из реп, при этом может быть задан вопрос, запускать ли его как демона; следует ответить утвердительно.
Главная проблема с 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, и приходится либо мириться с этим, либо подстраивать под картинку всё остальное.
Итак, язык 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 и прочие мелочи).
Источник