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
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.