
Може би на всеки един ,който се занимава активно с компютри и използва активно в работата и ежедневието Линукс ,му се е искало да си направи малко по-приятеа за окото визията на десктопа си.За радост на всички ни,които ползваме услугите на Линукс,хората занимаващи се с развитието му , са се погрижили за това с редица решения ,включващи огромен избор за визуален тунинг на системата като например смяна на цветовите схеми на панелите,прозорците,иконите и прочие.В същото това време, често пъти ни се налага по ред причини да следим състоянието на системата ни – натоварване на процесора/-те,сумарната употреба на RAM в даден момент,в частност кое приложение колко ресурс „изстисква“от машината,размер и състояние на заетото и своб
одно място на хард дисковете и т.н.Във връзка с това разработчиците са създали редица конзолни инструменти ,които са много ефективни и ненатоварващи,но за употребата на които от потребителя се изисква да има сравнително сериозен арсенал от познания над командния ред под Линукс(в което лошо няма!).В същото това време всичкото писане на команди може да се сведе до минимум и какво по-хубаво може да има от това да си имаме пълна „кръвна картина“ на любимата ни дистрибуция , като в същото време ни се предостави необходимата ни информация по един наистина красив и интересен начин на десктопа !?В случая говорим за ето това:
Официална страница на проекта – http://conky.sourceforge.net
Conky присъства във (почти) всяка една Linux дистрибуция.При дебиан-базираните десрибуции инсталацията на програмата се извършва както следва:
# apt-get install conky
След като програмата се инсталира можете да я стртирате от конзолата с команда conky.Конфигурационен файл на програмата е под името .conkyrc и по правило отсъства в домашната директория на потребителя , а също така,както се забелязва от името е скрит файл.За да го видите използвате клавишната комбинация Ctrl+H.При положение,че в ~/ нямате .conkyrc, отваряте някой текстов редактор,като например Gedit и създавате конфиг файла под това име.Примерно съдържание на един .conkyrc изглежда така:
# Conky configuration
background yes
# Use Xft?
use_xft yes
# Xft font when Xft is enabled
xftfont sans:size=7.5:bold
# Text alpha when using Xft
xftalpha 0.8
# MPD host/port
#mpd_host localhost
#mpd_port 6600
#mpd_password tinker_bell
#Print everything to console?
out_to_console no
# Update interval in seconds
update_interval .5
# 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 yes
# If own_window is yes, you may use type normal, desktop or override
own_window_type override
# Use pseudo transparency with own_window?
own_window_transparent yes
# If own_window_transparent is set to no, you can set the background colour here
#own_window_colour black
# 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 210 5
# Maximum width of window
maximum_width 215
# Draw shades?
draw_shades yes
text_buffer_size 10000
# Draw outlines?
draw_outline no
# Draw borders around text
draw_borders no
# Draw borders around graphs
draw_graph_borders no
# Stippled borders?
stippled_borders 1
# border margins
border_margin 4
# border width
border_width 0
# Default colors and also border colors
default_color #cccccc
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 20
gap_y 30 # To hide from tranparent window borders.
# 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 yes
# Add spaces to keep things from moving about? This only affects certain objects.
use_spacer none
# Maximum number of special things, e.g. fonts, offsets, aligns, etc.
max_specials 550
# Maximum size of buffer for user text, i.e. below TEXT line.
max_user_text 16384
TEXT
${color #ccaa77}${font 28 Days Later:size=20}${goto 13} SYSTEM MONITORING ${font}
${color #ccaa77}${font Poky:size=15}x${color #ccaa77}${font 28 Days Later:size=8} SYSTEM $stippled_hr ${font}
${voffset 12}${font openlogos:size=15}${font}${voffset -50}
${voffset 18}${color #993300}${color #993300}$sysname${color #996633} $kernel ${color #993300}${pre_exec lsb_release -d | cut -c14-30}${voffset -18}
${voffset 16}${color #993300}Uptime:${color #996633} $uptime ${color #993300}Load:${color #996633} $loadavg${voffset -18}
${voffset 18}${color #993300}CPU: ${color #996633}${cpubar 3,161} $cpu%
${voffset -27}${goto 500}${color #996633}${font Openlogos:size=15}${font}
${voffset 3}${color #993300}${cpugraph 15,213 993300 996633 ff0000 00ff00 0000ff}
${color #993300}RAM: ${color #996633}$mem/$memmax - $memperc% ${goto 150}${membar 3,60}
${color #993300}Swap: ${color #996633}$swap/$swapmax - $swapperc% ${goto 150}${swapbar 3,60}
${color #993300}Processes: ${color #996633}$processes ${color #993300}CPU frequency: ${color #996633}${freq 1}MHz
${color #993300}CPU Temp:${color #996633} ${execi 6 /usr/bin/sensors | grep temp2 | paste -s | cut -c15-21} ${color #993300}Updates: ${color #996633}${execi 3600 aptitude search "~U" | wc -l | tail} Available
${color #993300}Trash Conteins:${goto 80}${color #996633}${execi 60 du -s --si ~/.local/share/Trash/files/ | awk '{print $1}' | sed -e '/^4.0K/d; s/$/iB /;'} ${color #993300}${goto 130}E-mail: ${color #996633}${goto 170}${execi 1800 perl ~/scripts/gmail.pl n} new
${color #993300}$stippled_hr
${color #ccaa77}${font Poky:size=15}a${color #ccaa77}${font 28 Days Later:size=8} PROCESSES $stippled_hr ${font}
${goto 20}${color #993300}Name ::. ${goto 110}PID${goto 138}CPU%${goto 175}MEM%
${goto 20}${color #996633}${top name 1} ${goto 105}${top pid 1}${goto 138}${top cpu 1}${goto 175}${top mem 1}
${goto 20}${color #996633}${top name 2} ${goto 105}${top pid 2}${goto 138}${top cpu 2}${goto 175}${top mem 2}
${goto 20}${color #996633}${top name 3} ${goto 105}${top pid 3}${goto 138}${top cpu 3}${goto 175}${top mem 3}
${goto 20}${color #993300}Memory ::.
${goto 20}${color #996633}${top_mem name 1} ${goto 105}${top_mem pid 1}${goto 138}${top_mem cpu 1}${goto 175}${top_mem mem 1}
${goto 20}${color #996633}${top_mem name 2} ${goto 105}${top_mem pid 2}${goto 138}${top_mem cpu 2}${goto 175}${top_mem mem 2}
${goto 20}${color #996633}${top_mem name 3} ${goto 105}${top_mem pid 3}${goto 138}${top_mem cpu 3}${goto 175}${top_mem mem 3}
${color #993300}$stippled_hr
${color #ccaa77}${font Poky:size=15}f${color #ccaa77}${font 28 Days Later:size=8} HARD DRIVE INFO $stippled_hr ${font}
${color #993300}Boot ${color #996633}${fs_used /boot}/${fs_size /boot} ${goto 120} ${fs_used_perc /boot}% ${goto 150} ${fs_bar 3,58 /boot}
${color #993300}Root ${color #996633}${fs_used /}/${fs_size /} ${goto 120} ${fs_used_perc /}% ${goto 150} ${fs_bar 3,58 /}
${color #993300}Home ${color #996633}${fs_used /home}/${fs_size /home} ${goto 120} ${fs_used_perc /home}% ${goto 150} ${fs_bar 3,58 /home}
${color #993300}Drive ${color #996633}${fs_used /media/drive}/${fs_size /media/drive} ${goto 120} ${fs_used_perc /media/drive}% ${goto 150} ${fs_bar 3,58 /media/drive}
${color #993300}Wind ${color #996633}${fs_used /media/windows}/${fs_size /media/windows} ${goto 120} ${fs_used_perc /media/windows}% ${goto 150} ${fs_bar 3,58 /media/windows}
${color #993300}Drive Temp: ${color #996633}${execi 6 /usr/bin/sensors | grep temp3 | paste -s | cut -c15-21} ${goto 122}${color #993300}Drive I/O: ${color #996633}${diskio /dev/hda}
${color #993300}$stippled_hr
${color #ccaa77}${font Poky:size=15}w${color #ccaa77}${font 28 Days Later:size=8} NETWORKING $stippled_hr ${font}
${color #993300}Down:${color #996633} ${downspeed eth0} k/s${color #993300}${offset 40}Up:${color #996633} ${upspeed eth0} k/s
${color #993300}${downspeedgraph eth0 10,105 993300 996633}${color #993300}${upspeedgraph eth0 10,105 996633 993300}
${voffset 8}${color #993300}Address: ${color #996633}${addr eth0}${goto 120}${color #993300}TCP Connections:${color #996633}${tcp_portmon 1 65535 count}
${color #993300}$stippled_hr
${color #ccaa77}${font OpenLogos:size=20}J${color #ccaa77}${font 28 Days Later:size=8} WEATHER $stippled_hr${font}
${color #993300}Today's Conditions:${offset 4}${color #996633}${execi 3600 python /home/frankie/conkyforecast/conkyForecast.py --location=BUXX0004 --datatype=CT}
${color #993300}Temperature: ${color #996633}${execi 3600 python /home/frankie/conkyforecast/conkyForecast.py --location=BUXX0004 --datatype=HT} ${color #993300}Windspeed: ${color #996633}${execi 3600 python /home/frankie/conkyforecast/conkyForecast.py --location=BUXX0004 --datatype=WS}
${color #993300}Direction: ${color #996633}${execi 3600 python /home/frankie/conkyforecast/conkyForecast.py --location=BUXX0004 --datatype=WD} ${color #993300}Humidity: ${color #993300}${execi 3600 python /home/frankie/conkyforecast/conkyForecast.py --location=BUXX0004 --datatype=HM}
${color #993300}Tomorrow: ${offset 4}${color #996633}${execi 3600 python /home/frankie/conkyforecast/conkyForecast.py --location=BUXX0004 --datatype=CT --startday=1 --endday=1}
${offset 25}${color #996633}${execi 3600 python /home/frankie/conkyforecast/conkyForecast.py --location=BUXX0004 --datatype=DW --shortweekday --startday=1 --endday=3 --spaces=17}
${offset 24}:${color #ccaa77}${font ConkyWeather:size=35}${execi 3600 python /home/frankie/conkyforecast/conkyForecast.py --location=BUXX0004 --datatype=WF --startday=1 --endday=3 --spaces=3}${font}
${voffset 2}${color #993300}Max: ${offset 15}${color #996633}${execi 3600 python /home/frankie/conkyforecast/conkyForecast.py --location=BUXX0004 --datatype=HT --startday=1 --endday=3 --spaces=14}
${color #993300}Min: ${offset 15}${color #996633}${execi 3600 python /home/frankie/conkyforecast/conkyForecast.py --location=BUXX0004 --datatype=LT --startday=1 --endday=3 --spaces=14}
${color #993300}$stippled_hr
${color #ccaa77}${font Poky:size=15}m${color #ccaa77}${font 28 Days Later:size=8} NETWORK STATISTICS $stippled_hr ${font}
${voffset 5}${color #996633}${goto 30}DOWN ${goto 160}UP
${offset 8}${if_up ath0}${color2}${font Vibrocentric:style=regular:size=14}Wireless Network$font${color3}${voffset 1}${hr 0}$color
${voffset -4}${wireless_link_bar 3,250 ath0}
${voffset -4}${color2}SSID:$color${goto 50}${wireless_essid ath0} ${goto 131}${color2}Signal: $color${goto 180}${wireless_link_qual ath0}/${wireless_link_qual_max ath0}
${color2}Local:$color${goto 50}${addr ath0} ${color2}${goto 131}Public:$color${goto 180}${execi 300 wget -q -O - checkip.dyndns.org | sed -e 's/[^[:digit:]\|.]//g'}
${downspeedgraph ath0 61,123 003300 6ddd00}${alignr}${upspeedgraph ath0 61,123 330000 e3170d}$color
${voffset -71}${color2}Down: $color${goto 50}${downspeedf ath0} k/s${goto 131}${color2}Up: $color${goto 180}${upspeedf ath0} k/s
${color #ccaa77}Total:$color${goto 50}${totaldown ath0} ${goto 131}${color2}Total:$color${goto 180}${totalup ath0}
${color2}Today:${goto 10}$color${execi 300 vnstat -i eth0 | grep "today" | awk '{print $2 $3}'}${goto 31}${color2}Today:$color${goto 180}${execi 300 vnstat -i eth0 | grep "today" | awk '{print $5 $6}'}
${color2}Week:${goto 50}$color${execi 300 vnstat -w -i eth0 | grep "current week" | awk '{print $3 $4}'}${goto 131}${color2}Week:$color${goto 180}${execi 300 vnstat -w -i eth0 | grep "current week" | awk '{print $6 $7}'}
${color2}Month:$color${goto 50}${execi 300 vnstat -m -i ath0 | grep "`date +"%b '%y"`" | awk '{print $3 $4}'}${goto 131}${color2}Month:$color${goto 180}${execi 300 vnstat -m -i ath0 | grep "`date +"%b '%y"`" | awk '{print $6 $7}'}${else}${color6}${font}
${goto 10}${color #993300}Total:${color #ccaa77}${goto 50}${totaldown eth0} ${goto 130}${color #993300}Total:${color #ccaa77}${goto 170}${totalup eth0}
${goto 10}${color #993300}Today:${goto 50}${color #ccaa77}${execi 300 vnstat -i eth0 | grep "today" | awk '{print $2 $3}'}${goto 130}${color #993300}Today:${color #ccaa77}${goto 170}${execi 300 vnstat -i eth0 | grep "today" | awk '{print $5 $6}'}
${goto 10}${color #993300}Week:${goto 50}${color #ccaa77}${execi 300 vnstat -w -i eth0 | grep "current week" | awk '{print $3 $4}'}${goto 130}${color #993300}Week:${color #ccaa77}${goto 170}${execi 300 vnstat -w -i eth0 | grep "current week" | awk '{print $6 $7}'}
${goto 10}${color #993300}Month:${color #ccaa77}${goto 50}${execi 300 vnstat -m -i eth0 | grep "`date +"%b '%y"`" | awk '{print $3 $4}'}${goto 130}${color #993300}Month:${color #ccaa77}${goto 170}${execi 300 vnstat -m -i eth0 | grep "`date +"%b '%y"`" | awk '{print $6 $7}'}${else}${color #ccaa77}${font}
Естествено писането на такъв файл на ръка в доста времеотнемаща и трудоемка задача и затова най-дорото решение е да използвате някой готов файл,като само промените и напаснете нещата по Ваш вкус.Такива файове могат да се намерят навсякъде из интернет ,а за нагласянето и промените на файловете се изискват познания за синтаксиса с който работи програмата.И,за да не изнасям лекция относно синтаксиса при писането на конфигурационните файлове на conky ,ще кажа само,че на ТОЗИ АДРЕС, може да се намери почти всичко около това кое , какво значи в един файл.
Специфики при конфигурирането и изграждането на .conkyrc файлове.
В тази част от статията ще стане въпрос за някои специфики при изграждането и употребата на накои по-специфични функции на Conky.Иде реч за неща като употребата на функции като „weather statistics“,или по-известна като „conkyforecast“ – показване на метериологичните условия,употреба на специфични скриптове за извличането и изобразвяването на информация от музикални плеъри и т.н.
Ще започнем с подготовката при употреба на „conkyforecast“,за по-кратко ще го обозначаваме като weather.За целта в един терминал пишете следното:
# apt-get install curl
След това отивате на този адрес и се регистрирате,т.е. си правите акаунт и отивате в профила си – My Profile.От там активирате XOAP Service Registration ,при което в пощата си получавате Вашите Partner ID & License Key,които описвате в conky Forecast.py – (намира се в прикачен файл „Conky Scripts“) ,там където пише :
XOAP_PARTNER_ID = "1067985480" # need config with correct partner id XOAP_LICENCE_KEY = "3d3a8b1e335c9985" # need config with correct licence key
За любителите на MOC (Music On Console) ще спомена ,че вече не се изискват специални скриптове.Необходимо е само да се опишат следните неща в .conkyrc :
>Status : ${exec mocp -Q %state}
Artist : ${exec mocp -Q %artist}
Song : ${exec mocp -Q %song}
Album : ${exec mocp -Q %album}
На още по-големите фенове ще кажа,че програмата поддържа и функция за скролване на текст.За целта текста ,който искате да се скролва се описва така:
${scroll 50 text}[bash]
Това ще скролва текста с ширина 50 знака.
<div class="note">
<div class="noteclassic"><strong>Забележка :</strong>
При използване на scroll-функцията за изобразяване на информация при употреба на MOC , след редица трудности,установих,че най-добре е конфиг файла да съдържа ред с подобно съдържание :
[bash]${scroll 48 MOC - ${exec mocp -Q %state} : ${exec mocp -Q %artist} - ${exec mocp -Q %song} }
Естествено „48″ си го променяте по веше усмотрение :)





3 Коментара
За по-лесна конфигурация съществува един доста мощен пакет: Conky-Colors, който позволява генерирането на конфигурационен файл за conky. Някои от изключително удобните функции са:
- Избор на език
- Избор на скриптове
- Конфигуриране на блоковете
- Избор нацветови конфигурации
Опътване как да се използва скрипта можете да намерите тук: http://is.gd/am5AH
Много ми хареса как е написано – разбрано и подробно. Браво!
@Владимир Колев – чудесно е че разбираш толкова много от conky, но обърни внимание на правописа, защото много губиш от тези елементарни грешки!
Благодаря, но не съм писал аз статията и от conky не разбирам. А за правописните грешки ще се постарая за напред да не са толкова много, просто бързината предразполага допускането им, а и когато се пише в браузъра няма корекция на правописа.