Xinqi Bao's Git
projects
/
slstatus.git
/ commitdiff
summary
|
log
|
commit
|
diff
|
tree
raw
|
patch
|
inline
| side by side (parent:
870d68d
)
add battery_power function
author
Aaron Marcher <
[email protected]
>
Mon, 12 Jun 2017 21:55:27 +0000
(23:55 +0200)
committer
Aaron Marcher <
[email protected]
>
Mon, 12 Jun 2017 21:55:27 +0000
(23:55 +0200)
config.def.h
patch
|
blob
|
history
slstatus.c
patch
|
blob
|
history
diff --git
a/config.def.h
b/config.def.h
index
1476c30
..
426cc28
100644
(file)
--- a/
config.def.h
+++ b/
config.def.h
@@
-8,6
+8,7
@@
/* statusbar
- battery_perc (battery percentage) [argument: battery name]
/* statusbar
- battery_perc (battery percentage) [argument: battery name]
+- battery_power (battery power usage) [argument: battery name]
- battery_state (battery charging state) [argument: battery name]
- cpu_perc (cpu usage in percent) [argument: NULL]
- datetime (date and time) [argument: format]
- battery_state (battery charging state) [argument: battery name]
- cpu_perc (cpu usage in percent) [argument: NULL]
- datetime (date and time) [argument: format]
diff --git
a/slstatus.c
b/slstatus.c
index
8241451
..
caccc6e
100644
(file)
--- a/
slstatus.c
+++ b/
slstatus.c
@@
-35,6
+35,7
@@
struct arg {
static char *smprintf(const char *fmt, ...);
static char *battery_perc(const char *bat);
static char *smprintf(const char *fmt, ...);
static char *battery_perc(const char *bat);
+static char *battery_power(const char *bat);
static char *battery_state(const char *bat);
static char *cpu_perc(void);
static char *datetime(const char *fmt);
static char *battery_state(const char *bat);
static char *cpu_perc(void);
static char *datetime(const char *fmt);
@@
-118,6
+119,25
@@
battery_perc(const char *bat)
return smprintf("%d%%", perc);
}
return smprintf("%d%%", perc);
}
+static char *
+battery_power(const char *bat)
+{
+ char path[PATH_MAX];
+ FILE *fp;
+ int watts;
+
+ snprintf(path, sizeof(path), "%s%s%s", "/sys/class/power_supply/", bat, "/power_now");
+ fp = fopen(path, "r");
+ if (fp == NULL) {
+ warn("Failed to open file %s", path);
+ return smprintf("%s", UNKNOWN_STR);
+ }
+ fscanf(fp, "%i", &watts);
+ fclose(fp);
+
+ return smprintf("%d", (watts + 500000) / 1000000);
+}
+
static char *
battery_state(const char *bat)
{
static char *
battery_state(const char *bat)
{