LINUX.ORG.RU

luastatus — генератор данных для панелей состояния, поддерживающий i3bar и dwm

 , , , ,


5

4

Вышла первая версия luastatus — универсального генератора данных для панелей состояния, поддерживающего i3bar и dwm. Программа написана на C и распространяется под лицензией GNU LGPL v3.

Большинство генераторов данных для панелей состояния тайловых WM либо обновляют информацию по таймеру (например, conky), либо требуют сигнал для перерисовки (например, i3status). Панели же в составе окружений рабочего стола, как правило, обновляют информацию мгновенно и автоматически, как и luastatus.

luastatus работает с загружаемыми модулями двух типов: плагины (отвечают за работу с каким-либо источником событий) и так называемые barlib’ы (отвечают за работу с конкретной панелью состояния).

Схема работы luastatus следующая:

  • Один из плагинов сообщает, что произошло какое-то событие, и генерирует описывающий его Lua-объект.
  • Вызывается пользовательская функция (widget.cb) с этим объектом в качестве аргумента.
  • Возвращённое ей значение передаётся в barlib.

Также barlib может оповестить программу-виджет о том, что с виджетом произошло какое-либо событие. В таком случае barlib также генерирует Lua-объект, описывающий это событие, и пользовательская функция (widget.event) вызывается с ним в качестве аргумента. Например, barlib для i3 сообщает, когда пользователь нажал на виджет, а также передаёт информацию о том, какой кнопкой было сделано нажатие, и его координаты.

На данный момент реализованы следующие плагины:

  • alsa — следит за изменением громкости канала ALSA.
  • fs — генерирует события по таймеру, передаёт виджету информацию о количестве занятого места в файловой системе. Также поддерживается wake-up FIFO.
  • mpd — следит за громкостью и текущим плейлистом mpd.
  • pipe — запускает процесс и генерирует событие каждый раз, когда он выводит в stdout строку (можно указать другой разделитель вывода). Эта строка передаётся виджету.
  • timer — просто генерирует события по таймеру (например, для виджета-часов или виджетов, читающих какие-то файлы в /proc). Также поддерживается wake-up FIFO.
  • xkb — следит за текущей раскладкой клавиатуры и передаёт виджету номер группы активной раскладки и её имя.
  • xtitle — следит за текущим активным окном и сообщает его заголовок.

И следующие barlib’ы:

  • i3;
  • dwm.

>>> Страница проекта на GitHub

>>> Страница релиза



Проверено: anonymous_incognito ()
Последнее исправление: sudopacman (всего исправлений: 2)

Ответ на: комментарий от shdown

т.е. ваще слип там не нужен?

апд. — чото твой виджет показывает слишком заниженные значения, смотрел на него мельком, не разбирался в правильности вычислений

safocl ★★
()
Последнее исправление: safocl (всего исправлений: 1)

подскажи еще, мб знаешь сразу чем в луа измерить температуру?

пока нашел только lm-sensors

мб всетаки есть способ как то узнать чото распарсив?

safocl ★★
()

хочу загрузку интернета смотреть, не получается...

сделал вот так, не получается, выдает:

--> lua net.lua
lua: net.lua:32: bad argument #2 to 'format' (number expected, got nil)
stack traceback:
	[C]: in function 'string.format'
	net.lua:32: in function 'net_speed'
	net.lua:49: in main chunk
	[C]: in ?


в чем проблема не могу понять? почему то там получается значение nil и все тут... все значения приходят в переменные...

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