LINUX.ORG.RU

awesome, graph.


0

1

Доброго времени суток. Устал гуглить, подскажите как чисто средствами awesome добавить на панель графики cpu и memory. Ну и если можно(еще не гуглил) скорость передачи up и down wlan0/eth0. на вопрос почему не использую conky - на нагуглил как conky с lua подружить.

★

Чисто средствами awesome можно считывать и обновлять по таймеру вывод free для памяти и /proc/stat для процессора.

Всякие obvious/vicious имеют стандартные такие виджеты в своем наборе.

С моей bashets надо всего лишь заиметь скрипт, который будет печатать в stdout загруженность памяти/процессора в процентах, и зарегистрировать оный для обновления нужного виджета-графика. Кстати, скрипты для процессора/памяти даже прилагаются в стандартной поставке.

Пример для прогрессбара:
cpuw = awful.widget.progressbar()
cpuw:set_max_value(100)
cpuw:set_width(3)
cpuw:set_height(16)
cpuw:set_color('#FF6565')
cpuw:set_vertical(true)
bashets.register(«cpu.sh», {widget = cpuw, update_time = 2})

graph переваривается абсолютно аналогично

zhuravlik ★★★★
()
Ответ на: комментарий от kernelpanic

gentoo. Скомрилировано все нормально.

momo ★
() автор топика
Ответ на: комментарий от zhuravlik

Спасибо огромное, буду пробовать.

Всякие obvious/vicious имеют стандартные такие виджеты в своем наборе

когда вставляю виджеты эти, awesome ужасно гонит и ни один из этих виджетов не заработал, хотя делал все по инструкции. Видимо где то криво что-то сделал...неоднократно.

momo ★
() автор топика

Только вопрос - а зачем нужно подружить conky с lua для отрисовки того, что оно умеет без lua?

http://conky.sourceforge.net/variables.html
http://conky.sourceforge.net/config_settings.html

Если уж только потянет на произвольную отрисовку. Можно тогда почитать и это:
http://wiki.conky.be/index.php?title=Category:Lua

А вообще awesome умеет произвольную отрисовку почти в том же объеме. Разве что поддержку imlib в свое время зачем-то выпилили.

zhuravlik ★★★★
()
Ответ на: комментарий от momo

Я в свое время пользовался wicked. Потом мне его стало не хватать и я написал для себя wickedplus.

Потом мне и его стало не хватать, я плюнул на все, посмотрел, как адекватно обрабатывать выхлопы скриптов, и написал bashets.

Теперь у меня везде работают скрипты и bashets. Даже есть виджет клавиатурной раскладки, реализованным таким же способом.

zhuravlik ★★★★
()
Ответ на: комментарий от zhuravlik

> Только вопрос - а зачем нужно подружить conky с lua для отрисовки того, что оно умеет без lua?

ну я так понял надо в луа создать виджет, и чтобы коньки выводили в этот самый виджет...(совсем недавно перешел на awesome, еще не совсем видать разобрался)

momo ★
() автор топика
Ответ на: комментарий от zhuravlik

Идея скриптов нравится. Надо поизучать bashetc. Я вывод заряда батареи делал через io.popen и echo. Я так понимаю принцип тот же? Вывод скрипта в виджет?

momo ★
() автор топика
Ответ на: комментарий от momo

А, то есть хочется, чтобы коньки писали в виджет awesome свое содержимое, примерно как это делают с dzen?

Не знаю, я этот вопрос не исследовал. Сейчас нагуглил пример, правда:
http://psycho-one.spb.ru/2008/08/05/%D0%BA%D0%BE%D0%BD%D1%8C%D0%BA%D0%B8-%D0%...

Так и думал, что будет немного извратная связка через awesome-client.

zhuravlik ★★★★
()
Ответ на: комментарий от momo

>Я так понимаю принцип тот же? Вывод скрипта в виджет?
Именно.

you're welcome:
http://gitorious.org/bashets
http://gitorious.org/bashets/pages/Brief_Introduction

Кстати, там оказался мой старый конфиг, в котором остался закомменченный graph =)
http://gitorious.org/bashets/awesome-config/blobs/master/rc.lua

zhuravlik ★★★★
()
Ответ на: комментарий от momo

> когда вставляю виджеты эти, awesome ужасно гонит и ни один из этих виджетов не заработал, хотя делал все по инструкции. Видимо где то криво что-то сделал...неоднократно.
УМВР. так что разбирайся.

tn1
()
Ответ на: комментарий от zhuravlik

Спасибо буду курить завтра после экзамена)

momo ★
() автор топика
Ответ на: комментарий от tn1

Я понимаю что у кого-то(многих) работает, но мне лень стало разбираться, лучше(и интереснее) напишу свои виджеты стандартными средствами awesome и скриптами.

momo ★
() автор топика
Ответ на: комментарий от tn1

Я лучше в другую сторону поковыряю)) Но спасибо, что сказали, у меня в душе воцарил покой, как только я узнал, что у Вас все работает, правда, спасибо.

momo ★
() автор топика
Ответ на: комментарий от tn1

почему? в любом случае это больше Ъ, чем коньки + awesome, не? а vicious и тд - тоже самое, только написано кем-то другим.

momo ★
() автор топика
Ответ на: комментарий от tn1

Прошу прощения, что попытался сострить, это не уместно, когда тебя пытаются наставить на путь истинный и помочь.

momo ★
() автор топика
Ответ на: комментарий от momo

Отдельное правило для коньков по которому они по кейбидну появляются по центру экрана, поверх всех окон, floating, размер по вкусу. по-моему годно

anonymous
()
Ответ на: комментарий от anonymous

Там, как я понял, суть не в том, чтобы коньки были поверх панели, суть в том, чтобы вывод коньков был в авесом.

momo ★
() автор топика
Ответ на: комментарий от tn1

>костыль же.

Лол. Как будто вот это:
-- Get mixer control contents
local f = io.popen(«amixer get » .. warg)
local mixer = f:read(«*all»)
f:close()

вот отсюда:
http://git.sysphere.org/vicious/tree/widgets/volume.lua

или
local fd = io.popen(«amixer -c » .. cardid .. " — sget " .. channel)
if not fd then return end
local status = fd:read(«*all»)
fd:close()

вот отсюда:
http://git.mercenariesguild.net/?p=obvious.git;a=blob;f=volume_alsa/init.lua;...

не тот же самый костыль.

Любая библиотека получения и обработки данных представляет собой набор костылей для каждого конкретного источника данных, это ж нормально.

zhuravlik ★★★★
()
Ответ на: комментарий от anonymous

>Отдельное правило для коньков по которому они по кейбидну появляются по центру экрана

О боже, Dashboard для awesome.

zhuravlik ★★★★
()
Ответ на: комментарий от momo

>этот пример я гуглил не раз уже, не работает у меня.

Понятно. Я и не пытался особо. Когда пробовал xmonad+dzen, тогда как-то делал вывод коньков в dzen. В awesome это и не особо надо было.

zhuravlik ★★★★
()
Ответ на: комментарий от zhuravlik

Что такое dzen без понятия. Можете ткнуть носом или рассказать насчет /proc/stat не могу понять какое значение что значит, и как оттуда вытянуть загрузцу cpu и не подскажите откуда вытянуть memory? я думал вытянуть из вывода команды top но подумал, что это будет как то не Ъ.

momo ★
() автор топика
Ответ на: комментарий от momo

http://gitorious.org/bashets/bashets/blobs/master/userscripts/cpu.sh

man 5 proc - там я читал когда-то, что есть что. очень подробно расписано было.

А память я нехорошо дергаю, через free :)
http://gitorious.org/bashets/bashets/blobs/master/userscripts/mem.sh

Наверное, нужно парсить /proc/meminfo по-хорошему.

zhuravlik ★★★★
()
Ответ на: комментарий от zhuravlik

вставляю это вот, потом вставляю в панель cpuw. Панель снизу исчезает, тегов становится в два раза больше, настройки сбиваются на дефолтные.

momo ★
() автор топика
Ответ на: комментарий от momo

> Панель снизу исчезает, тегов становится в два раза больше, настройки сбиваются на дефолтные.

Синтаксическая ошибка конфига. Посмотрите, что написано в консоли, из которой вы запускали иксы.

Если конфиг из ~/.config/awesome/rc.lua не парсится, awesome использует дефолтный конфиг из /etc/xdg/awesome/rc.lua.

bashets.lua лежит в /usr/share/awesome/lib ?
можно конфиг в студию? тогда я скажу, в чем косяк

zhuravlik ★★★★
()
Ответ на: комментарий от zhuravlik

домой приду скину конфиг. да bashets.lua лежит там где надо(эту проблему еще вчера нашел) сейчас панель не исчезает, пока не вставишь строку bashets.register или что-то подобное(из Вашего конфига). и как ни странно сам график почему то не туда вставляется, у меня все идет справа налево, и отдельно deadbeef слева выводится, так вот график слева от дедбифа вылезает...

momo ★
() автор топика
Ответ на: комментарий от momo

Извиняюсь, что не ответил раньше, я только домой после защиты пришел.

Какая версия awesome?
Такое впечатление, что очень старая.
Во всяком случае, я вижу add_signal, который сейчас уже давно connect_signal, а также не вижу layout'ов внутри вибоксов.

В bashets уже используется connect_signal. Также с той версии awesome хорошо поменялось устройство виджетов: сейчас не поддерживается widget.type и появились всякие set_markup, set_image, set_value, add_value вместо старых полей text, image, value. Это тоже отразилось в последних версиях bashets.

Могу посоветовать либо обновить awesome, либо использовать версию bashets отсюда:
http://gitorious.org/bashets/bashets/blobs/8ad54f2529fda926decef975e9daaca29e...

zhuravlik ★★★★
()
Ответ на: комментарий от zhuravlik

Я совсееем недавно перешел на awesome, конфиг я переделывал дефолтный, так что сильно не разбираюсь. Версия 3.4.10, это не последняя разве? может конфиг дефолтный идет со старой версии? но так вроде все работает, что есть...

momo ★
() автор топика
Ответ на: комментарий от momo

3.4.10 - это последняя

Тогда я все понял. Похоже, в стабильные версии awesome не приходят новые изменения, связанные с тотальной реструктуризацией, затеянной Ули.

Это означает, что bashets сейчас совместим только с текущей разрабатываемой веткой awesome.

Большое спасибо за то, что нашли эту проблему.
Я пофикшу bashets и сделаю его совместимым с обоими. Это не так и сложно должно быть.

zhuravlik ★★★★
()
Ответ на: комментарий от zhuravlik

Не за что, я ничего не сделал, Вам спасибо) Как пофиксите(Вы один из разработчиков типа?) мне дайте знать пожалуйста.

momo ★
() автор топика
Ответ на: комментарий от momo

Да не за что. Я - единственный разработчик этих ~500 строчек. =)

Попробую завтра после работы исправить. Сегодня уже лень. Можете сами попробовать исправить, там только заменить все connect_signal на add_signal, да исправить код обновления виджетов.

zhuravlik ★★★★
()
27 января 2012 г.
Ответ на: комментарий от zhuravlik

Я тут генту оживил, давай все чистить и тут возник вопрос:«Почему файл bashets.lua читается именно из /home/$user ?» Где пути указываются?

momo ★
() автор топика
Ответ на: комментарий от momo

Доброе утро.

bashets.lua читается оттуда, откуда его читает lua в awesome.

http://www.lua.org/pil/8.1.html
To determine its path, require first checks the global variable LUA_PATH. If the value of LUA_PATH is a string, that string is the path. Otherwise, require checks the environment variable LUA_PATH. Finally, if both checks fail, require uses a fixed path (typically "?;?.lua", although it is easy to change that when you compile Lua).

В awesomeConfig.cmake есть следующее:
set(AWESOME_LUA_LIB_PATH ${AWESOME_DATA_PATH}/lib)
set(AWESOME_DATA_PATH ${PREFIX}/share/${PROJECT_AWE_NAME})

Т.е. поиск будет первым делом осуществляться в /usr/share/awesome/lib/, а затем в текущей директории rc.lua.
Можно выставить переменную окружения LUA_PATH, чтобы искалось там, где хочется.


А вот путь к скриптам и временным файлам, используемым bashets, задается средствами bashets:
bashets.set_script_path(«/dev/shm/bashets/»)
bashets.set_temporary_path(«/dev/shm/tmp/»)

zhuravlik ★★★★
()
Ответ на: комментарий от zhuravlik

спасибо, засунул bashets.lua в /usr/share/awesome/lib и все норм вроде.

momo ★
() автор топика
Вы не можете добавлять комментарии в эту тему: топик перемещен в архив.