]> git.sur5r.net Git - i3/i3status/commitdiff
Added format_down option for battery if no battery is available.
authorChristoph Göttschkes <just.mychris@googlemail.com>
Thu, 7 Mar 2013 20:21:54 +0000 (21:21 +0100)
committerMichael Stapelberg <michael@stapelberg.de>
Sat, 9 Mar 2013 10:43:55 +0000 (11:43 +0100)
i3status.c
include/i3status.h
man/i3status.man
src/print_battery_info.c

index e8e44d4245635498a48d3b5f977dfe2ea13804b1..df233f75911de0fcab6c75fdb6857c961d2a7695 100644 (file)
@@ -230,6 +230,7 @@ int main(int argc, char *argv[]) {
 
         cfg_opt_t battery_opts[] = {
                 CFG_STR("format", "%status %percentage %remaining", CFGF_NONE),
+                CFG_STR("format_down", "No battery", CFGF_NONE),
                 CFG_STR("path", "/sys/class/power_supply/BAT%d/uevent", CFGF_NONE),
                 CFG_INT("low_threshold", 30, CFGF_NONE),
                 CFG_STR("threshold_type", "time", CFGF_NONE),
@@ -444,7 +445,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_getint(sec, "low_threshold"), cfg_getstr(sec, "threshold_type"), cfg_getbool(sec, "last_full_capacity"), cfg_getbool(sec, "integer_battery_capacity"));
+                                print_battery_info(json_gen, buffer, atoi(title), cfg_getstr(sec, "path"), cfg_getstr(sec, "format"), cfg_getstr(sec, "format_down"), cfg_getint(sec, "low_threshold"), cfg_getstr(sec, "threshold_type"), cfg_getbool(sec, "last_full_capacity"), cfg_getbool(sec, "integer_battery_capacity"));
                                 SEC_CLOSE_MAP;
                         }
 
index 47f335081e78599417676b1684e5e6a610b7a0d4..6b2a688bc01aba1f59cd25b5cfc1eaf8a0fde45f 100644 (file)
@@ -142,7 +142,7 @@ void set_timezone(const char *tz);
 
 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);
-void print_battery_info(yajl_gen json_gen, char *buffer, int number, const char *path, const char *format, int low_threshold, char *threshold_type, bool last_full_capacity, bool integer_battery_capacity);
+void print_battery_info(yajl_gen json_gen, char *buffer, int number, const char *path, const char *format, const char *format_down, int low_threshold, char *threshold_type, bool last_full_capacity, bool integer_battery_capacity);
 void print_time(yajl_gen json_gen, char *buffer, const char *format, const char *tz, time_t t);
 void print_ddate(yajl_gen json_gen, char *buffer, const char *format, time_t t);
 const char *get_ip_addr();
index 00fdcbc45d892e135724b157e845a9a46bb5dec2..0fccb7e417376be1bb5bb0d85a2f3cf428a6a47d 100644 (file)
@@ -72,6 +72,7 @@ ethernet eth0 {
 
 battery 0 {
         format = "%status %percentage %remaining %emptytime"
+        format_down = "No battery"
         path = "/sys/class/power_supply/BAT%d/uevent"
         low_threshold = 10
 }
index 95237d9ea60fff68687378a3fdd1e1996d6116c5..c9eee2346edf4cf333b28a0f698904c9e6ae691d 100644 (file)
@@ -30,7 +30,7 @@
  * worn off your battery is.
  *
  */
-void print_battery_info(yajl_gen json_gen, char *buffer, int number, const char *path, const char *format, int low_threshold, char *threshold_type, bool last_full_capacity, bool integer_battery_capacity) {
+void print_battery_info(yajl_gen json_gen, char *buffer, int number, const char *path, const char *format, const char *format_down, int low_threshold, char *threshold_type, bool last_full_capacity, bool integer_battery_capacity) {
         time_t empty_time;
         struct tm *empty_tm;
         char buf[1024];
@@ -61,7 +61,7 @@ void print_battery_info(yajl_gen json_gen, char *buffer, int number, const char
         static char batpath[512];
         sprintf(batpath, path, number);
         if (!slurp(batpath, buf, sizeof(buf))) {
-                OUTPUT_FULL_TEXT("No battery");
+                OUTPUT_FULL_TEXT(format_down);
                 return;
         }
 
@@ -123,7 +123,7 @@ void print_battery_info(yajl_gen json_gen, char *buffer, int number, const char
         }
 
         if ((full_design == -1) || (remaining == -1)) {
-                OUTPUT_FULL_TEXT("No battery");
+                OUTPUT_FULL_TEXT(format_down);
                 return;
         }
 
@@ -196,19 +196,19 @@ void print_battery_info(yajl_gen json_gen, char *buffer, int number, const char
         size_t sysctl_size = sizeof(sysctl_rslt);
 
         if (sysctlbyname(BATT_LIFE, &sysctl_rslt, &sysctl_size, NULL, 0) != 0) {
-                OUTPUT_FULL_TEXT("No battery");
+                OUTPUT_FULL_TEXT(format_down);
                 return;
         }
 
         present_rate = sysctl_rslt;
         if (sysctlbyname(BATT_TIME, &sysctl_rslt, &sysctl_size, NULL, 0) != 0) {
-                OUTPUT_FULL_TEXT("No battery");
+                OUTPUT_FULL_TEXT(format_down);
                 return;
         }
 
         remaining = sysctl_rslt;
         if (sysctlbyname(BATT_STATE, &sysctl_rslt, &sysctl_size, NULL,0) != 0) {
-                OUTPUT_FULL_TEXT("No battery");
+                OUTPUT_FULL_TEXT(format_down);
                 return;
         }
 
@@ -257,7 +257,7 @@ void print_battery_info(yajl_gen json_gen, char *buffer, int number, const char
        /* Don't bother to go further if there's no battery present. */
        if ((apm_info.battery_state == APM_BATTERY_ABSENT) ||
            (apm_info.battery_state == APM_BATT_UNKNOWN)) {
-               OUTPUT_FULL_TEXT("No battery");
+               OUTPUT_FULL_TEXT(format_down);
                return;
        }