Очень удобно следить за изменением параметров своей системы, не отрываясь
от других решаемых в данный момент задач. Было бы здорово мельком взглянуть на удобную и
информативную панельку - и сразу получить всю необходимую информацию о системе. Вот как раз для этих целей и были созданы системные мониторы. Об одном из них мы и поговорим в этом посте. Индикатор состояния системы: conky... Встречайте
Установка, параметры по умолчанию, стили и необходимость настройки
По
умолчанию, свеже установленный conky производит жуткое впечатление. Так что, берем в руки напильник и начинаем, подгонять программу под
себя и свои представления о прекрасном и удобстве. Дело это кропотливое, но сделать достаточно один раз и сохранить конфигурационный файл.
Настройка conky производится через свой конфиг, который нужно скопировать из /usr/share/doc/conky/examples/ в свой домашний каталог и переименовать в .conkyrc
Теперь
открываем конфиг в любом текстовом редакторе и начинаем его изучать. Делится конфиг на две части: первая часть отвечает за внешний вид системного монитора, а вторая - что он, собственно, будет
отображать. Деление не строгое, и открыв конфиг, легко понять, почему.
Настраиваем conky под себя
В
первой части файл конфига содержит довольно понятные комментарии. Наиболее важные параметры приведу ниже. Но
прежде, чем мы начнем запускать и пробовать, нужно кое-что учесть.
Во-первых,
процесс это занимательный и может отвлечь на долго (у меня это заняло
вечер). Во-вторых, процесс это исключительно интерактивный: меняете
настройку - завершаете текущий процесс conky - запускаете новый -
смотрите - меняете настройку... и так далее. И лучше руководствоваться Первой Заповедью Радиотехники - "Не крути две ручки сразу". А то потом трудно искать ошибки в конфиге и соображать, что привело к отрицательным результатам.
Итак,
первая часть параметров отвечает за внешний вид системного монитора. Здесь можно выбрать, в частности, шрифт и его параметры:
# Xft font when Xft is enabled
xftfont Bitstream Vera Sans Mono:size=9
Время
обновления, лучше ставить 1-2
секунды, хотя можно и меньше (но тогда возрастает потребление ресурсов):
# Update interval in seconds
update_interval 2.0
Положение по углам экрана, что тоже хорошо прокомментировано:
# Text alignment, other possible values are commented
#alignment top_left
#alignment top_right
#alignment bottom_left
alignment bottom_right
Ещё подробностей можно прочитать в официальном FAQ conky (http://conky.sourceforge.net/faq.html)
В первой части все довольно просто - проблемы начинаются при настройке
переменных, которые будут отображаться. Лучше всего за основу взять
какой-нибудь образцовый конфиг, (http://conky.sourceforge.net/screenshots.html) и брать понравившиеся элементы. В этой замечательной статье (на русском!) (http://www.linuxcenter.ru/lib/articles/soft/conky_as_example.phtml) есть много интересных идей.
Короче говоря, вторая часть конфига должна выглядить примерно так:
exec выводит на экран текст, возвращаемый вызываемой программой;
execbar и execgraph визуализируют вывод исполняемой команды в виде диаграммы или графика (выводимое значение должно находиться в пределах 0..100);
execi и texeci запускают команду циклом с интервалом (texeci — с интервалом, заведомо большим времени исполнения). execibar и execigraph полностью аналогичны execbar и execgraph, но для циклического выполнения команд;
if_running, if_existing и if_mounted — выводят всё вплоть до endif, если выполняется процесс, существует файл и подключена точка монтирования, соответственно;
else — выводит событие, если ложны все вышестоящие выражения.
Надо
сказать, что применение execi особенно для скриптов - дело довольно ресурсоемкое, и скрипты лучше отрабатывать с большим интервалом (раз в
несколько секунд).
Ниже - несколько наиболее интересных решений для отображения данных в conky.
Показывать текущее время в формате часы:минуты:секунды
${time %k:%M:%S}
Отображение занимаемой приложениями памяти
$mem/$memmax
Вот
тут зарыты грабли: значения отображаемой памяти были
неприлично малы - это происходит от того, что не учитывается
память, занятая кэшем.
Вывести три самых прожорливых до процессора приложения:
${color #ddaa00} ${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1}
${color lightgrey} ${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2}
${color lightgrey} ${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3}
Задачей посложнее является отображение ACPI-данных о процессоре или питании
системы. В этом нам помогут следующие утилиты cat и cut. Вот как,
например, вывести информацию о температуре на процессоре и включения
троттлинга:
Для
удобства я подсветил цветом: красным - команды conky, серым - текст,
который будет выведен, синим - системные команды, которые выдают
необходимые значения, зелёным - пути до массива данных ACPI (у вас они будут,
скорее всего, другими).