exelens 24.11.2009 23:41

Есть вопрос!Конфиг conky

Помогите плиз настроить конфиг.

Хочется следующего.
Так как устройство портативное (нетбук) то оно часто подключается к инету через разные соединения, могут быть:
через вай-фай wlan0
через мегафон-модем ppp0
и через шнурок обычный eth0

Хочется чтобы оно помимо всякой ерунды типа память и диски =) Это я умею настраивать =) показало только активное соединение ну а если нет соединения показало смайтик вида "=(" и написало "нет сетки".

Как такое делать я условно понял... и вроде даже сделал но работает не совсем так как нужно.
Нужно использовать конструкцию типа
${if_existing /proc/net/route wlan0}
blabla
${else}
${if_existing /proc/net/route ppp0}
blabla
${else}
blabla
${if_existing /proc/net/route eth0}
blabla
${else}
${font PizzaDude Bullets:size=13}4${font} Нет никакой сетки ${endif}

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

На скрине кранч настроеный так

Мой конфиг под катом.

И ещё вопрос, как выводить качество связи по ppp0?
по wlan0 через ${wireless_link_qual_perc wlan0}%

Вот конфиг

# conky configuration
#
# The list of variables has been removed from this file in favour
# of keeping the documentation more maintainable.
# Check http://conky.sf.net for an up-to-date-list.
#
# For ideas about how to modify conky, please see:
# http://crunchbanglinux.org/forums/topic/59/my-conky-config/
#
# For help with conky, please see:
# http://crunchbanglinux.org/forums/topic/2047/conky-help/
#
# Enjoy! :)
##############################################
# Settings
##############################################
background yes
use_xft yes
xftfont Sans:size=8
xftalpha 1
update_interval 1.0
total_run_times 0
own_window yes
own_window_transparent yes
own_window_type desktop
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
double_buffer yes
minimum_size 200 200
maximum_width 500
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders no
default_color white
default_shade_color black
default_outline_color white
alignment top_right
gap_x 12
gap_y 12
no_buffers yes
uppercase no
cpu_avg_samples 2
override_utf8_locale yes
##############################################
# Output
##############################################
TEXT
Информация о системе:${hr}
Проц 1 используется:$alignr${cpu cpu1}%
Проц 2 используется:$alignr${cpu cpu2}%
Крутится: $alignr$uptime
Оператива: $alignr$mem/$memmax
СВОП: $alignr$swap/$swapmax

Диски ${hr}
Корень $alignr${fs_used /}/${fs_size /}
Дом $alignr${fs_used /home/}/${fs_size /home/}
${if_existing /media/disk/}Большая флешка $alignr${fs_used /media/disk/}/${fs_size /media/disk/}${else}${endif}

Жадно жрут ресурсы ${hr 2}
${top_mem name 1}${alignr}${top mem 1} %
${top_mem name 2}${alignr}${top mem 2} %
${top_mem name 3}${alignr}${top mem 3} %
${top_mem name 4}${alignr}${top mem 4} %
${top_mem name 5}${alignr}${top mem 5} %
${if_existing /proc/net/route wlan0}
Айпишник по Вафле: $alignr ${addr wlan0}
Соеденились с: $alignr ${wireless_essid wlan0}
Качество связи: $alignr ${wireless_link_qual_perc wlan0}%
Качаем: ${downspeed wlan0} kb/s $alignr всего: ${totaldown wlan0}
Заливаем: ${upspeed wlan0} kb/s $alignr всего: ${totalup wlan0}
${else}
${if_existing /proc/net/route ppp0}
Айпишник от МегаФона: $alignr ${addr ppp0}
Соеденились с: $alignr ${wireless_essid ppp0}
Качаем: ${downspeed ppp0} kb/s $alignr всего: ${totaldown ppp0}
Заливаем: ${upspeed ppp0} kb/s $alignr всего: ${totalup ppp0}
${else}
${if_existing /proc/net/route eth0}
Айпишник от Шнурка: $alignr ${addr eth0}
Качаем: ${downspeed eth0} kb/s $alignr всего: ${totaldown eth0}
Заливаем: ${upspeed eth0} kb/s $alignr всего: ${totalup eth0}
${else}
${font PizzaDude Bullets:size=13}4${font} Нет никакой сетки ${endif}

Почта ${hr}
В рабочем ящике ${color3}${texeci 60 perl ~/scripts/workmail.pl n} ${color}сообщений.
В личном ящике ${color3}${texeci 60 perl ~/scripts/mygmail.pl n} ${color}сообщений.

-----
да, спойлер нужен...


Тэги: conky Linux вопрос конфиг
+ 2 -
Похожие Поделиться

m0nhawk 25.11.2009 00:22 #
О. Фанат *.bmp.
exelens 25.11.2009 07:39 #
Скришнот снимался в png через scrot
m0nhawk 25.11.2009 16:05 #
Ну тогда рисунко-хостинг стоит другой использовать :)

ЗЫ:
Ещё когда рисунок загружается можно увидеть что это *.bmp
Born2Crawl 25.11.2009 01:02 #
А зачем там вообще {$else}? Только путает и добавляет возможность ошибки.
Достаточно пар ${if_existing ...} - ${endif}.
Имей в виду, чтобы не было лишних переносов строк, когда ни одного интерфейса не найдено - продолжай конфиг сразу после ${endif}:

${if_existing /proc/net/route eth0}
Чивотатам${endif}${if_existing /proc/net/route wlan0}
Чивотатам${endif}${if_existing /proc/net/route ppp0}
Чивотатам${endif}

У меня вышеприведенный конфиг прекрасно работает.
Minoru 25.11.2009 01:24 #
За скриншоты в bmp — пять баллов. Ты понимаешь, что они весят по 1,8 метра штука, и грузится это дело оооооочень медленно… Юзай gimp и пересохраняй bmp в png (а лучше — сразу в png и снимай, если можно). Консольная альтернатива (если интересует) — imagemagic.

Теперь собственно по твоему вопросу: ветвление в conky реализуется так:

{$if_up имя_интерфейса}
выводим какую-то инфу
{$endif}


Обрати внимание на две вещи:
  1. в conky есть конструкция if_up, проверяющая, поднят ли интерфейс — у тебя это реализовано вручную
  2. каждому if_up должен соответствовать один endif. Собственно, всё — иди считай
И да, послушай совета про переносы строк — тогда не будет того некрасивого отступа перед смайликом, когда сеток нет.

P.S. Я в курсе, что про bmp уже сказали, а второй комментарий как бы намекает на отсутствующие endif'ы — но надо же было кому-то подробно всё объяснить…

exelens 25.11.2009 07:40 #
Minoru 25.11.2009 01:29 #
И да, забыл добавить — существует отличный (фирменный!) список всех переменных conky (типа if_up, wireless_essid и проч.).

И ещё вопрос, как выводить качество связи по ppp0?
Не уверен, что для PPP/PPPoe соединений вообще существует понятие уровня, это же кабельные методы передачи. Но даже если я не прав, подходящих переменных в вышеупомянутом списке я не нашёл.
bosha 25.11.2009 10:43 #
Имхо. Было бы проще засунуть все в bash скрипт и выводить через конки. Получается удобнее, и можно еще не раз использовать в других местах =>
exelens 25.11.2009 11:24 #
Было бы проще засунуть все в bash скрипт
если бы я умел =)
bosha 25.11.2009 11:36 #
ну это тоже самое по сути:

if < -x proc/net/route ppp0>; then
bla-bla-bla
else
bla-bla-bla
endif


Такие же простые конструкции =>

Если интересно - http://www.opennet.ru/docs/RUS/bash_scripting_guide/
exelens 25.11.2009 12:34 #
ммм... у меня мышление системное но программить не умею =)
За пример спасибо =) буду ставить эксперименты