# Conky (Русский)

## Введение

Conky является системным монитором для X Window System. Он доступен для Linux и FreeBSD. Это свободное программное обеспечение выпущенное на условиях лицензии BSD. Conky может производить мониторинг большинства системных параметров, включая частоту и загрузку CPU, RAM, подкачки, дискового пространства, температуру, может отображать системные сообщения, и др. Он предельно конфигурируем, однако, конфигурирование может быть слегка сложным для понимания. Conky - это ответвление от проекта torsmo.

## Установка и конфигурирование

- Conky можно найти в репозитории Extra

    # pacman -S conky

- Отредактируйте конфигурационный файл используя пример конфигурации с homeproject-screenshot

    $ nano ~/.conkyrc

- Либо используйте файл стандартной конфигурации `/etc/conky/conky.conf`:

    $ cp /etc/conky/conky.conf ~/.conkyrc

## Советы и рекомендации

### Как предотвратить мерцание

Чтобы предотвратить мерцание, Conky требует поддержку Double Buffer Extension (DBE) со стороны X-сервера, потому что он не может достаточно быстро обновлять окно без этого. Поддержка DBE может быть включена в `/etc/X11/xorg.conf` добавлением строки `Load "dbe"` в `Section "Module"`. Для включения double-buffer проверте наличие в `~/.conkyrc` строки:

    double_buffer yes

### Интеграция с Kdesktop

Conky с конфигурацией из примеров на странице со скриншотами создаёт проблему с отображением иконок. Итак следуйте следующим шагам.

- Добавьте эти строки в `~/.conkyrc`:

    own_window yes
    own_window_type normal
    own_window_transparent yes
    own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager

- Если данная строка есть, закомментируйте или удаалите её

    minimum_size

- Для автозапуска conky создайте следующий симилинк

    $ ln -s /usr/bin/conky ~/.kde/share/autostart/conkylink

- Установите feh

    # pacman -S feh

- Создайте скрипт для разрешения прозрачности с рабочим столом

Для пользователей KDE3

    $ nano -w ~/.kde/share/autostart/fehconky

    #!/bin/bash
    feh --bg-scale `dcop kdesktop KBackgroundIface currentWallpaper 1`

Для пользователей KDE4 (необходимы утилиты feh и fbset)

    $ nano -w ~/.kde4/share/autostart/fehconky

    #!/bin/bash
    RESOLUTION=$(fbset -s | grep mode | cut -sd\" -f2)

    WALL_DIR=$(kde4-config --path cache)plasma-wallpapers
    WALL_DIR=${WALL_DIR}$(grep wallpaper= ~/.kde4/share/config/plasma-desktop-appletsrc | cut -sd= -f2)

    WALL_FILE=$(find ${WALL_DIR} -name "*${RESOLUTION}*")

    if [ ! -r ${WALL_FILE} ]; then
    	echo "Failed to retrieve background image..." >&2
    else
    	feh --bg-scale ${WALL_FILE}
    fi

используйте `--bg-center`, чтобы расположить фоновый рисунок по ценру.

- Сделайте его исполняемым

    $ chmod +x ~/.kde/share/autostart/fehconky

- По желанию, вместо использования скрипта, вы можете добавить подобную строку в самый низ `.conkyrc`

    $ nano ~/.conkyrc

Для KDE3

    ${exec feh --bg-scale `dcop kdesktop KBackgroundIface currentWallpaper 1`}

Для KDE4 предпочтителен первый способ (в связи с длиной скрипта).

### Как отображать информацию о доступных обновлениях пакетов в Conky

Взгляните на следующие темы о скриптах отображения информации о доступных обновлениях пакетов в conky:

- Script to display the number of packages waiting for update.
- Update notifier in python
- Scrolling package update notifier
- bash script for users that have enabled ShowSize

### Как отображать прогноз погоды в Conky

Смотрите this thread.

### Как отображать RSS-ленты в Conky

Conky имеет возможность отображать RSS-ленты самостоятельно, без необходимости применения внешних скриптов. Например, чтобы отображать заголовки десяти последних обновлений Planet Arch и обновлять ленту каждую минуту вы должны поместить это в ваш `.conkyrc`:

    ${rss https://planet.archlinux.org/rss20.xml 1 item_titles 10 }

### Как отображать состояние rtorrent в Conky

Смотрите эту тему.

### Как отображать количество новых писем (Gmail) в Conky

Создайте файл с именем `gmail.py` в удобном месте (в этом примере используется `~/.scripts/`) со следующим кодом Python:

    import os
    import string

    #Введите ваши имя_пользователя и пароль в двойных кавычках ниже
    # напр. username="имя_пользователя" и password="пароль"
    username="****"
    password="****"
    com="wget -O - https://"+username+":"+password+"@mail.google.com/mail/feed/atom --no-check-certificate"

    temp=os.popen(com)
    msg=temp.read()
    index=string.find(msg,"<fullcount>")
    index2=string.find(msg,"</fullcount>")
    fc=int(msg[index+11:index2])

    if fc==0:
       print "0 new"
    else:
       print str(fc)+" new"

Добавьте следующую строку к вашему `.conkyrc` чтобы проверять ваш почтовый ящик gmail на предмет новых писем каждые 5 минут (300 секунд) и отображать: # new

    ${execi 300 python ~/.scripts/gmail.py}

Скрипт на Bash:

    #!/bin/bash

    login="****"
    psswd="****"

    new=`curl -u ${login}:${psswd} -s "https://mail.google.com/mail/feed/atom" | grep -c "<entry>"`
    echo $new new

### Некоторые параметры

${cpu cpu1} показывать на каждое ядро (вместо "1" номер ядра)

${nvidia temp} при этом конки должны быть собраны с поддержкой nvidia в оф репах без нее, в AUR можно взять там такие конки собраны, вариант выводить значение от команды

${execi 4 nvidia-settings -query GPUCoreTemp | grep Attribute | cut -c 39-40} (команда проприетарного драйвера нвидии, где "cut -c 39-40" символы которые выводить в коньки можете поэксперементировать сами если у вас ничего не видно или можно через команды вывода температуры пакета lm_sensors)

${top_mem mem_res 1} показывать в мегабайтах сколько занимает оперативы процесс и вот линк на статейку с овер9000 ключей коньков [1]

## Внешние ссылки

- Conky Configs on arch forums
- Official website
- Conky on Freshmeat
- Conky on SourceForge
- #conky IRC chat channel on freenode
- FAQ

## Предоставленные пользователями файлы .conkyrc

### Graysky's .conkyrc

[Скриншот]

Измените в соответствии вашей системе. Optimized for a quad core chip w/ three hdds (although two of them aren't connected for this screenshot) and an nvidia graphics card. You can easily modify this to a dual or single core system with one or whatever number of hdds.

    # for this to work you need both lm-sensors and hddtemp
    # get both from main repos

    # set to yes if you want Conky to be forked in the background
    background no

    own_window yes
    own_window_type override
    own_window_transparent yes
    own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager

    out_to_console no

    # X font when Xft is disabled, you can pick one with program xfontsel
    #font 7x12
    #font 6x10
    #font 7x13
    #font 8x13
    #font 7x12
    #font *mintsmild.se*
    #font -*-*-*-*-*-*-34-*-*-*-*-*-*-*
    #font -artwiz-snap-normal-r-normal-*-*-100-*-*-p-*-iso8859-1

    # Use Xft?
    use_xft yes

    # Xft font when Xft is enabled
    xftfont Bitstream Vera Sans Mono:size=8
    #
    #
    #own_window_transparent no
    #own_window_colour hotpink
    # Text alpha when using Xft
    xftalpha 0.8

    #on_bottom yes

    # Update interval in seconds
    update_interval 2
    # Create own window instead of using desktop (required in nautilus)
    #own_window no

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

    # Minimum size of text area
    #minimum_size 250 5
    maximum_width 258

    # Draw shades?
    draw_shades no

    # Draw outlines?
    draw_outline no

    # Draw borders around text
    draw_borders no

    # Stippled borders?
    stippled_borders 10

    # border margins
    border_margin 4

    # border width
    border_width 1

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

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

    # Gap between borders of screen and text
    gap_x 12
    gap_y 37
    # Add spaces to keep things from moving about?  This only affects certain objects.
    use_spacer no

    # Subtract file system buffers from used memory?
    no_buffers yes

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

    TEXT
    ${color #ddaa00}$nodename$color
    $sysname $kernel on $machine
    ${color lightgrey}Uptime:$color $uptime ${color lightgrey}- Load:$color $loadavg${color lightgrey}
    RAM Usage:$color $memperc% or $mem of $memmax${color lightgrey}
    Swap Usage:$color $swapperc%${color lightgrey}
    $color$stippled_hr${color lightgrey}
    Intel Xeon X3360 @ $color${freq_g} GHz${color lightgrey} (Vcc: ${execi 8 sensors | grep in0 | cut -c15-19} V)
    ${color black}${cpugraph 000000 5000a0}${color lightgrey}
     ${color lightgrey}Core0:$color ${execi 8 sensors | grep -A 1 'Core 0' | cut -c15-16 | sed '/^$/d'} °C${color grey} @$color ${cpu cpu1}%   ${alignr}${cpubar cpu1 6,120}
     ${color lightgrey}Core1:$color ${execi 8 sensors | grep -A 1 'Core 1' | cut -c15-16 | sed '/^$/d'} °C${color grey} @$color ${cpu cpu2}%   ${alignr}${cpubar cpu2 6,120}
     ${color lightgrey}Core2:$color ${execi 8 sensors | grep -A 1 'Core 2' | cut -c15-16 | sed '/^$/d'} °C${color grey} @$color ${cpu cpu3}%   ${alignr}${cpubar cpu3 6,120}
     ${color lightgrey}Core3:$color ${execi 8 sensors | grep -A 1 'Core 3' | cut -c15-16 | sed '/^$/d'} °C${color grey} @$color ${cpu cpu4}%   ${alignr}${cpubar cpu4 6,120}${color grey}
    $color$stippled_hr${color lightgrey}
    ${color grey} sda:$color ${execi 300 sudo hddtemp /dev/sda | cut -c25-26} °C    ${color grey} sdb:$color ${execi 300 sudo hddtemp /dev/sdb | cut -c24-25} °C    ${color grey} sdc:$color ${execi 300 sudo hddtemp /dev/sdc | cut -c34-35} °C
    ${color grey} GPU:$color ${execi 8 nvclock -T | grep 'GPU t' | cut -c21-22} °C    ${color grey} M/B:$color ${execi 8 sensors | grep temp2 | cut -c15-16} °C     ${color grey} NB:$color ${execi 8 sensors | grep temp3 | cut -c15-16} °C
    $color$stippled_hr${color lightgrey}
    ${color slate grey} /dev/shm: ${color }${fs_used_perc  /dev/shm} %  ${fs_bar /dev/shm}
    ${color grey}$stippled_hr${color light grey}
    ${color lightgrey}Processes:$color $processes  ${color grey}Running:$color $running_processes
    ${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}

Categories:

- Русский
- Status monitoring and notification (Русский)