57 lines
1.6 KiB
Fennel
57 lines
1.6 KiB
Fennel
(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)
|
|
|
|
(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))))
|
|
|
|
(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 {
|
|
: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))))))
|
|
})
|
|
(indicator {
|
|
:interval 5000
|
|
:text #(.. (disk-free-percent "/") "%")
|
|
:on-click #(spawn "baobab")
|
|
})
|
|
(indicator {
|
|
:interval 1000
|
|
:text #(os.date "%X")
|
|
})
|
|
]})
|
|
|
|
(run)
|