Add support for batteries outputting Time to empty on linux (#378)

* Add support for batteries outputting Time to empty on linux

The battery in the pinebook pro does not output the remaining charge
in Wh or mAh, so i3 cannot calculate the time remaining. However, it
does directly output the number of minutes remaining on in
POWER_SUPPLY_TIME_TO_EMPTY. This adds support for reading this field
and converting it to seconds_remaining.

* Add testcase for POWER_SUPPLY_TIME_TO_EMTY_NOW
This commit is contained in:
Michael Nolan 2020-06-15 03:09:06 -04:00 committed by GitHub
parent 09358d2698
commit e19539e5f6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 17 additions and 0 deletions

View File

@ -175,6 +175,8 @@ static bool slurp_battery_info(struct battery_info *batt_info, yajl_gen json_gen
batt_info->present_rate = abs(atoi(walk + 1));
else if (BEGINS_WITH(last, "POWER_SUPPLY_VOLTAGE_NOW="))
voltage = abs(atoi(walk + 1));
else if (BEGINS_WITH(last, "POWER_SUPPLY_TIME_TO_EMPTY_NOW="))
batt_info->seconds_remaining = abs(atoi(walk + 1)) * 60;
/* on some systems POWER_SUPPLY_POWER_NOW does not exist, but actually
* it is the same as POWER_SUPPLY_CURRENT_NOW but with μWh as
* unit instead of μAh. We will calculate it as we need it

View File

@ -0,0 +1,4 @@
POWER_SUPPLY_STATUS=Discharging
POWER_SUPPLY_TIME_TO_EMPTY_NOW=655
POWER_SUPPLY_CHARGE_FULL_DESIGN=7800000
POWER_SUPPLY_CHARGE_NOW=2390000

View File

@ -0,0 +1 @@
BAT 30.64% 10:55

View File

@ -0,0 +1,10 @@
general {
output_format = "none"
}
order += "battery 0"
battery 0 {
format = "%status %percentage %remaining"
path = "testcases/026-battery-time-to-empty/BAT0_uevent"
}