-
Начало
-
Линукс
-
Как да?
-
Конфигурация на Conky!
Оценка 4 от максимум 5.
Общо гласували: 33.
- добавен:
- 2011-03-05 15:10:14
- прегледи:
- 75496
- автор:
- Пею
Здравейте, искам да споделя моя опит и мойта конфигурация на конки, извинете ме ако Ви се стори че обяснявам елементарно, но искам да съм разбираем, за всички, най-вече за начинаещите!
Като приключим, резултатът трябва да е този:
Нужни пакети:
- conky-all
- conkyforecast
- conkyrhythmbox
- hddtemp
- lm-sensors
Всичко го има в Synaptic, може би само conkyforecast (това показва времето) няма да го има, но може да го свалите от тук, или да отворите терминал (Програми>>Помощни програми>>Терминал, ако сте с нещо различно то бг локализирано убунту с графична среда гном и пътя е някакъв друг, натиснете alt+F2 и в прозорчето пишете gnome-terminal и натискате ентер) и поставете:
sudo add-apt-repository ppa:conky-companions/ppa
sudo apt-get update
sudo apt-get install conkyforecast
Сега трябва да го конфигурираме. В домашната си папка създаваме файл .conkyForecast.config (упс, изчезна... натиснете Ctrl+h за да се видят скритите файлове) отваряме го с текстов редактор (ако не знаете къде стои или кой е, alt+f2 и пишете gedit, ако сте с графична среда kde пишете kate) и поставяме:
# config settings for conkyForecast.py
CACHE_FOLDERPATH = /tmp/
CONNECTION_TIMEOUT = 5
EXPIRY_MINUTES = 30
TIME_FORMAT = %H:%M
DATE_FORMAT = %Y-%m-%d
LOCALE = bg
XOAP_PARTNER_ID = 1156928576
XOAP_LICENCE_KEY = 6799af26c5e47ece
MAXIMUM_DAYS_FORECAST = 7
BASE_XOAP_URL = http://xml.weather.com/weather/local/?cc=*&dayf=10&link=xoap&prod=xoap&par=&key=&unit=m
Запазваме промените и правим файла изпълним, цъкаме с десен бутон, избираме права и слагаме отметки така:
или в теминал пишем:
sudo chmod 777 ~/.conkyforecast.config
Следва да създадем папка scripts в нашатата домашна папка, в нея ще направим един скриптов файл за времето и един за пощата, но първо времето... В новата папка си правим файл weather-7.template, отваряме си го с текстов редактор и вътре поставяме:
${image [--datatype=WI] -p -1,635 -s 90x90}
${voffset -175}${goto 15}${color #F3F5F3}[--datatype=DW --startday=1 --shortweekday].${goto 75}[--datatype=DW --startday=2 --shortweekday].${goto 135}[--datatype=DW --startday=3 --shortweekday].${goto 195}[--datatype=DW --startday=4 --shortweekday].
${voffset 42}${goto 5}${font Sans:size=8:weight=bold}${color #F3F5F3}[--datatype=HT --startday=1 --hideunits --centeredwidth=1]/[--datatype=LT --startday=1 --hideunits --centeredwidth=1]${goto 65}[--datatype=HT --startday=2 --hideunits --centeredwidth=1]/[--datatype=LT --startday=2 --hideunits --centeredwidth=1]${goto 125}[--datatype=HT --startday=3 --hideunits --centeredwidth=1]/[--datatype=LT --startday=3 --hideunits --centeredwidth=1]${goto 185}[--datatype=HT --startday=4 --hideunits --centeredwidth=1]/[--datatype=LT --startday=4 --hideunits --centeredwidth=1]
${image [--datatype=WI --startday=1] -p 0,755 -s 40x40}${image [--datatype=WI --startday=2] -p 60,755 -s 40x40}${image [--datatype=WI --startday=3] -p 120,755 -s 40x40}${image [--datatype=WI --startday=4] -p 180,755 -s 40x40}
Запазваме промените. Малко пояснение, можем да местим иконките по десктопа като променяме цифрите след -p първото число е хоризантала, второто по вертикала, символа -s е за размера на иконката. Текста по хоризонтал се регулира от числото след goto a по вертикал от числото след voffset. Сега да създадем скрипт за пощата, правим нов празен файл, който кръщаваме gmail.pl, отваряме го с текстов редактор и поставяме:
#!/usr/bin/perl
use Switch;
use Text::Wrap;
my $what=$ARGV[0];
$user=Име; #username for gmail account without qoutes
$pass=Парола; #password for gmail account without qoutes
$file="/tmp/gmail.html"; #temporary file to store gmail
#wrap format for subject
$Text::Wrap::columns=65; #Number of columns to wrap subject at
$initial_tab=""; #Tab for first line of subject
$subsequent_tab="t"; #tab for wrapped lines
$quote="\""; #put quotes around subject
#limit the number of emails to be displayed
$emails=4; #if -1 display all emails
&passwd; #give password the proper url character encoding
switch($what){ #determine what the user wants
case "n" {&gmail; print "$newn";} #print number of new emails
case "s" { #print $from and $subj for new email
&gmail;
if ($new>0){
my $size=@from;
if ($emails!=-1 && $size>$emails){$size=$emails;} #limit number of emails displayed
for(my $i=0; $i<$size; ++$i){
print "From: $from[$i]n"; #print from line
$text=$quote.$subj[$i].$quote."n";
print wrap($initial_tab, $subsequent_tab, $text); #print subject with word wrap
}
$size=@from;
if ($emails!=-1 && $size >$emails){print "$emails out of $size new emails displayedn";}
}
}
case "e" { #print number of new emails, $from, and $subj
&gmail;
if($new==0){print "Няма нови писма.n";}
else{
print "Има $new писмо/а.n";
my $size=@from;
if ($emails!=-1 && $size>$emails){$size=$emails;} #limit number of emails displayed
for(my $i=0; $i<$size; ++$i){
print "From: $from[$i]n"; #print from line
$text=$quote.$subj[$i].$quote;
print wrap($initial_tab, $subsequent_tab, $text); #print subject with word wrap
}
$size=@from;
if ($emails!=-1 && $size >$emails){print "$emails out of $size new emails displayedn";}
}
}
else {
print "Usage Error: gmail.pl <option>n";
print "tn displays number of new emailsn";
print "ts displays from line and subject line for each new email.n";
print "te displays the number of new emails and from line plus n";
print "ttsubject line for each new email.n";
} #didn't give proper option
}
sub gmail{
if(!(-e $file)){ #create file if it does not exists
`touch $file`;
}
#get new emails
`wget -O - https://$user:$pass@mail.google.com/mail/feed/atom --no-check-certificate> $file`;
open(IN, $file); #open $file
my $i=0; #initialize count
$new=0; #initialize new emails to 0
my $flag=0;
while(<IN>){ #cycle through $file
if(/<entry>/){$flag=1;}
elsif(/<fullcount>(d+)</fullcount>/){$new=$1;} #grab number of new emails
elsif($flag==1){
if(/<title>.+</title>/){push(@subj, &msg);} #grab new email titles
elsif(/<name>(.+)</name>/){push(@from, $1); $flag=0;} #grab new email from lines
}
}
close(IN); #close $file
}
sub passwd{ #change to url escape codes in password
#URL ESCAPE CODES
$_=$pass;
s/%/%25/g;
s/#/%23/g;
s/$/%24/g;
s/&/%26/g;
s///%2F/g;
s/:/%3A/g;
s/;/%3B/g;
s/</%3C/g;
s/=/%3D/g;
s/>/%3E/g;
s/?/%3F/g;
s/@/%40/g;
s/[/%5B/g;
s/\/%5C/g;
s/]/%5D/g;
s/^/%5E/g;
s/`/%60/g;
s/{/%7B/g;
s/|/%7C/g;
s/}/%7D/g;
s/~/%7E/g;
$pass=$_;
}
sub msg{
#THE HTML CODED CHARACTER SET [ISO-8859-1]
chomp; s/<title>(.+)</title>/$1/; #get just the subject
#now replace any special characters
s/!/!/g; #Exclamation mark
s/"/"/g; s/"/"/g; #Quotation mark
s/#/#/g; #Number sign
s/$/$/g; #Dollar sign
s/%/%/g; #Percent sign
s/&/&/g; s/&/&/g; #Ampersand
s/'/'/g; #Apostrophe
s/(/(/g; #Left parenthesis
s/)/)/g; #Right parenthesis
s/*/*/g; #Asterisk
s/+/+/g; #Plus sign
s/,/,/g; #Comma
s/-/-/g; #Hyphen
s/././g; #Period (fullstop)
s/////g; #Solidus (slash)
s/:/:/g; #Colon
s/;/;/g; #Semi-colon
s/</</g; s/</</g; #Less than
s/=/=/g; #Equals sign
s/>/>/g; s/>/>/g; #Greater than
s/?/?/g; #Question mark
s/@/@/g; #Commercial at
s/[/[/g; #Left square bracket
s/\/\/g; #Reverse solidus (backslash)
s/]/]/g; #Right square bracket
s/^/^/g; #Caret
s/_/_/g; #Horizontal bar (underscore)
s/`/`/g; #Acute accent
s/{/{/g; #Left curly brace
s/|/|/g; #Vertical bar
s/}/}/g; #Right curly brace
s/~/~/g; #Tilde
s/¡/¡/g; #Inverted exclamation
s/¢/¢/g; #Cent sign
s/£/£/g; #Pound sterling
s/¤/¤/g; #General currency sign
s/¥/¥/g; #Yen sign
s/¦/¦/g; #Broken vertical bar
s/§/§/g; #Section sign
s/¨/¨/g; #Umlaut (dieresis)
s/©/©/g; s/©/©/g; #Copyright
s/ª/ª/g; #Feminine ordinal
s/«/«/g; #Left angle quote, guillemotleft
s/¬/¬/g; #Not sign
s/®/®/g; #Registered trademark
s/¯/¯/g; #Macron accent
s/°/°/g; #Degree sign
s/±/±/g; #Plus or minus
s/²/²/g; #Superscript two
s/³/³/g; #Superscript three
s/´/´/g; #Acute accent
s/µ/µ/g; #Micro sign
s/¶/¶/g; #Paragraph sign
s/·/·/g; #Middle dot
s/¸/¸/g; #Cedilla
s/¹/¹/g; #Superscript one
s/º/º/g; #Masculine ordinal
s/»/»/g; #Right angle quote, guillemotright
s/¼/¼/g; s/¼/¼/g; # Fraction one-fourth
s/½/½/g; s/½/½/g; # Fraction one-half
s/¾/¾/g; s/¾/¾/g; # Fraction three-fourths
s/¿/¿/g; #Inverted question mark
s/À/À/g; #Capital A, grave accent
s/Á/Á/g; #Capital A, acute accent
s/Â/Â/g; #Capital A, circumflex accent
s/Ã/Ã/g; #Capital A, tilde
s/Ä/Ä/g; #Capital A, dieresis or umlaut mark
s/Å/Å/g; #Capital A, ring
s/Æ/Æ/g; #Capital AE dipthong (ligature)
s/Ç/Ç/g; #Capital C, cedilla
s/È/È/g; #Capital E, grave accent
s/É/É/g; #Capital E, acute accent
s/Ê/Ê/g; #Capital E, circumflex accent
s/Ë/Ë/g; #Capital E, dieresis or umlaut mark
s/Ì/Ì/g; #Capital I, grave accent
s/Í/Í/g; #Capital I, acute accent
s/Î/Î/g; #Capital I, circumflex accent
s/Ï/Ï/g; #Capital I, dieresis or umlaut mark
s/Ð/Ð/g; #Capital Eth, Icelandic
s/Ñ/Ñ/g; #Capital N, tilde
s/Ò/Ò/g; #Capital O, grave accent
s/Ó/Ó/g; #Capital O, acute accent
s/Ô/Ô/g; #Capital O, circumflex accent
s/Õ/Õ/g; #Capital O, tilde
s/Ö/Ö/g; #Capital O, dieresis or umlaut mark
s/×/×/g; #Multiply sign
s/Ø/Ø/g; #Capital O, slash
s/Ù/Ù/g; #Capital U, grave accent
s/Ú/Ú/g; #Capital U, acute accent
s/Û/Û/g; #Capital U, circumflex accent
s/Ü/Ü/g; #Capital U, dieresis or umlaut mark
s/Ý/Ý/g; #Capital Y, acute accent
s/Þ/Þ/g; #Capital THORN, Icelandic
s/ß/ß/g; #Small sharp s, German (sz ligature)
s/à/à/g; #Small a, grave accent
s/á/á/g; #Small a, acute accent
s/â/â/g; #Small a, circumflex accent
s/ã/ã/g; #Small a, tilde
s/ä/ä/g; #Small a, dieresis or umlaut mark
s/å/å/g; #Small a, ring
s/æ/æ/g; #Small ae dipthong (ligature)
s/ç/ç/g; #Small c, cedilla
s/è/è/g; #Small e, grave accent
s/é/é/g; #Small e, acute accent
s/ê/ê/g; #Small e, circumflex accent
s/ë/ë/g; #Small e, dieresis or umlaut mark
s/ì/ì/g; #Small i, grave accent
s/í/í/g; #Small i, acute accent
s/î/î/g; #Small i, circumflex accent
s/ï/ï/g; #Small i, dieresis or umlaut mark
s/ð/ð/g; #Small eth, Icelandic
s/ñ/ñ/g; #Small n, tilde
s/ò/ò/g; #Small o, grave accent
s/ó/ó/g; #Small o, acute accent
s/ô/ô/g; #Small o, circumflex accent
s/õ/õ/g; #Small o, tilde
s/ö/ö/g; #Small o, dieresis or umlaut mark
s/÷/÷/g; #Division sign
s/ø/ø/g; #Small o, slash
s/ù/ù/g; #Small u, grave accent
s/ú/ú/g; #Small u, acute accent
s/û/û/g; #Small u, circumflex accent
s/ü/ü/g; #Small u, dieresis or umlaut mark
s/ý/ý/g; #Small y, acute accent
s/þ/þ/g; #Small thorn, Icelandic
s/ÿ/ÿ/g; #Small y, dieresis or umlaut mark
s/^s+//;
return $_;
}
Дългичко е..., на редовете 8 и 9 сменяте текстовете "Име" и "Парола" с Вашето име и парола в gmail (пишете само името без @gmail.com), след това отваряме терминал и пишем:
sudo chmod -R 777 ~/scripts/
това е нужно за да направим папката и файлоете в нея изпълними.
Дойде ред и на самото конки, излизаме от папка scripts и в домашната папка правим файл .conkyrc, отваряме го и поставяме:
# --- Параметри conky --- #
own_window yes
own_window_class Conky
own_window_transparent yes
own_window_type override
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
double_buffer yes
# Минимална ширина
maximum_width 215
# Минимален размер
minimum_size 215
# Разположение на conky #
alignment top_right
#alignment middle_middle
gap_x 25
gap_y 50
# --- Графика --- #
draw_borders no
background no
stippled_borders 1
border_margin 9
border_width 5
default_color #F3F5F3
draw_graph_borders yes
# --- Text --- #
use_spacer right
use_xft yes
xftalpha 0.5
draw_shades yes
update_interval 1.5
draw_outline no
draw_borders no
font droid:size=8:weight=bold
uppercase no
override_utf8_locale yes
no_buffers yes
cpu_avg_samples 2
short_units yes
pad_percents 2
text_buffer_size 2048
TEXT
${color #F3F5F3}${font :style=bold}${goto 35}LinuxMint "Julia"$font
${hr 1}
Ядро: ${alignr}${kernel}
Процесор 1: ${hwmon temp 1} °C${alignr}${cpu cpu1} %
Процесор 2: ${hwmon 1 temp 1} °C${alignr}${cpu cpu2} %
RAM:${alignr}$memperc %
SWAP:${alignr}$swapperc %
Дъно t°:$alignr${execi 60 /usr/bin/sensors | grep temp2 | cut -c15-16} °C
Видео t°:$alignr${hwmon 2 temp 3}°C
Вентилатор:$alignr${execi 300 /usr/bin/sensors | grep fan1 | cut -c11-16} Об/мин.
Включен от: ${alignr}${uptime_short}
Потрбители: $alignr ${user_names}
Брой потрбители:$alignr ${user_number}
${font :style=Bold}Твърд диск:${font} ${hr 1}
${font :size=6}Дялове: ${alignc}Заети: / Общо:${alignr}Температура:$font
Root: ${alignc}${fs_used /} / ${fs_size /} ${alignr}${hddtemp /dev/sda} °C
Home: ${alignc}${fs_used /home} / ${fs_size /home} ${alignr}${hddtemp /dev/sda} °C
${font :style=Bold}Интернет:${font} ${hr 1}
${font :size=6}Посока${goto 135}Скорост: Общо:$font
Качване:${goto 140}${upspeed eth0} ${totalup eth0}
Сваляне:${goto 140}${downspeed eth0} ${totaldown eth0}
IP адрес:${goto 140}${addr ppp0}
${font :style=Bold}Процеси: $processes${font}${hr 1}
Aктивни: $running_processes
${font :size=6}Име${alignr}PID Ядра$font
${top name 1} $alignr ${top pid 1} ${top cpu 1}
${top name 2} $alignr ${top pid 2} ${top cpu 2}
${top name 3} $alignr ${top pid 3} ${top cpu 3}
${top name 4} $alignr ${top pid 4} ${top cpu 4}
${top name 5} $alignr ${top pid 5} ${top cpu 5}
${top name 6} $alignr ${top pid 6} ${top cpu 6}
${font :size=11 :style=bold}${goto 15}${time %H:%M}$font
${goto 15}${time %A}
${goto 12}${if_match ${time %e}<=9}${time %e}${else}${if_match ${time %e}>=10}${time %e}${endif}${endif} ${time %B}
${goto 15}${time %Y}
${voffset -63}${font Bitstream Vera Sans Mono:size=7:weight=bold}${color gray}${execpi 60 VinDSL_Cal_5=`date +%-d`; cal | sed '1d' | sed s/^/"${offset 94"}/ | sed '/^ *$/d' | sed 's/<'"$VinDSL_Cal_5"'>/${color gold}&${color1}/'}${font}
${font :style=Bold}Времето в Русе:$font ${hr 1}
$alignr Обновено на ${execi 600 conkyForecast --location=BUXX0011 --datatype=LU} ч.
$alignr${execi 600 conkyForecast --location=BUXX0011 --datatype=CC}, ${execi 600 conkyForecast --location=BUXX0011 --datatype=LT}
$alignr Мин/Макс: ${execi 600 conkyForecast --location=BUXX0011 --datatype=DP}/${execi 600 conkyForecast --location=BUXX0011 --datatype=HT}
$alignr Налягане: ${execi 600 conkyForecast --location=BUXX0011 --datatype=BR}
$alignr Влажност: ${execi 600 conkyForecast --location=BUXX0011 --datatype=HM}
$alignr Видимост: ${execi 600 conkyForecast --location=BUXX0011 --datatype=VI}
$alignr УВ индекс: ${execi 600 conkyForecast --location=BUXX0011 --datatype=UI}, ${execi 600 conkyForecast --location=BUXX0011 --datatype=UT}
$alignr Изгрев/Залез: ${execi 600 conkyForecast --location=BUXX0011 --datatype=SR}/${execi 600 conkyForecast --location=BUXX0011 --datatype=SS}
$alignrВятър скорост и посока: ${execi 600 conkyForecast --location=BUXX0011 --datatype=WS}/${execi 600 conkyForecast --location=BUXX0011 --datatype=WD}
$alignr Вероятност за валеж: ${execi 600 conkyForecast --location=BUXX0011 --datatype=PC}
$alignr Луна: ${execi 600 conkyForecast --location=BUXX0011 --datatype=MP}
${voffset 120}${execpi 600 conkyForecast --location=BUXX0011 --template=~/scripts/weather-7.template}
${color #F3F5F3}${voffset -18}${font :style=Bold}Rhythmbox:${font} ${hr 1}
${exec rhythmbox-client --no-start --print-playing-format %tt} - ${exec rhythmbox-client --no-start --print-playing-format %aa} ${exec rhythmbox-client --no-start --print-playing-format %at}
${font :style=Bold}Поща в Gmail:${font} ${hr 1}
${execi 1 perl ~/scripts/gmail.pl e}
Сега да си настроим града, на който искаме да знаем времето, където пише BUXX0011, го сменяте с кода на Вашия град (BUXX0011 е кода на Русе), кода може да вземете от тук, в търсачката пишете града и натискате ентер, като зареди страницата с времето на желания от Вас град, вижте горе на адресбара и вземете последните осем симвила:
Правим файла изпълним, в терминала пишем:
sudo chmod 777 ~/.conkyrc
Това беше, остава само да стартираме, натискаме alt+f2 и пишем conky, след 3-4 сек. ще се появи на десктопа.
Накрая да добавя: според хардуера на компютъра може да няма сензори за всички температури и вентилатори, конкито е настрено за pppoe връзка, ако сте с безжична, сменете ppp0 на wlan. На ред 45 в conkyrc пише: LinuxMint "Julia", напишете Вашата дистрибуция, или каквто искате.
Предпочитам по-изчистените неща, затова всичко ми е един цвят (почти), но нищо не пречи да си отворите в началото на желан от Вас ред една променлива ${color цвят} и след това, в края на реда да я затворите с $color. Ако искате да си добавите и графики:
за процесора: ${cpubar cpu1 8,60}, за RAM: ${membar 8,60}
за качване: ${upspeedgraph eth0 8,60 000000 000000}
за сваляне: ${downspeedgraph eth0 8,60 000000 000000}, за харда- ${fs_bar 8,60 /} или ${fs_bar 8,60 /home}
Ами аз се изчерпах.... Искам да благодаря на radoshow за усилията, които положи преди околко година за да ме ограмоти, конфигурационния файл на conkyforecast е негов, също и файла weather-7.template, макар че вече е толкова променен от мен, че едва ли ще си го познае....
Ще се радвам ако някой продължи и развие темата, например със графиките, или с lua файловете.
Искам и да се извиня на wuser за забавянето си, но просто не бях видял лс-то, всъщност ако не беше той, този урок нямаше да го има.
А ако сте изчели и изпълнили всичко, което съм написал, снимайте и покажете резултата!!!
Коментирай във форума
n";
print "tn displays number of new emailsn";
print "ts displays from line and subject line for each new email.n";
print "te displays the number of new emails and from line plus n";
print "ttsubject line for each new email.n";
} #didn't give proper option
}
sub gmail{
if(!(-e $file)){ #create file if it does not exists
`touch $file`;
}
#get new emails
`wget -O - https://$user:$pass@mail.google.com/mail/feed/atom --no-check-certificate> $file`;
open(IN, $file); #open $file
my $i=0; #initialize count
$new=0; #initialize new emails to 0
my $flag=0;
while(){ #cycle through $file
if(//){$flag=1;}
elsif(/(d+)/){$new=$1;} #grab number of new emails
elsif($flag==1){
if(/.+/){push(@subj, &msg);} #grab new email titles
elsif(/(.+)/){push(@from, $1); $flag=0;} #grab new email from lines
}
}
close(IN); #close $file
}
sub passwd{ #change to url escape codes in password
#URL ESCAPE CODES
$_=$pass;
s/%/%25/g;
s/#/%23/g;
s/$/%24/g;
s/&/%26/g;
s///%2F/g;
s/:/%3A/g;
s/;/%3B/g;
s/