eufon/blinkenlicht/bl.fnl

57 lines
1.6 KiB
Plaintext
Raw Normal View History

2022-03-23 22:58:00 +00:00
(local {: bar : indicator : run} (require :blinkenlicht))
(fn loadavg []
(with-open [f (io.open "/proc/loadavg" :r)]
(tonumber (: (f:read "*a") :match "[0-9.]+" ))))
(fn disk-free-percent []
83)
2022-03-24 12:13:17 +00:00
(fn battery-status [path]
(let [name (.. (or path "/sys/class/power_supply/BAT0") "/uevent")]
(with-open [f (io.open name :r)]
(let [fields {}]
(each [line #(f:read "*l")]
(let [(name value) (line:match "([^=]+)=(.+)")]
(tset fields (: (name:gsub "_" "-") :lower) value)))
fields))))
2022-03-23 22:58:00 +00:00
(fn spawn []
true)
(bar
{
:anchor [:top :right]
:orientation :horizontal
:indicators
[
(indicator {
:interval 200
:icon #(if (> (loadavg) 2) "face-sad" "face-smile")
})
;; (let [f (io.open "/tmp/statuspipe" "r")]
;; (indicator {
;; :poll [f]
;; :text #((f:read):sub 1 10)
;; }))
(indicator {
2022-03-24 12:13:17 +00:00
:interval (* 10 1000)
:text #(let [{:power-supply-energy-full full
:power-supply-energy-now now}
(battery-status)]
(string.format "BAT %d%%"
(math.floor (* 100 (/ (tonumber now) (tonumber full))))))
2022-03-23 22:58:00 +00:00
})
(indicator {
:interval 5000
:text #(.. (disk-free-percent "/") "%")
:on-click #(spawn "baobab")
})
(indicator {
:interval 1000
:text #(os.date "%X")
})
]})
(run)