LINUX.ORG.RU

luastatus 0.4.0

 , , , ,


5

2

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

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

luastatus позволяет пользователю определять логику обработки данных от плагинов, написанных на Си и поставляющихся с luastatus, с помощью виджетов, написанных на Lua. Также виджеты могут обрабатывать события, такие как щелчки по панели состояния.

Нововведения релиза:

  • Во всех barlib’ах реализована двойная буферизация выводимого контента для устранения лишних перерисовок.
  • Новые плагины:
    • pulse: состояние (громкость и mute-флаг) устройства вывода PulseAudio;
    • network-linux: Linux-специфичный плагин, предоставляющий информацию о сетевых интерфейсах (IP адреса, информация о WiFi- и Ethernet-подключениях).
  • В плагин alsa была добавлена опция “make_self_pipe”; если она активна, плагин предоставляет функцию “wake_up()”, которая может использоваться из обработчика щелчка по виджету; например, теперь стало возможным реализовать виждет интерактивного слайдера для изменения громкости для i3bar (аналогичная функциональность доступна и в плагине pulse).
  • Новые примеры виджетов:
    • network-rate.lua (i3, dwm);
    • cpu-temperature.lua (i3, dwm);
    • alsa-gauge.lua (i3, dwm);
    • pulse-gauge.lua (i3, dwm);
    • alsa-interactive-gauge.lua (i3, dwm);
    • pulse-interactive-gauge.lua (i3, dwm);
    • wireless.lua (i3, dwm);
    • ip.lua (i3, dwm);
    • tor.lua (i3, dwm);
    • pulse.lua (i3, dwm).
  • Новый barlib: stdout.

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

>>> Информация о релизе



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

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

Потому что панель awesome wm умеет обновлять только по таймеру и dbus-у. Плюс awesome wm — однопоточный, и пока ты запускаешь команды или даже читаешь файлы из sysfs, котрые блокируют на небольшое время, то не можешь выполнять никакие действия с окнами.

awesome wm — хороший пример использования Lua там, где не нужно (и вообще ублюдочного дизайна).

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

я рандомно открыл один из плагинов, батарею, такое в осоме делается через https://awesomewm.org/doc/api/libraries/awful.spawn.html#with_line_callback

так что говори конкретно, что именно из этих плагинов нереализуемо в осоме

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

ты реально не понимаешь разницы между их API?

там возможностей почти нет по сравнению с осомом, а с луа все равно нужно пердолиться

в какой ситуации кому-то это может вообще понадобиться? приведи хотя бы 3 примера

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

и пока ты запускаешь команды или даже читаешь файлы из sysfs, котрые блокируют на небольшое время, то не можешь выполнять никакие действия с окнами

Чушь, в осоме уже лет сто есть асинхронные вызовы.

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

При чём тут API?! Я тебе говорю, что модульные штуки нет смысла сравнивать с немодульными, потому что немодульная штука не стоит того, чтобы тащить с ней в довесок всякое ненужно. Осомовская панелька — часть Awesome WM, и не будет работать, если WM не Awesome. Сабж на порядки универсальнее. А что убогий пока, по сравнению с — это вопрос времени.

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

в какой ситуации кому-то это может вообще понадобиться? приведи хотя бы 3 примера

на практике, говоря о luastatus и awesome, а не о модульной программе А и немодульной программе Б

actionless ★★★★★
()
Последнее исправление: actionless (всего исправлений: 2)
Ответ на: комментарий от actionless

говоря о luastatus и awesome

Зачем предлагать вместо панельки целый WM? сфига ты решил, что все побегут менять WM на какое-то убожество ради панельки только потому, что «все равно с луа пердолиться»?

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

ты так и не привел до сих пор ни одного реального примера.

как и ожидалось на основе предыдущего опыта — нет смысла с тобой даже и говорить

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

alsa, inotify, mpd, network-linux, pulse

это тупо код на C, можешь заменить plugin api luastatus на обычный printf чтобы он плевался инфой в stdout, и так же читать асинхронно каждую строку по мере появления через awful.spawn.with_line_callback, как и для предыдущего примера

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

xkb, xtitle

это и так есть из коробки

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

Примера чего?

реальный пример, зачем пердолиться с луа ради этой панели

он даже 3D-анимации не могёт.

зачем это на иксах? (подожди way-cooler и всё будет :D)

и приведи пример тайловых ВМ которые это могут на иксах сейчас, иначе просто выглядит как твои влажные фантазии

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

зачем пердолиться с луа

Что ты предлагаешь вместо этого? Я вон с башем пердолюсь (хотя в stdout можно чем угодно срать). Луа всяко лучше баша.

зачем это на иксах?

Затем, что отлично работает.

подожди way-cooler

Вяленый не нужен, там с модульностью ещё печальнее. Всё композитороспецифичное, на что специально стандартов не придумали (и не все эти стандарты принимают). Что в саму спеку вяленого не заложили — с тем жопа, а заложили там шиш с маслом, потому что идеология "КУДАХ СЕСУРИТИ ПРЕВЫШЕ ВСЕГО НАДО ИЗ ДЕСКТОПА СДЕЛАТЬ ОГОРОЖЕНУЮ МОБИЛКУ ПОКПОК".

тайловых ВМ

Так тайловые не могут, я потому ими и не пользуюсь. Был fvwm-metisse когда-то, но сдох.

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

это тупо код на C, можешь заменить plugin api luastatus на обычный printf чтобы он плевался инфой в stdout, и так же читать асинхронно каждую строку по мере появления через awful.spawn.with_line_callback, как и для предыдущего примера

Хорошо, с этим согласен. Но почему-то таких решений нет и никто так не делает. Возможно, потому, что это много лишней работы — самому парсить текстовые данные из пайпа.

Ответ на вопрос «зачем нужен luastatus, если есть awesome» звучит так: «потому что luastatus — для других wm». Если для вас «пердолиться с Lua» представляет неудобство — наверное, это не для вас.

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

Если для вас «пердолиться с Lua» представляет неудобство

да, думаю, наш камень преткновения именно в этом

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

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

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

практических примеров того, где эта панель будет нужнее осома

ты пока практического примера ни одного не привел, только как обычно с темы спрыгиваешь с одно на другое

лучше добавлю тебя в друзья, чтобы не тратить времени почем зря

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

практических примеров того, где эта панель будет нужнее осома

Везде, где не нужен осом, но нужна панель.

В твой манямирок не вписывается, что не всем нужен осом, я не пойму?!

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