nk 08.04.2011 20:22

Tips & tricksConky и скрипты: 2 in 1 - Интересно Ваше мнение

Узнал о всяких ${if_match} для проверок, которые можно прописать в сам конфиг conky
http://conky.sourceforge.net/variables.html
И так сказать, используя еще ${exec} загнал всякие действия в .conkyrc

conky (часть его) в действии выглядит так, когда мало места осталось (к примеру) на /home и на почту (gmail) пришло одно письмо:


<*> Весь conky представляет собой следующее:


<*> конфиг:

  1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
# NK, line1280.conkyrc

# conkyrc based on "My horizontal .conkyrc" by rent0n86
# http://rent0n86.deviantart.com/art/My-horizontal-conkyrc-122604863

# avoid flicker
double_buffer yes

# own window to run simultanious 2 or more conkys
own_window yes

own_window_transparent no
#own_window_transparent yes

#own_window_type normal
#own_window_type desktop
own_window_type override
#own_window_type dock
#own_window_type panel

own_window_hints undecorate,sticky,skip_taskbar,skip_pager

# borders
draw_borders yes
#border_width 2
#border_margin 0

# shades
draw_shades no

# position
gap_x 0
gap_y 2
#gap_y 31
#gap_y 1012

#alignment top_left
alignment top_middle
#alignment bottom_middle

# behaviour
update_interval 1

# colors
default_color 8f8f8f
#default_shade_color 000000

own_window_colour 262729
#own_window_colour 151515

# red,green,yellow,blue,magenta,cyan,black,white
color0 red
color1 brown
color2 yellow
color3 green
color4 blue
color5 magenta
color6 cyan
color7 black
color8 white

# font
use_xft yes
#xftfont sans:size=7
xftfont Terminus:size=7

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

#to prevent window from moving
use_spacer none
minimum_size 1280 0

TEXT
${voffset -2}${goto 8}\
${if_match ${cpu}>=99}${color0}CPU${color}${else}CPU${endif}\
${goto 30}${cpugraph color1 8,14} <${goto 56}${cpu}${goto 68}%> \
RAM: $mem <${memperc}%> \
SWAP: $swap <${swapperc}%> \
|\
${color3}\
${if_match ${memperc}>80}M${endif}\
${if_match ${swapperc}>50}S${endif}\
${color} \
\
\
CPU:${execi 150 sensors | grep temp1 | cut -c15-16 ;}°C \
M/B:${execi 150 sensors | grep temp2 | cut -c15-16 ;}°C \
temp3:${execi 150 sensors | grep temp3 | cut -c15-16 ;}°C \
sda:${hddtemp /dev/sda}°C \
sdb:${execi 300 sudo /usr/sbin/hddtemp /dev/sdb | cut -c55-} \
|\
${color2}\
${if_match ${execi 150 sensors | grep temp1 | cut -c15-16 ;}>55}B${endif}\
${if_match ${execi 150 sensors | grep temp2 | cut -c15-16 ;}>50}C${endif}\
${color} \
\
\
/=${fs_free /} \
/tmp=${fs_free /tmp} \
/home=${fs_free /home} \
PUB=${fs_free /mnt/sda5} \
sdb1=${fs_free /mnt/sdb1} \
\
${if_match ${fs_used_perc /}>90}|\
${else}${if_match ${fs_used_perc /home}>95}|\
${else}${if_match ${fs_used_perc /tmp}>85}|\
${else}${if_match ${fs_used_perc /mnt/sda5}>95}|\
${else}${if_match ${fs_used_perc /mnt/sdb1}>70}|\
${endif}${endif}${endif}${endif}${endif}\
${color1}\
${if_match ${fs_used_perc /}>90}R${endif}\
${if_match ${fs_used_perc /home}>95}H${endif}\
${if_match ${fs_used_perc /tmp}>85}T${endif}\
${if_match ${fs_used_perc /mnt/sda5}>95}P${endif}\
${if_match ${fs_used_perc /mnt/sdb1}>70}B${endif}\
${color}\
\
\
${alignr}\
\
${execpi 1810 conkyForecast --location=RSXX0063 --datatype=HT} \
${execpi 1830 conkyForecast --location=RSXX0063 --datatype=CT} \
(${execpi 1850 conkyForecast --location=RSXX0063 --datatype=LT}) \
\
${execpi 3625 conkyEmail \
--servertype=IMAP \
--servername=imap.googlemail.com \
--username=LOGIN --password=PASSW \
--ssl > /tmp/$USER.conkyEmail}\
\
${if_match "${execi 3668 cat /tmp/$USER.conkyEmail}" != "?" }\
\
${if_match "${execi 3669 cat /tmp/$USER.conkyEmail}" >= "1" }| ${color3}\
${execi 3670 cat /tmp/$USER.conkyEmail}${color}\
${execi 18444 sudo beep || echo "!beep"} \
${endif}\
\
${else}| ? ${endif}\
\
\
${voffset -3}


--
Здесь Вам нужны: sudo, conkyForecast и conkyEmail, а так же lm_sensors настроенный для °t CPU &etc.;
- conky{Forecast,Email} для почты/погоды
- beep делает звук через pcspkr о новой почте
- sudo для hddtemp и выполнения beep; Вам может не потребоваться, зависит от железа, уберите sudo перед командами в конфиге;
просто здесь через судо реализовал, т.к. править или изменять права на системные файлы не хочу

Так же по конфигу, что у нас там:
- Почта проверяется раз ~1 час
- Погода ~30 мин., т.к. как выяснил на весь день там не сообщается
- beep (программа такая) делает звук Pcspkr'ом раз в 5 часов о новой почте, если мы ее не прочитали
- Присутствуют, так сказать, "мониторы", которые следят за свободным местом на дисках, в памяти, следят за температурой, информируют пользователя (см. скриншот)

Да сохраняйте файл в кодировке utf8 (в leafpad на "Меню: Файл - Сохранить как...", по крайне мере так можно)
запускайте просто: conky -c ИМЯ.conkyrc
--

В общем-то делюсь своим конфигом
и интересны Ваши замечания, комментарии (а может даже и предложения) по такому использованию conky


Тэги: conky
+ 7 -
Похожие Поделиться