Север
2008-04-02
Очень удобно следить за изменением параметров своей системы, не отрываясь от других решаемых в данный момент задач. Было бы здорово мельком взглянуть на удобную и информативную панельку - и сразу получить всю необходимую информацию о системе. Вот как раз для этих целей и были созданы системные мониторы. Об одном из них мы и поговорим здесь. Индикатор состояния системы: conky... Встречайте.
По умолчанию, свеже установленный conky производит жуткое впечатление. Так что, берем в руки напильник и начинаем, подгонять программу под себя и свои представления о прекрасном и удобстве. Дело это кропотливое, но сделать достаточно один раз и сохранить конфигурационный файл.
Настройка conky производится через свой конфиг, который нужно скопировать из /usr/share/doc/conky/examples/ в свой домашний каталог и переименовать в .conkyrc Теперь открываем конфиг в любом текстовом редакторе и начинаем его изучать. Делится конфиг на две части: первая часть отвечает за внешний вид системного монитора, а вторая - что он, собственно, будет отображать. Деление не строгое, и открыв конфиг, легко понять, почему.
В первой части файл конфига содержит довольно понятные комментарии. Наиболее важные параметры приведу ниже. Но прежде, чем мы начнем запускать и пробовать, нужно кое-что учесть. Во-первых, процесс это занимательный и может отвлечь на долго (у меня это заняло вечер). Во-вторых, процесс это исключительно интерактивный: меняете настройку - завершаете текущий процесс 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) есть много интересных идей.
Короче говоря, вторая часть конфига должна выглядить примерно так:
${переменная параметры}
$элемент оформления
${color цветтекста}
${переменная параметры}
...
Назначение переменных понятно из их названий:
Надо сказать, что применение 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. Вот как, например, вывести информацию о температуре на процессоре и включения троттлинга:
${color lightgrey} Core: $color ${execi 2 cat proc/acpi/thermal_zone/THRM/temperature cut -c26-} critical 115 C - ${color lightgrey} Throttling state: $color ${execi 2 cat proc/acpi/processor/CPU1/throttling | grep active | cut -c26-}
Для удобства я подсветил цветом: красным - команды conky, серым - текст, который будет выведен, синим - системные команды, которые выдают необходимые значения, зелёным - пути до массива данных ACPI (у вас они будут, скорее всего, другими).