forked from glebtv/custom_barista
-
Notifications
You must be signed in to change notification settings - Fork 0
/
batt.go
39 lines (35 loc) · 799 Bytes
/
batt.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package batt
import (
"time"
"barista.run/bar"
"barista.run/colors"
"barista.run/modules/battery"
"barista.run/outputs"
)
func Get() bar.Module {
statusName := map[battery.Status]string{
battery.Charging: "CHR",
battery.Discharging: "BAT",
battery.NotCharging: "NOT",
battery.Full: "FULL",
battery.Unknown: "UNK",
}
return battery.All().Output(func(b battery.Info) bar.Output {
if b.Status == battery.Disconnected {
return nil
}
if b.Status == battery.Full {
return outputs.Text("FULL")
}
out := outputs.Textf("%s %d%% %s",
statusName[b.Status],
b.RemainingPct(),
b.RemainingTime())
if b.Discharging() {
if b.RemainingPct() < 20 || b.RemainingTime() < 30*time.Minute {
out.Color(colors.Scheme("bad"))
}
}
return out
})
}