From 7f327871e242941bbe913b48b7362228cf3e1ed6 Mon Sep 17 00:00:00 2001 From: dakkar Date: Sun, 30 Aug 2015 12:09:18 +0100 Subject: handle more battery reporting styles --- battery | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/battery b/battery index 144cc78..9b09587 100755 --- a/battery +++ b/battery @@ -51,19 +51,23 @@ sub _format_time { sub update { my $bs=get_battery_stats; - my $e=$bs->{energy_now}/$bs->{energy_full}; + my $now = $bs->{energy_now} // $bs->{charge_now}; + my $full = $bs->{energy_ful} // $bs->{charge_full}; + my $deriv = $bs->{power_now} // $bs->{current_now}; + + my $e=$now/$full; my $txt=''; my $charging = lc($bs->{status}) eq 'charging'; - my $full = lc($bs->{status}) eq 'full'; + my $is_full = lc($bs->{status}) eq 'full'; if ($charging) { $txt = "\x{1f50c} "; } - elsif (!$full) { + elsif (!$is_full) { $txt = "\x{1f50b} "; } - if ($bs->{power_now} && !$charging) { - my $t=$bs->{energy_now}/$bs->{power_now}; - my $tot=$bs->{energy_full}/$bs->{power_now}; + if ($deriv && !$charging) { + my $t=$now/$deriv; + my $tot=$full/$deriv; $txt .= sprintf '%s/%s ', _format_time($t), -- cgit v1.2.3