0
Files
i3status-ae/README.md
2021-10-31 21:04:53 +03:00

44 lines
4.0 KiB
Markdown

# Ещё один генератор строки состояния для i3bar
## Зачем? Их же навалом, разных!
Просто потому что могу :)
На самом деле, мне понадобился генератор с некоторыми специфическими функциями. И мне было проще сгенерировать свой скрипт, согласно i3bar JSON [ipc protocol][1].
## Что же такого он умеет?
Несколько очень простых вещей - просто посмотри в конфиг :)
* Показывать текущий 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][2], [carton][3], [cpm][4] или что-то ещё для управления перловыми модулями, а также крайне желательно наличие в системе библиотеки [lib::local][5].
При запуске необходимо убедиться, что переменная [PERL5LIB][6] установлена корректно.
И не забыть в конфиге прописать что-то вменяемое. Кстати, конфиг ищется в каталогах
* ~/.config/i3/i3status-anyevent.json
* ~/.config/i3/config.json
* ~/.i3/i3status-anyevent.json
* ~/.i3/config.json
[1]: https://i3wm.org/docs/i3bar-protocol.html
[2]: https://metacpan.org/pod/App::cpanminus
[3]: https://metacpan.org/pod/Carton
[4]: https://metacpan.org/pod/distribution/App-cpm/script/cpm
[5]: https://metacpan.org/pod/local::lib
[6]: https://perlmaven.com/how-to-change-inc-to-find-perl-modules-in-non-standard-locations