вторник, 23 ноября 2010 г.

ConkyWidgets и немного bash'а



Всем хороши Conky, вот только из-за особенностей конфигурации, а именно значений "gap_x" и "gap_y" невозможно сохранение расположения "коньков". Эту проблему можно решить с помощью простого скрипта:


#!/bin/bash

APPFILE="$HOME/ConkyWidgets/widgets"
TMPFILE="$HOME/ConkyWidgets/tmprc"
cat $APPFILE | while read STROKA
do
FILENAME=`echo "$HOME/ConkyWidgets/"${STROKA#*"_"}`
APPNAME=${STROKA%"_"*}

XWINFO=`xwininfo -name "$APPNAME"`

COORDX=${XWINFO#*"X:"}
COORDX=${COORDX%" Absolute"*}

COORDY=${XWINFO#*"Y:"}
COORDY=${COORDY%%" Relative"*}
cat "$FILENAME" | while read line
do
LLINE=${line:0:5}
if [ "$LLINE" == "gap_x" ]
then
WERT=`echo "gap_x"${COORDX}`
sed -e s/"$line"/"$WERT"/g "$FILENAME" > "$TMPFILE"
fi
if [ "$LLINE" == "gap_y" ]
then
WERT=`echo "gap_y"${COORDY}`
sed -e s/"$line"/"$WERT"/g "$TMPFILE" > "$FILENAME"
fi
done
done
exit
Если коротко, то скрипт выбирает строки из текстового файла "widgets" и открывает соответствующие конфигурации Conky. С помощью "xwinfo" считывает координаты запущенных "коньковиджетов" и подменяет ими значения "gap_x" и "gap_y" в файлах конфигурации.
Файл "widgets" содержит строки такого вида: "ConkyCalendar_calendarrc", где первая часть - имя lua-скрипта и по совместительству имя окна коньковиджета, вторая часть - имя файла конфигурации (".conkyrc"). Добавляя/удаляя строки изменяем количество виджетов.
И, наконец, скрипт для запуска Conky:
#!/bin/bash

APPFILE="$HOME/ConkyWidgets/widgets"

cat $APPFILE | while read STROKA
do
FILENAME=`echo "$HOME/ConkyWidgets/"${STROKA#*"_"}`
conky -c $FILENAME &
sleep 0.5
done

exit
Здесь все просто - скрипт перебирает строки в файле "widgets" и запускает все коньковиджеты, которые там прописаны.


Смотри также:

9 коммент.:

  1. Красиво, здорово!

    ОтветитьУдалить
  2. Вопрос, может быть и не в тему, но что за панель внизу (AWN?) и вверху (неужели стандартная gnome-panel)??? И как вы это реализовали?

    ОтветитьУдалить
  3. Trott, все верно - внизу AWN, вверху gnome-panel. Реализация здесь - http://ramzport.blogspot.com/2010/10/clearlooks-transparency.html

    ОтветитьУдалить
  4. объясните, пожалуйста, как и где изменить виджеты, чтобы отображались цтфровые а не аналоговые часы
    а так же если у меня 2 ядра - как просматривать оба ?

    заранее спасибо

    ОтветитьУдалить
  5. Анонимный, цифровых часов пока нет.
    А чтобы просматривать два ядра, сделайте копии файлов ConkyCPU.lua и cpurc (ConkyCPU1.lua и cpurc1), добавьте строку в файл widgets "ConkyCPU1_cpurc1". В cpurc1 замените строку "own_window_title ConkyCPU" на "own_window_title ConkyCPU1" и "lua_load ~/ConkyWidgets/ConkyCPU.lua" на "lua_load ~/ConkyWidgets/ConkyCPU1.lua".
    В lua-скриптах заменить - conky_parse('${cpu cpu0}') - на - conky_parse('${cpu cpuX}') - где X - номер ядра

    ОтветитьУдалить
  6. Подскажите пожалуйста а как можно добавить подложку от как у календаря для погоды???
    [URL=http://radikal.ru/F/i048.radikal.ru/1104/7d/a74920e1df3d.jpg.html][IMG]http://i048.radikal.ru/1104/7d/a74920e1df3dt.jpg[/IMG][/URL]
    Ато выглядит не красиво...

    ОтветитьУдалить
  7. А еще лучше может сделаете погоду? Очень классные они у вас получаются=) А еще где-то читал что Вы собираетесь делать GoogleCalendar для conky... Было бы вобще круто!!!

    ОтветитьУдалить
  8. А еще календарь показывает что 9 апреля это воскресенье... Можно как-то подправить???

    ОтветитьУдалить
  9. Илья, возможно Google Calendar будет, но не скоро. После выхода 11.04.
    >>показывает что 9 апреля это воскресенье
    попробуйте взять функцию календаря из Блокнота (конфиг был летом 2010) хотя странно, должно все в порядке быть..

    ОтветитьУдалить