diff options
Diffstat (limited to 'scripts/battery.nix')
-rw-r--r-- | scripts/battery.nix | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/scripts/battery.nix b/scripts/battery.nix new file mode 100644 index 0000000..e75116b --- /dev/null +++ b/scripts/battery.nix | |||
@@ -0,0 +1,60 @@ | |||
1 | |||
2 | { pkgs, ...}: | ||
3 | |||
4 | let | ||
5 | name = "bat"; | ||
6 | in | ||
7 | pkgs.writeScriptBin name | ||
8 | '' | ||
9 | red="\e[31m" | ||
10 | grn="\e[32m" | ||
11 | ylw="\e[33m" | ||
12 | cyn="\e[36m" | ||
13 | blu="\e[34m" | ||
14 | prp="\e[35m" | ||
15 | bprp="\e[35;1m" | ||
16 | rst="\e[0m" | ||
17 | |||
18 | bat_status="" | ||
19 | bat_status=$( cat /sys/class/power_supply/BAT0/capacity ) | ||
20 | charging_status=$( cat /sys/class/power_supply/BAT0/status ) | ||
21 | |||
22 | health() { | ||
23 | for i in {0..4} | ||
24 | do | ||
25 | if [[ $i -le $(( $bat_status/20 )) ]]; then | ||
26 | echo -ne "#[fg=colour1]· " | ||
27 | else | ||
28 | echo -ne "#[fg=colour8]· " | ||
29 | fi | ||
30 | done | ||
31 | echo | ||
32 | } | ||
33 | |||
34 | bat_status_small() { | ||
35 | if [[ "$charging_status" = *Charging* ]]; then | ||
36 | echo -ne "+$bat_status%" | ||
37 | else | ||
38 | echo -ne "$bat_status%" | ||
39 | fi | ||
40 | } | ||
41 | |||
42 | [ -z "$1" ] && { | ||
43 | bat_status_small | ||
44 | } | ||
45 | |||
46 | while getopts qi options | ||
47 | do | ||
48 | case $options in | ||
49 | i) | ||
50 | bat_status_small | ||
51 | ;; | ||
52 | q) | ||
53 | if [[ "$charging_status" = *Charging* ]]; then | ||
54 | echo -ne "+ $(health)" | ||
55 | else | ||
56 | health | ||
57 | fi | ||
58 | esac | ||
59 | done | ||
60 | '' | ||