44 lines
3.9 KiB
Markdown
44 lines
3.9 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. Но в этот крон можно пихнуть что угодно.
|
|
|
|
## Как это заставить работать
|
|
|
|
Скрипт на 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 |