0
Sergei Fedosov 91cf117ee8 Do not call AnyEvent->now_update every 2 minutes, as it looks useless in this script
We reload all event hendlers if time skew in script own counter more
than 60 seconds as per ab68a26e84, no
other timekeeping issues are reported, so considering
AnyEvent->now_update useless for this particular usecase.
2021-07-20 12:07:48 +03:00
2021-04-09 16:19:56 +03:00
2021-04-09 16:19:56 +03:00
2021-07-19 23:16:25 +03:00

Ещё один генератор строки состояния для i3bar

Зачем? Их же навалом, разных!

Просто потому что могу :)

На самом деле, мне понадобился генератор с некоторыми специфическими функциями. И мне было проще сгенерировать свой скрипт, согласно i3bar JSON ipc protocol.

Что же такого он умеет?

Несколько очень простых вещей - просто посмотри в конфиг :)

  • Показывать текущий LA
  • Показывать сжатую статистику по памяти
  • Часики (с возможностью навесить исполнение любой программы по правому или левому щелчку мыши)
  • Состояние заряда батарейки для ноутбука
  • Температуру процессора (одно ядро, указывается файл-источник сведений)
  • Состояние клавиши CapsLock
  • Состояние одного интерфейса VPN (+ tcp health check, т.к. ovpn, например, умеет "залипать")
  • Уровень звука согласно pulse audio для default sink (придумывать "крутилочку" для звука я не стал, ибо там не всё так просто и "в процессе" fun скорее всего пропадёт.). Предполагается, что звук управляется через что-то ещё, например, через какой-нибудь pasystray, например.
  • Состояние (up|down) любого набора существующих сетевых интерфейсов. Но каждый надо описать. IP не показываются, т.к. это сжирает место на панели, а его не так-то и много.
  • "Кнопки" для запуска произвольных приложений. Собственно, ради этого всё и затевалось :)
  • "Трекать" запуск приложений "с кнопки" и подсвечивать соответствующую "кнопку". Работает через ивенты от самого i3: на появление и на исчезновения окна с рядом свойств.
  • Cron! Как ни забавно это звучит, но, да. И нужен он для показывания desktop notifications, ибо системный cron не прокидывает в environment переменную с текущим dbus session. Но в этот крон можно пихнуть что угодно.

Как это заставить работать

Скрипт на perl-е, и, чтобы заставить его работать, нужен, собственно, сам perl, cpanm, carton, cpm или что-то ещё для управления перловыми модулями, а также крайне желательно наличие в системе библиотеки lib::local.

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

И не забыть в конфиге прописать что-то вменяемое. Кстати, конфиг ищется в каталогах

  • ~/.config/i3/i3status-anyevent.json
  • ~/.config/i3/config.json
  • ~/.i3/i3status-anyevent.json
  • ~/.i3/config.json
Description
No description provided
Readme 52 KiB
Languages
Perl 100%