summaryrefslogtreecommitdiff
path: root/plugins/battery/battery.plugin.zsh
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/battery/battery.plugin.zsh')
-rw-r--r--plugins/battery/battery.plugin.zsh54
1 files changed, 32 insertions, 22 deletions
diff --git a/plugins/battery/battery.plugin.zsh b/plugins/battery/battery.plugin.zsh
index 16ad3e651..32dd4b624 100644
--- a/plugins/battery/battery.plugin.zsh
+++ b/plugins/battery/battery.plugin.zsh
@@ -17,20 +17,28 @@ if [[ $(uname) == "Darwin" ]] ; then
integer i=$(((currentcapacity/maxcapacity) * 100))
echo $i
}
-
+
+ function plugged_in() {
+ [ $(ioreg -rc AppleSmartBattery | grep -c '^.*"ExternalConnected"\ =\ Yes') -eq 1 ]
+ }
+
function battery_pct_remaining() {
- if [[ $(ioreg -rc AppleSmartBattery | grep -c '^.*"ExternalConnected"\ =\ No') -eq 1 ]] ; then
- battery_pct
- else
+ if plugged_in ; then
echo "External Power"
+ else
+ battery_pct
fi
}
function battery_time_remaining() {
- local smart_battery_status="$(ioreg -rc "AppleSmartBattery")"
+ local smart_battery_status="$(ioreg -rc "AppleSmartBattery")"
if [[ $(echo $smart_battery_status | grep -c '^.*"ExternalConnected"\ =\ No') -eq 1 ]] ; then
timeremaining=$(echo $smart_battery_status | grep '^.*"AvgTimeToEmpty"\ =\ ' | sed -e 's/^.*"AvgTimeToEmpty"\ =\ //')
- echo "~$((timeremaining / 60)):$((timeremaining % 60))"
+ if [ $timeremaining -gt 720 ] ; then
+ echo "::"
+ else
+ echo "~$((timeremaining / 60)):$((timeremaining % 60))"
+ fi
else
echo "∞"
fi
@@ -51,16 +59,28 @@ if [[ $(uname) == "Darwin" ]] ; then
echo "∞"
fi
}
-
+
function battery_is_charging() {
- [[ $(ioreg -rc "AppleSmartBattery"| grep '^.*"IsCharging"\ =\ ' | sed -e 's/^.*"IsCharging"\ =\ //') == "Yes" ]]
+ [[ $(ioreg -rc "AppleSmartBattery"| grep '^.*"IsCharging"\ =\ ' | sed -e 's/^.*"IsCharging"\ =\ //') == "Yes" ]]
}
elif [[ $(uname) == "Linux" ]] ; then
+ function battery_is_charging() {
+ ! [[ $(acpi 2&>/dev/null | grep -c '^Battery.*Discharging') -gt 0 ]]
+ }
+
+ function battery_pct() {
+ if (( $+commands[acpi] )) ; then
+ echo "$(acpi | cut -f2 -d ',' | tr -cd '[:digit:]')"
+ fi
+ }
+
function battery_pct_remaining() {
- if [[ $(acpi 2&>/dev/null | grep -c '^Battery.*Discharging') -gt 0 ]] ; then
- echo "$(acpi | cut -f2 -d ',' | tr -cd '[:digit:]')"
+ if [ ! $(battery_is_charging) ] ; then
+ battery_pct
+ else
+ echo "External Power"
fi
}
@@ -85,15 +105,6 @@ elif [[ $(uname) == "Linux" ]] ; then
echo "∞"
fi
}
-
- function battery_pct() {
- # todo for on linux
- }
-
- function battery_is_charging() {
- # todo on linux
- false
- }
else
# Empty functions so we don't cause errors in prompts
@@ -127,7 +138,7 @@ function battery_level_gauge() {
if [[ $battery_remaining_percentage =~ [0-9]+ ]]; then
local filled=$(((( $battery_remaining_percentage + $gauge_slots - 1) / $gauge_slots)));
local empty=$(($gauge_slots - $filled));
-
+
if [[ $filled -gt $green_threshold ]]; then local gauge_color=$color_green;
elif [[ $filled -gt $yellow_threshold ]]; then local gauge_color=$color_yellow;
else local gauge_color=$color_red;
@@ -135,10 +146,9 @@ function battery_level_gauge() {
else
local filled=$gauge_slots;
local empty=0;
- filled_symbol=${BATTERY_UNKNOWN_SYMBOL:-'.'};
+ filled_symbol=${BATTERY_UNKNOWN_SYMBOL:-'.'};
fi
-
local charging=' ' && battery_is_charging && charging=$charging_symbol;
printf ${charging_color//\%/\%\%}$charging${color_reset//\%/\%\%}${battery_prefix//\%/\%\%}${gauge_color//\%/\%\%}