0

Ещё один генератор строки состояния для 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. Но в этот крон можно пихнуть что угодно, т.к. он запукается уже после старта dbus.

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

Скрипт на 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%