personal/dotfiles

patches/slstatus-battery-remaining.diff in master
Repositories | Summary | Log | Files | README.md | LICENSE

slstatus-battery-remaining.diff (890B) download


 1diff --git a/components/battery.c b/components/battery.c
 2index 1c753f9..942e8a1 100644
 3--- a/components/battery.c
 4+++ b/components/battery.c
 5@@ -111,6 +111,17 @@
 6 
 7 		return "";
 8 	}
 9+
10+  int battery_discharge(const char *bat) {
11+    char path[PATH_MAX], state[12];
12+
13+    if (esnprintf(path, sizeof(path), POWER_SUPPLY_STATUS, bat) < 0)
14+      return NULL;
15+    if (pscanf(path, "%12[a-zA-Z ]", state) != 1)
16+      return NULL;
17+
18+    return !strcmp(state, "Discharging");
19+  }
20 #elif defined(__OpenBSD__)
21 	#include <fcntl.h>
22 	#include <machine/apmvar.h>
23diff --git a/slstatus.h b/slstatus.h
24index 8ef5874..dacfd98 100644
25--- a/slstatus.h
26+++ b/slstatus.h
27@@ -4,6 +4,7 @@
28 const char *battery_perc(const char *);
29 const char *battery_remaining(const char *);
30 const char *battery_state(const char *);
31+int battery_discharge(const char *);
32 
33 /* cat */
34 const char *cat(const char *path);