blob: fcd6a7d994e63b40149e08dd5be84b595a1e212e (
plain)
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
#!/usr/bin/bash
# This script uses upower to get all the battery informations
# https://upower.freedesktop.org/docs/Device.html
# Check if the system is not a laptop (by checking for the absence of a lid directory)
if [ ! -d "/proc/acpi/button/lid" ]; then
# If not a laptop, show system uptime
ICON=""
COLOR=""
UPTIME=$(uptime -p | sed 's/up //') # Get system uptime
SHORT_UPTIME=$(echo "$UPTIME" | awk -F " " '{print $1$2}' | sed 's/,$//') # Shortened uptime
STRING="$COLOR$ICON Up: $SHORT_UPTIME"
#STRING="$COLOR$ICON Uptime: $UPTIME"
echo "$STRING"
exit 0
else
# Check if battery information is available
if upower -e | grep -q '/battery'; then
BATTERY_DEVICES=$(upower -e | grep '/battery' | grep -v 'DisplayDevice')
if [ "$BATTERY_DEVICES" != "" ]; then
CHARGE=$(upower -i "$BATTERY_DEVICES" | awk '/percentage/ {print $2}' | sed 's/%//')
BAT_STATE=$(upower -i "$BATTERY_DEVICES" | awk '/state/ {print $2}')
# Charging
if [[ $BAT_STATE == *'discharging'* ]]; then
if [ "$CHARGE" -eq 0 ]; then
ICON=""
COLOR="%{F#fc8894}"
elif [ "$CHARGE" -gt 0 ] && [ "$CHARGE" -le 10 ]; then
ICON=""
COLOR="%{F#fc8894}"
elif [ "$CHARGE" -gt 10 ] && [ "$CHARGE" -le 20 ]; then
ICON=""
COLOR="%{F#fc8894}"
#notify-send -u critical "Battery Warning" "20% charge remaining!"
elif [ "$CHARGE" -gt 20 ] && [ "$CHARGE" -le 30 ]; then
ICON=""
COLOR="%{F#e3e3e3}"
elif [ "$CHARGE" -gt 30 ] && [ "$CHARGE" -le 40 ]; then
ICON=""
COLOR="%{F#e3e3e3}"
elif [ "$CHARGE" -gt 40 ] && [ "$CHARGE" -le 50 ]; then
ICON=""
COLOR="%{F#e3e3e3}"
elif [ "$CHARGE" -gt 50 ] && [ "$CHARGE" -le 60 ]; then
ICON=""
COLOR="%{F#e3e3e3}"
elif [ "$CHARGE" -gt 60 ] && [ "$CHARGE" -le 70 ]; then
ICON=""
COLOR="%{F#e3e3e3}"
elif [ "$CHARGE" -gt 70 ] && [ "$CHARGE" -le 80 ]; then
ICON=""
COLOR="%{F#8be09c}"
elif [ "$CHARGE" -gt 80 ] && [ "$CHARGE" -le 90 ]; then
ICON=""
COLOR="%{F#8be09c}"
elif [ "$CHARGE" -gt 90 ]; then
ICON=""
COLOR="%{F#8be09c}"
fi
# Discharging
elif [[ $BAT_STATE == *'charging'* ]]; then
if [ "$CHARGE" -eq 0 ]; then
ICON=""
COLOR="%{F#fc8894}"
elif [ "$CHARGE" -gt 0 ] && [ "$CHARGE" -le 10 ]; then
ICON=""
COLOR="%{F#fc8894}"
elif [ "$CHARGE" -gt 10 ] && [ "$CHARGE" -le 20 ]; then
ICON=""
COLOR="%{F#fc8894}"
elif [ "$CHARGE" -gt 20 ] && [ "$CHARGE" -le 30 ]; then
ICON=""
COLOR="%{F#e3e3e3}"
elif [ "$CHARGE" -gt 30 ] && [ "$CHARGE" -le 40 ]; then
ICON=""
COLOR="%{F#e3e3e3}"
elif [ "$CHARGE" -gt 40 ] && [ "$CHARGE" -le 50 ]; then
ICON=""
COLOR="%{F#e3e3e3}"
elif [ "$CHARGE" -gt 50 ] && [ "$CHARGE" -le 60 ]; then
ICON=""
COLOR="%{F#e3e3e3}"
elif [ "$CHARGE" -gt 60 ] && [ "$CHARGE" -le 70 ]; then
ICON=""
COLOR="%{F#e3e3e3}"
elif [ "$CHARGE" -gt 70 ] && [ "$CHARGE" -le 80 ]; then
ICON=""
COLOR="%{F#8be09c}"
elif [ "$CHARGE" -gt 80 ] && [ "$CHARGE" -le 90 ]; then
ICON=""
COLOR="%{F#8be09c}"
elif [ "$CHARGE" -gt 90 ]; then
ICON=""
COLOR="%{F#8be09c}"
fi
# Fully charged
elif [[ $BAT_STATE == *'fully-charged'* ]]; then
ICON=""
COLOR="%{F#8be09c}"
notify-send -u low "Battery Info" "Your battery is fully charged"
elif [[ $BAT_STATE == *'unknown'* ]]; then
ICON=""
fi
STRING="$COLOR$ICON $CHARGE%"
# Final formatted output.
echo "$STRING"
fi
else
# If no battery information is available
if [[ "$(upower -d | grep 'percentage' | awk '{print $2}')" == "0%" && "$(upower -d | grep 'on-battery' | awk '{print $2}')" == "no" ]]; then
ICON=" "
COLOR=""
STRING="$COLOR$ICON No Bat"
echo "$STRING"
exit 0
fi
fi
fi
|