10/08/2007

Настройка conky: Индикация состояния системы в Linux

Весьма удобно следить за состоянием своей системы, не слишком отрываясь от других задач. Здорово бросить взгляд на информативную панельку - и сразу получить всю информацию о работе системы. Именно для этих целей есть системные мониторы, например conky. Настроить conky в Linux очень просто, о чём и будет этот пост.


Умолчания, стиль и необходимость настройки conky
По умолчанию, установленный conky выглядит жутковато. Это такой тонкий намёк на то, что программу нужно подгонять под себя и свои представления об удобстве. Дело это до некоторой степени кропотливое, но сделав это раз, потом много раз экономим время.

Настраивается conky через свой конфиг, который нужно скопировать из /usr/share/doc/conky/examples/ или из /usr/share/doc/conky/ в свой домашний каталог и переименовать в .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 или, пользуясь своими знаниями английского, догадаться :-)

Это всё довольно просто - главное развлечение начинается при настройке переменных, которые и будут отображаться. Лучше всего за основу взять какой-нибудь образцовый конфиг отсюда и брать понравившиеся элементы. В этой замечательной статье (на русском!) есть много интересных идей - только читать её нужно с конца (пропуская философские отвлечения).
Короче говоря: вторая часть конфига выглядит примерно так
${переменная параметры}
$элемент оформления
${color цветтекста}
${переменная параметры}
...

Назначение переменных в основном понятно из их названий:
  • 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. Вот как, например, вывести информацию о температуре на процессоре и включения троттлинга:

${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 (у вас они будут, скорее всего, другими).

Более навороченные трюки, типа отображения степени зарядки батареи ноутбука, описываются опять-таки здесь ближе к концу статьи. Напоследок - скриншот моего conky и текст его конфига.



И текст конфига .conkyrc который это обеспечивает (внимание, для отображения заряда батарей используется обращение к скрипту, которого у вас может не быть). Вот образец конфигурационного файла conky
# Conky advanced configuration
background yes

# Use Xft?
use_xft yes

# Xft font when Xft is enabled
xftfont Bitstream Vera Sans Mono:size=9

# Text alpha when using Xft
xftalpha 0.8

# Update interval in seconds
update_interval 2.0

# This is the number of times Conky will update before quitting.
# Set to zero to run forever.
total_run_times 0

# Create own window instead of using desktop (required in nautilus)
own_window no

# If own_window is yes, you may use type normal, desktop or override
own_window_type normal

# Use pseudo transparency with own_window?
own_window_transparent yes

# If own_window is yes, these window manager hints may be used
#own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager

# Use double buffering (reduces flicker, may not work for everyone)
double_buffer yes

# Minimum size of text area
minimum_size 300 5

# Draw shades?
draw_shades yes

# Draw outlines?
draw_outline no

# Draw borders around text
draw_borders no

# Draw borders around graphs
draw_graph_borders no

# Stippled borders?
stippled_borders 8

# border margins
border_margin 40

# border width
border_width 1

# Default colors and also border colors
default_color white
default_shade_color black
default_outline_color black

# Text alignment, other possible values are commented
#alignment top_left
#alignment top_right
#alignment bottom_left
alignment bottom_right
#alignment none

# Gap between borders of screen and text
# same thing as passing -x at command line
gap_x 12
gap_y 12

# Subtract file system buffers from used memory?
no_buffers yes

# set to yes if you want all text to be in uppercase
uppercase no

# number of cpu samples to average
# set to 1 to disable averaging
cpu_avg_samples 2

# number of net samples to average
# set to 1 to disable averaging
net_avg_samples 2

# Force UTF8? note that UTF8 support required XFT
override_utf8_locale no

# Add spaces to keep things from moving about? This only affects certain objects.
use_spacer no

# Maximum size of buffer for user text, i.e. below TEXT line.
#max_user_text 16384

# Allow for the creation of at least this number of port monitors (if 0 or not set, default is 16)
#min_port_monitors 16

# Allow each port monitor to track at least this many connections (if 0 or not set, default is 256)
#min_port_monitor_connections 256

# variable is given either in format $variable or in ${variable}. Latter
# allows characters right after the variable and must be used in network
# stuff because of an argument

# stuff after 'TEXT' will be formatted on screen

TEXT
$nodename - $sysname $kernel on $machine
$stippled_hr
${color lightgrey}Current time: $color ${time %k:%M:%S} - ${color lightgrey}Uptime:$color $uptime ${color lightgrey}- Load:$color $loadavg
${color lightgrey}CPU Usage:${color #cc2222} $cpu% ${cpubar}
${color blue}${cpugraph 0000ff 00ff00}
${color lightgrey}RAM Usage:$color $mem/$memmax - Swap Usage:$color $swap/$swapmax - $swapperc%
${color lightgrey}File systems: $color${fs_free /}/${fs_size /} ${fs_bar /}
${color lightgrey}Processes:$color $processes ${color grey}Running:$color $running_processes
$stippled_hr
${color}Name PID CPU% MEM%
${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}
${color}Mem usage
${color #ddaa00} ${top_mem name 1} ${top_mem pid 1} ${top_mem cpu 1} ${top_mem mem 1}
${color lightgrey} ${top_mem name 2} ${top_mem pid 2} ${top_mem cpu 2} ${top_mem mem 2}
${color lightgrey} ${top_mem name 3} ${top_mem pid 3} ${top_mem cpu 3} ${top_mem mem 3}
$stippled_hr
${color blue}System health ${color lightgrey}
${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-}
${color lightgrey} Core clock: $color ${execi 2 cat /proc/cpuinfo | grep 'cpu MHz' | cut -c12-}
$stippled_hr
${color red}Energy subsystem:
${color lightgrey}Power: $color${execi 2 cat /proc/acpi/ac_adapter/AC0/state | cut -c26-} - ${color lightgrey}Charging state:$color ${execi 2 cat /proc/acpi/battery/BAT0/state | grep charging | cut -c26-}
${color lightgrey}Present rate :$color ${execi 2 cat /proc/acpi/battery/BAT0/state | grep 'present rate' | cut -c26-} - ${color lightgrey}Battery energy:${color green} ${execi 2 /usr/bin/myscript/kmvbatterystate}%
$color $stippled_hr
${color #ddaa00}Port(s)${alignr}#Connections
$color Inbound: ${tcp_portmon 1 32767 count} Outbound: ${tcp_portmon 32768 61000 count}${alignr}ALL: ${tcp_portmon 1 65535 count}
${color #ddaa00}Inbound Connection ${alignr} Local Service/Port$color
${tcp_portmon 1 32767 rhost 0} ${alignr} ${tcp_portmon 1 32767 lservice 0}
${tcp_portmon 1 32767 rhost 1} ${alignr} ${tcp_portmon 1 32767 lservice 1}
${tcp_portmon 1 32767 rhost 2} ${alignr} ${tcp_portmon 1 32767 lservice 2}
${color #ddaa00}Outbound Connection ${alignr} Remote Service/Port$color
${tcp_portmon 32768 61000 rhost 0} ${alignr} ${tcp_portmon 32768 61000 rservice 0}
${tcp_portmon 32768 61000 rhost 1} ${alignr} ${tcp_portmon 32768 61000 rservice 1}
${tcp_portmon 32768 61000 rhost 2} ${alignr} ${tcp_portmon 32768 61000 rservice 2}

Скрипт для отображения заряда батареи /usr/bin/myscript/kmvbatterystate

#!/bin/sh
MAX=`cat /proc/acpi/battery/BAT0/info | grep 'design capacity:' | cut -b26-30`
CUR=`cat /proc/acpi/battery/BAT0/state | grep remaining | cut -d':' -f2 | cut -d' ' -f7`
PRC=$(( $CUR * 100 / $MAX ))
echo $PRC
Ещё раз напомню, что у вас пути в /proc к информации об ACPI могут быть другими.

Ссылки
Есть очень хорошая статья про conky, и даже на русском, но там вначале довольно много философии. Полный список переменных есть тут.

41 комментарий:

  1. Буду первым. :)

    Отличная, подробная статья. :) Как говорят ЖЖшники, "вмемориз!" Пригодится однозначно, особенно если решу перейти на Conky.

    Conky мне сильно понравился с первой встречи (еще помоему даже на виртуальной машине, когда я впервые знакомился с linux). Однако он отвратнейшим образом работает с kwin: при обновлении conky, десктоп заметно моргает. Поэтому пока что наш выбор - gkrellm: не настолько информативный, но внимание на себя не сильно отвлекает, не заставляет десктоп моргать. :)

    ОтветитьУдалить
  2. Для того, чтобы агрегат не мерцал и не нервировал достаточно аккуратно добавить строку Load "dbe" в секцию "Modules" файла xorg.conf
    Все будет тип-топ ;)

    ОтветитьУдалить
  3. >> Во-вторых, процесс это исключительно интерактивный: меняете настройку - прибиваете текущий процесс conky - запускаете новый - смотрите - меняете настройку... и так далее.

    лучше всего в таком случае запускать conky в терминале (от юзера естественно), а когда потребуется отключить conky - то жать ctrl+c.
    PS: за статью огромное спасибо, сейчас поставил, буду настраивать :).

    ==
    Михаил_Сергеевич

    ОтветитьУдалить
  4. 2 vonderer@darkstar пишет...
    Буду первым. :)
    Всегда рад :-)

    Отличная, подробная статья. :)
    Спасибо. Настраивал себе conky вместо torsmo, к которому привык. Дай, думаю, выложу - авось пригодится кому.

    Пригодится однозначно, особенно если решу перейти на Conky.
    Он реально быстрее и лучше. Основан на коде торсмо, если что.

    Однако он отвратнейшим образом работает с kwin: при обновлении conky, десктоп заметно моргает.
    Андрей, просвети: что за kwin?
    От морганий спасает double duffering. У меня в IceWM всё нормально работает.

    2 Анонимный пишет...
    Для того, чтобы агрегат не мерцал и не нервировал достаточно аккуратно добавить строку Load "dbe" в секцию "Modules" файла xorg.conf
    Все будет тип-топ ;)

    Кстати, да. У меня это включено по умолчанию, и conky это использует.


    2 Анонимный пишет...
    лучше всего в таком случае запускать conky в терминале (от юзера естественно), а когда потребуется отключить conky - то жать ctrl+c.
    Нет, не получается. Он форкается в фоновый процесс и в терминале его уже не вырубишь. Так что приходится killall conky и запускать снова.

    PS: за статью огромное спасибо, сейчас поставил, буду настраивать :).
    Пожалуйста. Орёл на линуксцентре, который статью написал, сказал примерно тоже, но более длинно и витиевато. Я решил изложить вопрос настройки в стиле "так куды лошадь запрягать?" :-))

    ОтветитьУдалить
  5. >>Для того, чтобы агрегат не мерцал и не нервировал достаточно аккуратно добавить строку Load "dbe" в секцию "Modules" файла xorg.conf
    Все будет тип-топ ;)


    да он не мерцает, но если у вас иконки на рабочем столе то мерцают иконки, если кто знает как это исправить буду благодарен

    ОтветитьУдалить
  6. поделюсь своим скриншотом :)
    http://i102.photobucket.com/albums/m101/reasonspace/myworkspace1.png

    ОтветитьУдалить
  7. Отличная статья, спасибо!

    ОтветитьУдалить
  8. добавлю и свои две копейки по опыту работы с коньками:
    1. Вместо
    ${tcp_portmon ... rhost ...}
    лучше использовать конструкции
    ${tcp_portmon ... rip ...}
    (первый вариант жутко тормозил
    у меня в Дебе и Убунте, уже при 4
    таких строчках в конфиге)

    2. К сожалению, для моего двухядерника переменные загрузки
    процессоров, такие как
    ${cpugraph X 20,200 0000ff ff0000}
    не показывают реально нагрузку на
    различные ядра, хотя в документации
    написано, что если если X = 1, 2, то должно отображать разные процессоры. Фактически при Х=1,2
    показывает общую загрузку, как при
    Х=0.

    3. Если конфиг создержит всякие "вкусности", типа переменных для чтения темпы жестких дисков, то
    коньки нужно пускать под рутом,
    либо прописывать SUID-биты.

    ОтветитьУдалить
  9. Долго настраивал свой конк, в итоге остались только две неприятности - изредка при загрузке системы дублируются иконки на столе, и иногда, когда после обновления счетчиков/логов окно конка изменяется по ширине, а старое изображение остается, таким образом картинка раздваивается/даже утраивается (помогает принудительное обновление рабстола), а так да, полезный инструмент. Юзаю XFCE (может от ДЕ зависит?)

    ОтветитьУдалить
  10. >>да он не мерцает, но если у вас иконки на рабочем столе то мерцают иконки, если кто знает как это исправить буду благодарен

    Иконки также не должны мерцать. Грубо говоря, когда используется модуль "dbe", то происходит обновление прямоугольника, ограниченного conky, без "dbe" - обоина обновляется вся. Так что, все должно работать аки бритва.

    ОтветитьУдалить
  11. Когда-то пробовал юзать, но отказался. Забыл почему. Начал пробовать во второй раз - сразу вспомнил: при любом перекрытии окном прямоугольника коньков, изображение стирается, и восстанавливается только через интервал обновления. Напрягает жутко. dbe включен. Гном. Опция own_window yes не помогла. Так что как ни грустно - гкреллм.

    ОтветитьУдалить
  12. 2 Анонимный пишет...
    если у вас иконки на рабочем столе то мерцают иконки
    Так как у меня в IceWM нет иконок, то у меня такой проблемы нет :-) Как исправить - не знаю.

    2 RiZN пишет...
    поделюсь своим скриншотом :)
    А кодом не поделишься?

    2 Штирлиц пишет...
    Отличная статья, спасибо!
    Пожалуйста.

    2 Анонимный пишет...
    добавлю и свои две копейки по опыту работы с коньками:
    Интересно, надо будет собрать такие находки.

    2 vladname пишет...
    изредка при загрузке системы дублируются иконки на столе, и иногда, когда после обновления счетчиков/логов окно конка изменяется по ширине
    Даже не знаю, с чем это связано.

    2 Antoxa пишет...
    Иконки также не должны мерцать. Грубо говоря, когда используется модуль "dbe", то происходит обновление прямоугольника
    Да вроде бы так и должно быть.

    2 MathWay пишет...
    Начал пробовать во второй раз - сразу вспомнил: при любом перекрытии окном прямоугольника коньков, изображение стирается, и восстанавливается только через интервал обновления. Напрягает жутко.
    У меня иногда бывает такое, но так как интервал обновления быстрый, 1 секунда, то отрисовывается быстро.

    ОтветитьУдалить
  13. kwin - оконный менеджер KDE. Я последнее время очень подсел на KDE вместо IceWM и фреймовых WM. :) Жду проприетарного драйвера для ATI с поддержкой AIGLX, чтобы наконец опробовать в полной мере, с нормальной 3д-акселерацией.

    За подсказку про dbe спасибо, уже прописал, чуть позже проверю с conky.

    Кстати, проглядывая новостные ленты с "Планеты Убунту", наткнулся на статью о новой версии conky, в которой включена поддержка RSS. Тык! :)

    ОтветитьУдалить
  14. Забавно. С dbe фон мерцать перестал, зато иконки пропадают (то есть, как суслики: они есть, но я их не вижу). :) В общем-то, Харон с ними, я все равно их не держу - хлам только, но факт остается фактом. :)

    ОтветитьУдалить
  15. К слову, немножко трудно читать твой конфиг по двум причинам:
    1) код не раздвигает страницу, поэтому часть его срезается;
    2) по rss отправляются только первые пять-шесть строк, поэтому, естественно, до конфига дело не дошло.

    Пришлось менять размер отображения текста. :)

    Свой conky настроил, теперь буду им пользоваться. Больно мне нравится его гибкость. А при наличии красивого шрифта - еще и внешний вид. :)

    ОтветитьУдалить
  16. Да, с иконками какая-то тайна покрытая мраком :) Вот мой невыдающийся минималистический конфиг, который обновляется ежесекундно и не хавает иконки. Авось кому пригодит...

    http://pastebin.ru/185569

    ОтветитьУдалить
  17. 2 vonderer@darkstar пишет...
    kwin - оконный менеджер KDE. Я последнее время очень подсел на KDE вместо IceWM и фреймовых WM. :)
    А я тоже использую программы из KDE. С флешками работаю очень редко - в основном текст и изображения. Для этого KDE не нужен.

    Жду проприетарного драйвера для ATI с поддержкой AIGLX
    Андрей, по-моему ты поседеешь к тому времени :-))

    новой версии conky, в которой включена поддержка RSS. Тык! :)
    Ага, спасибо. Описание ссылки оригинальное :-)

    2 vonderer@darkstar пишет...
    Забавно. С dbe фон мерцать перестал, зато иконки пропадают (то есть, как суслики: они есть, но я их не вижу). :)
    Вот за это я IceWM и люблю: нет иконок - нет проблем :-)


    К слову, немножко трудно читать твой конфиг по двум причинам:
    1) код не раздвигает страницу, поэтому часть его срезается;
    2) по rss отправляются только первые пять-шесть строк

    Ты ж знаешь, какой с меня спец по веб-технологиям ;-)

    ОтветитьУдалить
  18. Андрей, по-моему ты поседеешь к тому времени :-))
    Мне тоже подумалось.))) Но разработчики усердно обещают поддержку в версии 8.42, которая должна выйти в октябре. :) Подписался на RSS, в котором объявляется о выходе новых версий и жду.)

    ОтветитьУдалить
  19. Путем продолжительного тыка нашел для себя не оптимальное, но приемлемое решение для иконок. Есть небольшой бажок, иногда у меня фон окна становится каким-то белесым, и через некоторое время возвращается в нормальное состояние... Все потому, что Nautilus подменяет собой корневое окно :(

    own_window yes
    own_window_type override
    own_window_transparent yes
    background false
    double_buffer yes

    //alpmild

    ОтветитьУдалить
  20. Имха, большинство функций conky предназнчены для специфических задач, в повседневном использовании излишни, и используются больше как фетиш, нежели как полезная фича. Ну зачем, например, вам постоянно видеть свой аптайм? ;) Или версию ядра, имя машины и прочую статическую информацию о компе, если их у вас не десяток? И так далее и тому подобное. В случае, когда действительно нужно иногда посматривать такие сведения, есть масса иных способов, например, xmessage или osdcat. А держать постоянно в памяти программу которая все это мониторит, при том, что обычно конки спрятан за прочими окнами, а логов он не ведет, на мой взгляд, явно излишне. Впрочем, это все очень субъективно.
    Я для себя оставил только
    TEXT
    ${color #8197be}cpu:${color #711A26}$cpu% ${color #8197be}mem:${color #711A26}$memperc% ${color #8197be}eth0:${color #711A26}${downspeed eth0}${color #8197be}/${color #711A26}${upspeed eth0} ${color #8197be}${time %c}
    (Не знаю, как страница отформатирует сие сообщение, так что зарание звиняйте.;) Мне лично этого фполне хватает. Я бы и часы убрал, просто как-то привык в айсе, что у меня часы секунды тоже показывают. А если сделать в pypanel интервал обновления в 1 секунду, то проц грузится на 100 процентов.
    ЗЫЖ никто не подскажет, как сделать:
    1. непрозрачный фон для conky.
    2. поместить его поверх всех приложений, в частности, хочу запихнуть его, чтобы на заголовке максимизированного окна его можно было увидеть.

    ОтветитьУдалить
  21. Conky - это вещь! Раньше использовал апплеты SuperKaramba, тормоза были жуткие (
    К конфигу из статьи добавил:
    ${color blue}HDD ${color lightgrey}
    ${color lightgrey} HDD 1: $color ${execi 2 sensors | grep temp1 | cut -c12-55} HEALTH: $color ${execi 2 telnet 127.0.0.1 7634 | grep hda | cut -c21-22}
    ${color lightgrey} HDD 2: $color ${execi 2 sensors | grep temp2 | cut -c12-55} HEALTH: $color ${execi 2 telnet 127.0.0.1 7634 | grep hdb | cut -c51-52}
    На порту 7634 висит smartd, так что отображается температура дисков и их жизни)
    Возможно температуру можно узнавать откуда-нибудь из /sys/bus/i2c/devices/, но у меня там ничего интересного.

    ОтветитьУдалить
  22. 2 vonderer@darkstar пишет...
    Мне тоже подумалось.))) Но разработчики усердно обещают поддержку в версии 8.42, которая должна выйти в октябре.
    Ямщик, не гони лошадей, // Мне некуда больше спешить... :-)))
    Это к тому, что к октябрю сделать из этого г... конфету будет нелегко. А открыть драйвера им, видимо, стыдно за индусский код - засмеют :-)

    2 Анонимный пишет...
    Путем продолжительного тыка нашел для себя не оптимальное, но приемлемое решение для иконок. Есть небольшой бажок
    Хорошо бы его проверить на нескольких машинах. Мне, увы, негде, т.к. ни гном, ни КДЕ не использую.

    2 Анонимный пишет...
    Имха, большинство функций conky предназнчены для специфических задач, в повседневном использовании излишни, и используются больше как фетиш, нежели как полезная фича. Ну зачем, например, вам постоянно видеть свой аптайм?
    Так их можно не использовать, а аптаймом можно пугать зашедших по случаю пользователей оффтопика :-)

    А держать постоянно в памяти программу которая все это мониторит, при том, что обычно конки спрятан за прочими окнами, а логов он не ведет, на мой взгляд, явно излишне.
    Вообще удобно иногда быстро переместиться на другое окно и посмотреть, кто сожрал всю память - и прибить гада :-)

    2 Анонимный пишет...
    Conky - это вещь!
    А разве кто спорит? :-)

    Раньше использовал апплеты SuperKaramba, тормоза были жуткие
    Карамба, конечно, намного красивее конки, но немножко любит лакомиться памятью и циклами процессора :-))

    Возможно температуру можно узнавать откуда-нибудь из /sys/bus/i2c/devices/, но у меня там ничего интересного.
    А у меня там всё интересное и упрятано. Температуру могу узнать только там, а на ноутбуке из данных ACPI.

    ОтветитьУдалить
  23. ---
    Вообще удобно иногда быстро переместиться на другое окно и посмотреть, кто сожрал всю память - и прибить гада :-)
    ---
    Вот и я о том же. ;)
    echo 'key "Super+Esc" aterm -e htop' >> ~/.icewm/keys
    И фсе работает. ;) Мне, во всяком случае, так удобнее.
    А для мониторинга аптайма с легкостью можно использовать
    "uptime | osd_cat -p middle -A center -f -*-*-*-*-*-*-32-*-*-*-*-*-*-*"
    Тут просторы творчества ограничиваются только возможностями юникс-шелл, возможности которого, извините за каламбур, не ограничены. ;) Такого можно наворотить...
    Потому и говорю, что conky, как постоянно сидящий в памяти процесс, имхо, в большинстве случаев излишен.
    Хотя, если не мешает, то почему бы и не использовать... ;)
    Мне лично он полезен в качестве заменителя монитора скорости сети, загрузки процессора и памяти (не нашел для pypanel аналогичных плагинов). Сделан в одну строчку, чтобы по внешнему виду походить на продолжение pypanel.

    С уважением, Скив (забыл поставить ник в прошлом посте, хотя вряд ли сей ник вам чего-либо скажет, ибо незнакомы).

    ОтветитьУдалить
  24. 2 Анонимный (Скив) пишет...
    И фсе работает. ;) Мне, во всяком случае, так удобнее.
    Именно за это мы и любим такие простые вещи, как IceWM и conky - пнул и работает. А если что-то не заладится в кде\гном - иди ищи ветра в поле...

    А для мониторинга аптайма с легкостью можно использовать
    Аптаймы на главной машине меня давно перестали удивлять :-)

    Потому и говорю, что conky, как постоянно сидящий в памяти процесс, имхо, в большинстве случаев излишен.
    Ставят же люди KDE - и ничего, все живы :-) Конки, естественно, сильно поменьше съедает памяти. Вещь полезная и потому ресурсов на него не жаль. Тем более, что у меня 2Гб ОЗУ и мощный P4 с гипертреадингом :-)

    С уважением, Скив (забыл поставить ник в прошлом посте, хотя вряд ли сей ник вам чего-либо скажет, ибо незнакомы).
    Ну, теперь знакомы. Буду рад видеть тебя в комментаторах. А может, и в блоггерах - дело это увлекательное...

    ОтветитьУдалить
  25. спасибо. панравиласъ статья.

    ОтветитьУдалить
  26. для мнгоядерных процессоров правильнее указывать не ${cpugraph X 20,200 0000ff ff0000}
    а ${cpugraph cpuX 20,200 0000ff ff0000}

    ОтветитьУдалить
  27. У меня, когда сворачиваю все окна, сворачивается conky тоже. У меня гном. что делоть?

    ОтветитьУдалить
  28. Вообще удобно иногда быстро
    переместиться на другое окно и
    посмотреть, кто сожрал всю память
    - и прибить гада :-)

    Хм, по своему опыту скажу что гораздо удобнее использовать Конки собственно как раз для индикации списка открытых фреймов (воркспейсов, приложений), а для conky выделить отдельную неперекрывающуюся область.

    А топы и мониторы, если результаты не сохраняют, нафик не нада, имхо.

    ОтветитьУдалить
  29. Моргание, прозрачность и прочее победил, но осталась любопытная вещь.
    Про Nautilus и окно conky - тоже заметил такой баг.
    На машине, где Гнома не было, те же глюки с рабочим столом КДЕ: в левом верхнем углу иконки - в правом верхем conky(может конфликт в рифме? :)). И если кликать на окно conky, то иконки слева реагируют, будто кликаешь на них. Складывается ощущение, что conky транслирует свои клики на рабочий стол. То есть левый-верхний угол окна conky = левый верних угол Рабочего стола. Эдакий, мини рабочий стол. :) Отсюда, если на conky зажать мышь, повести и отпусть (ну, когда чертим рамку для выделения иконок), - то рамка появляется, но в левом верхнем углу Рабочего стола.
    Причем, при любых значениях параметра own_window... Впрочем, поставил только сегодня, будем копать дальше.
    За статью спасибо, информативная. Когда выясню причину своего бага - отпишусь. :)

    ОтветитьУдалить
  30. Я вообще не знаю,кому верить.
    Суть в том,что все подобные штуковины и htop с ними в один голос заявили что используется около 200мб ОЗУ

    А вот top иного мнения! Он показывает 900мб.

    ОтветитьУдалить
  31. Напоролся на странные грабли-не могу редактировать .conkyrc
    Ни один редактор (nano, vi, MC) не открывает его для редактирования, только на просмотр.
    Как быть?

    ОтветитьУдалить
  32. Этот комментарий был удален автором.

    ОтветитьУдалить
  33. Напоролся на странные грабли-не могу редактировать .conkyrc
    Ни один редактор (nano, vi, MC) не открывает его для редактирования, только на просмотр.
    Как быть?

    Заходи под рутом в менеджер командер (МС) жми F4 и вперёд

    ОтветитьУдалить
  34. <>

    Он все-таки Midnight Commander

    ОтветитьУдалить
  35. Второе предложение сначала: "о работы системы" падеж не тот
    "о работе системы" - так вроде, с уважением Павел.

    ОтветитьУдалить
  36. Доброго времени суток, я постоянный посетитель Вашего ресурса, спасибо за Ваши старания. Живу в дебиане достаточно давно, но вот до conky всё никак не доходили руки, решил восполнить пробел, у себя, и просмотрев Ваш пост, не обнаружил у себя /usr/share/doc/conky/examples/ этого конфига. В /usr/share/doc/conky/ есть эти файлы: changelog.Debian.gz, changelog.gz, copyright, NEWS.Debian.gz, присутствует ещё папка conky-all, но там конфигов тоже нет, как быть в моём случае. Установил себе squeeze, сразу после выхода, не сильно отличается от lenny, может быть ещё и отсутствием этого конфига ?

    ОтветитьУдалить
  37. @Анонимный комментирует...
    Напоролся на странные грабли-не могу редактировать .conkyrc
    Прав не хватает тебе, Анонимус :-) Либо делай chmod 777 .conkyrc либо правь от рута, как тебе присоветовали.

    @Анонимный комментирует...
    Он все-таки Midnight Commander
    Твоя правда, Анонимус.

    @Анонимный комментирует...
    Второе предложение сначала: "о работы системы" падеж не тот
    Точно. Спасибо, поправил!

    @Максим комментирует...
    просмотрев Ваш пост, не обнаружил у себя /usr/share/doc/conky/examples/ этого конфига.
    Пост написан давно, и за это время всякие злобные дебианщики что-то поменяли. Добавил в пост на всякий случай.

    там конфигов тоже нет
    Зато конфиг есть в посте. Просто скопируйте его из поста и вставьте к себе. Я для этого конфиг и запостил :-)

    Установил себе squeeze, сразу после выхода, не сильно отличается от lenny
    Там, говорят, четвёртые кеды всунули - оно, того, сильно отличается :-)

    может быть ещё и отсутствием этого конфига ?
    Берите мой конфиг из поста. Он должен работать.

    ОтветитьУдалить
  38. Скрипт для отображения заряда батареи я бы привёл к виду:
    #!/bin/sh
    MAX=`cat /proc/acpi/battery/BAT1/info | grep 'last full capacity:' | cut -b26-30`
    CUR=`cat /proc/acpi/battery/BAT1/state | grep remaining | cut -d':' -f2 | cut -d' ' -f7`
    PRC=$(( $CUR * 100 / $MAX ))
    echo $PRC
    Ибо со временем ёмкость батарей уменьшается, и, следовательно, отображаемый процент может не соответствовать действительности.

    ОтветитьУдалить
  39. 2Максим (и всем кому нужно, если еще нужно)
    >>не обнаружил у себя /usr/share/doc/conky/examples/ этого конфига.<<
    только что разбирался с этим. Конфиг лежит в /etc/conky/

    автору спасибо за статью. Конфиг интуитивно понятный, но - только в тех вещах, которые уже написаны.

    ОтветитьУдалить
  40. А как в conky добавить изображение, путь до которого выдаёт программа (или скрипт)?

    ОтветитьУдалить
  41. Вы не подскажете, что за панель задач у вас стоит и с какой темой? Часы - это отдельный апплет или фича таскбара? И да, свой конфиг conky не покажете?

    ОтветитьУдалить