]> git.sur5r.net Git - i3/i3status/commitdiff
Added status_unk to battery_info 117/head
authoreoin <iam@eoingroat.com>
Mon, 21 Mar 2016 22:41:22 +0000 (22:41 +0000)
committereoin <iam@eoingroat.com>
Mon, 21 Mar 2016 22:41:22 +0000 (22:41 +0000)
i3status.c
include/i3status.h
man/i3status.man
src/print_battery_info.c

index c8c5df04eff4c9acbd9e9c5dcef8f68bf76ce0b5..19ad5a3ab948078ddcba5981451903e657e82874 100644 (file)
@@ -360,6 +360,7 @@ int main(int argc, char *argv[]) {
         CFG_STR("format_down", "No battery", CFGF_NONE),
         CFG_STR("status_chr", "CHR", CFGF_NONE),
         CFG_STR("status_bat", "BAT", CFGF_NONE),
+        CFG_STR("status_unk", "UNK", CFGF_NONE),
         CFG_STR("status_full", "FULL", CFGF_NONE),
         CFG_STR("path", "/sys/class/power_supply/BAT%d/uevent", CFGF_NONE),
         CFG_INT("low_threshold", 30, CFGF_NONE),
@@ -661,7 +662,7 @@ int main(int argc, char *argv[]) {
 
             CASE_SEC_TITLE("battery") {
                 SEC_OPEN_MAP("battery");
-                print_battery_info(json_gen, buffer, atoi(title), cfg_getstr(sec, "path"), cfg_getstr(sec, "format"), cfg_getstr(sec, "format_down"), cfg_getstr(sec, "status_chr"), cfg_getstr(sec, "status_bat"), cfg_getstr(sec, "status_full"), cfg_getint(sec, "low_threshold"), cfg_getstr(sec, "threshold_type"), cfg_getbool(sec, "last_full_capacity"), cfg_getbool(sec, "integer_battery_capacity"), cfg_getbool(sec, "hide_seconds"));
+                print_battery_info(json_gen, buffer, atoi(title), cfg_getstr(sec, "path"), cfg_getstr(sec, "format"), cfg_getstr(sec, "format_down"), cfg_getstr(sec, "status_chr"), cfg_getstr(sec, "status_bat"), cfg_getstr(sec, "status_unk"), cfg_getstr(sec, "status_full"), cfg_getint(sec, "low_threshold"), cfg_getstr(sec, "threshold_type"), cfg_getbool(sec, "last_full_capacity"), cfg_getbool(sec, "integer_battery_capacity"), cfg_getbool(sec, "hide_seconds"));
                 SEC_CLOSE_MAP;
             }
 
index d6679aee714ef2f9469c5cfc1c558503a6a01d96..7e756e227075bcd227813cce59a246f7f7e4487d 100644 (file)
@@ -170,6 +170,7 @@ char *pct_mark;
 
 typedef enum { CS_DISCHARGING,
                CS_CHARGING,
+               CS_UNKNOWN,
                CS_FULL } charging_status_t;
 
 /*
@@ -207,7 +208,7 @@ const char *first_eth_interface(const net_type_t type);
 
 void print_ipv6_info(yajl_gen json_gen, char *buffer, const char *format_up, const char *format_down);
 void print_disk_info(yajl_gen json_gen, char *buffer, const char *path, const char *format, const char *format_not_mounted, const char *prefix_type, const char *threshold_type, const double low_threshold);
-void print_battery_info(yajl_gen json_gen, char *buffer, int number, const char *path, const char *format, const char *format_down, const char *status_chr, const char *status_bat, const char *status_full, int low_threshold, char *threshold_type, bool last_full_capacity, bool integer_battery_capacity, bool hide_seconds);
+void print_battery_info(yajl_gen json_gen, char *buffer, int number, const char *path, const char *format, const char *format_down, const char *status_chr, const char *status_bat, const char *status_unk, const char *status_full, int low_threshold, char *threshold_type, bool last_full_capacity, bool integer_battery_capacity, bool hide_seconds);
 void print_time(yajl_gen json_gen, char *buffer, const char *title, const char *format, const char *tz, const char *format_time, time_t t);
 void print_ddate(yajl_gen json_gen, char *buffer, const char *format, time_t t);
 const char *get_ip_addr(const char *interface);
index f4e2a3225268cf453336c4bfacf0bacc5589a177..850848828b0a329f2dffedb755c17094543c91c8 100644 (file)
@@ -76,6 +76,7 @@ battery 0 {
         format_down = "No battery"
         status_chr = "⚡ CHR"
         status_bat = "🔋 BAT"
+        status_unk = "? UNK"
         status_full = "☻ FULL"
         path = "/sys/class/power_supply/BAT%d/uevent"
         low_threshold = 10
@@ -315,7 +316,7 @@ network interface found on the system (excluding devices starting with "lo").
 
 === Battery
 
-Gets the status (charging, discharging, running), percentage, remaining
+Gets the status (charging, discharging, unknown, full), percentage, remaining
 time and power consumption (in Watts) of the given battery and when it's
 estimated to be empty. If you want to use the last full capacity instead of the
 design capacity (when using the design capacity, it may happen that your
@@ -339,10 +340,10 @@ colored red. The low_threshold type can be of threshold_type "time" or
 
 Optionally custom strings including any UTF-8 symbols can be used for different
 battery states. This makes it possible to display individual symbols
-for each state (charging, discharging, full)
+for each state (charging, discharging, unknown, full)
 Of course it will also work with special iconic fonts, such as FontAwesome.
-If any of this special status strings is omitted, the default (CHR, BAT, FULL)
-is used.
+If any of these special status strings are omitted, the default (CHR, BAT, UNK,
+FULL) is used.
 
 *Example order*: +battery 0+
 
@@ -354,6 +355,8 @@ is used.
 
 *Example status_bat*: +🔋 BAT+
 
+*Example status_unk*: +? UNK+
+
 *Example status_full*: +☻ FULL+
 
 *Example low_threshold*: +30+
index 9ce121ef2c709cd7f660633570a0befeefc4ff8f..7fb2ab5afb9572739d7e86d905703cdd1d8555de 100644 (file)
@@ -34,7 +34,7 @@
  * worn off your battery is.
  *
  */
-void print_battery_info(yajl_gen json_gen, char *buffer, int number, const char *path, const char *format, const char *format_down, const char *status_chr, const char *status_bat, const char *status_full, int low_threshold, char *threshold_type, bool last_full_capacity, bool integer_battery_capacity, bool hide_seconds) {
+void print_battery_info(yajl_gen json_gen, char *buffer, int number, const char *path, const char *format, const char *format_down, const char *status_chr, const char *status_bat, const char *status_unk, const char *status_full, int low_threshold, char *threshold_type, bool last_full_capacity, bool integer_battery_capacity, bool hide_seconds) {
     time_t empty_time;
     struct tm *empty_tm;
     char buf[1024];
@@ -64,7 +64,7 @@ void print_battery_info(yajl_gen json_gen, char *buffer, int number, const char
     INSTANCE(batpath);
 
 #define BATT_STATUS_NAME(status) \
-    (status == CS_CHARGING ? status_chr : (status == CS_DISCHARGING ? status_bat : status_full))
+    (status == CS_CHARGING ? status_chr : (status == CS_DISCHARGING ? status_bat : (status == CS_UNKNOWN ? status_unk : status_full)))
 
 #if defined(LINUX)
     if (!slurp(batpath, buf, sizeof(buf))) {
@@ -101,6 +101,10 @@ void print_battery_info(yajl_gen json_gen, char *buffer, int number, const char
             status = CS_CHARGING;
         else if (BEGINS_WITH(last, "POWER_SUPPLY_STATUS=Full"))
             status = CS_FULL;
+        else if (BEGINS_WITH(last, "POWER_SUPPLY_STATUS=Discharging"))
+            status = CS_DISCHARGING;
+        else if (BEGINS_WITH(last, "POWER_SUPPLY_STATUS="))
+            status = CS_UNKNOWN;
         else {
             /* The only thing left is the full capacity */
             if (last_full_capacity) {