]> git.sur5r.net Git - i3/i3status/commitdiff
Add battery capacity parsing (#216)
authorEmeric Planet <emeric.planet@gmail.com>
Thu, 13 Apr 2017 19:46:21 +0000 (21:46 +0200)
committerMichael Stapelberg <stapelberg@users.noreply.github.com>
Thu, 13 Apr 2017 19:46:21 +0000 (21:46 +0200)
The Linux power supply class defines three entries to provide battery status.
One of them wasn't used: POWER_SUPPLY_CAPACITY.

https://www.kernel.org/doc/Documentation/power/power_supply_class.txt

src/print_battery_info.c
testcases/014-battery-capacity/expected_output.txt [new file with mode: 0644]
testcases/014-battery-capacity/i3status.conf [new file with mode: 0644]
testcases/014-battery-capacity/uevent [new file with mode: 0644]
testcases/015-battery-capacity/expected_output.txt [new file with mode: 0644]
testcases/015-battery-capacity/i3status.conf [new file with mode: 0644]
testcases/015-battery-capacity/uevent [new file with mode: 0644]

index 7883a113290896d5d1221af5ac6ad97b5e0ad0c0..f15cbfad1162d9cc3d8c789e33224fe2ae06dd84 100644 (file)
@@ -138,9 +138,13 @@ static bool slurp_battery_info(struct battery_info *batt_info, yajl_gen json_gen
         if (BEGINS_WITH(last, "POWER_SUPPLY_ENERGY_NOW=")) {
             watt_as_unit = true;
             batt_info->remaining = atoi(walk + 1);
+            batt_info->percentage_remaining = -1;
         } else if (BEGINS_WITH(last, "POWER_SUPPLY_CHARGE_NOW=")) {
             watt_as_unit = false;
             batt_info->remaining = atoi(walk + 1);
+            batt_info->percentage_remaining = -1;
+        } else if (BEGINS_WITH(last, "POWER_SUPPLY_CAPACITY=") && batt_info->remaining == -1) {
+            batt_info->percentage_remaining = atoi(walk + 1);
         } else if (BEGINS_WITH(last, "POWER_SUPPLY_CURRENT_NOW="))
             batt_info->present_rate = abs(atoi(walk + 1));
         else if (BEGINS_WITH(last, "POWER_SUPPLY_VOLTAGE_NOW="))
diff --git a/testcases/014-battery-capacity/expected_output.txt b/testcases/014-battery-capacity/expected_output.txt
new file mode 100644 (file)
index 0000000..3f97d1b
--- /dev/null
@@ -0,0 +1 @@
+Touchpad: 100.00% BAT 
\ No newline at end of file
diff --git a/testcases/014-battery-capacity/i3status.conf b/testcases/014-battery-capacity/i3status.conf
new file mode 100644 (file)
index 0000000..d48aa50
--- /dev/null
@@ -0,0 +1,13 @@
+general {
+        output_format = "none"
+}
+
+order += "battery 1"
+
+battery 1 {
+    format = "Touchpad: %percentage %status %remaining"
+    format_down = "No touchpad"
+    path = "/sys/class/power_supply/hid-ff:ff:ff:ff:ff:ff-battery/uevent"
+    path = "testcases/014-battery-capacity/uevent"
+    low_threshold = 10
+}
diff --git a/testcases/014-battery-capacity/uevent b/testcases/014-battery-capacity/uevent
new file mode 100644 (file)
index 0000000..5f06cc9
--- /dev/null
@@ -0,0 +1,7 @@
+POWER_SUPPLY_NAME=hid-70:cd:60:f7:a0:5c-battery
+POWER_SUPPLY_PRESENT=1
+POWER_SUPPLY_ONLINE=1
+POWER_SUPPLY_CAPACITY=100
+POWER_SUPPLY_MODEL_NAME=applemagictrackpad
+POWER_SUPPLY_STATUS=Discharging
+POWER_SUPPLY_SCOPE=Device
diff --git a/testcases/015-battery-capacity/expected_output.txt b/testcases/015-battery-capacity/expected_output.txt
new file mode 100644 (file)
index 0000000..663a593
--- /dev/null
@@ -0,0 +1 @@
+Touchpad: 30.64% BAT 02:09:32
diff --git a/testcases/015-battery-capacity/i3status.conf b/testcases/015-battery-capacity/i3status.conf
new file mode 100644 (file)
index 0000000..60e626f
--- /dev/null
@@ -0,0 +1,13 @@
+general {
+        output_format = "none"
+}
+
+order += "battery 1"
+
+battery 1 {
+    format = "Touchpad: %percentage %status %remaining"
+    format_down = "No touchpad"
+    path = "/sys/class/power_supply/hid-ff:ff:ff:ff:ff:ff-battery/uevent"
+    path = "testcases/015-battery-capacity/uevent"
+    low_threshold = 10
+}
diff --git a/testcases/015-battery-capacity/uevent b/testcases/015-battery-capacity/uevent
new file mode 100644 (file)
index 0000000..ac74624
--- /dev/null
@@ -0,0 +1,10 @@
+POWER_SUPPLY_CAPACITY=100
+POWER_SUPPLY_CURRENT_NOW=1107000
+POWER_SUPPLY_CHARGE_FULL_DESIGN=7800000
+POWER_SUPPLY_CHARGE_NOW=2390000
+POWER_SUPPLY_NAME=hid-70:cd:60:f7:a0:5c-battery
+POWER_SUPPLY_PRESENT=1
+POWER_SUPPLY_ONLINE=1
+POWER_SUPPLY_MODEL_NAME=applemagictrackpad
+POWER_SUPPLY_STATUS=Discharging
+POWER_SUPPLY_SCOPE=Device