This commit simply prunes down the version of the example in dwmstatus to what I...
authorAaron Taylor <ataylor@subgeniuskitty.com>
Fri, 3 Feb 2023 07:24:07 +0000 (23:24 -0800)
committerAaron Taylor <ataylor@subgeniuskitty.com>
Fri, 3 Feb 2023 07:24:07 +0000 (23:24 -0800)
dwmstatus.c

index 1b53292..87a188b 100644 (file)
@@ -1,6 +1,5 @@
 /*
 /*
- * Copy me if you can.
- * by 20h
+ * SGK version of dwmstatus by 20h.
  */
 
 #define _BSD_SOURCE
  */
 
 #define _BSD_SOURCE
@@ -8,19 +7,9 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <stdarg.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <stdarg.h>
-#include <string.h>
-#include <strings.h>
-#include <sys/time.h>
 #include <time.h>
 #include <time.h>
-#include <sys/types.h>
-#include <sys/wait.h>
-
 #include <X11/Xlib.h>
 
 #include <X11/Xlib.h>
 
-char *tzargentina = "America/Buenos_Aires";
-char *tzutc = "UTC";
-char *tzberlin = "Europe/Berlin";
-
 static Display *dpy;
 
 char *
 static Display *dpy;
 
 char *
@@ -47,12 +36,6 @@ smprintf(char *fmt, ...)
        return ret;
 }
 
        return ret;
 }
 
-void
-settz(char *tzname)
-{
-       setenv("TZ", tzname, 1);
-}
-
 char *
 mktimes(char *fmt, char *tzname)
 {
 char *
 mktimes(char *fmt, char *tzname)
 {
@@ -60,7 +43,7 @@ mktimes(char *fmt, char *tzname)
        time_t tim;
        struct tm *timtm;
 
        time_t tim;
        struct tm *timtm;
 
-       settz(tzname);
+       setenv("TZ", tzname, 1);
        tim = time(NULL);
        timtm = localtime(&tim);
        if (timtm == NULL)
        tim = time(NULL);
        timtm = localtime(&tim);
        if (timtm == NULL)
@@ -89,159 +72,28 @@ loadavg(void)
        if (getloadavg(avgs, 3) < 0)
                return smprintf("");
 
        if (getloadavg(avgs, 3) < 0)
                return smprintf("");
 
-       return smprintf("%.2f %.2f %.2f", avgs[0], avgs[1], avgs[2]);
-}
-
-char *
-readfile(char *base, char *file)
-{
-       char *path, line[513];
-       FILE *fd;
-
-       memset(line, 0, sizeof(line));
-
-       path = smprintf("%s/%s", base, file);
-       fd = fopen(path, "r");
-       free(path);
-       if (fd == NULL)
-               return NULL;
-
-       if (fgets(line, sizeof(line)-1, fd) == NULL) {
-               fclose(fd);
-               return NULL;
-       }
-       fclose(fd);
-
-       return smprintf("%s", line);
-}
-
-char *
-getbattery(char *base)
-{
-       char *co, status;
-       int descap, remcap;
-
-       descap = -1;
-       remcap = -1;
-
-       co = readfile(base, "present");
-       if (co == NULL)
-               return smprintf("");
-       if (co[0] != '1') {
-               free(co);
-               return smprintf("not present");
-       }
-       free(co);
-
-       co = readfile(base, "charge_full_design");
-       if (co == NULL) {
-               co = readfile(base, "energy_full_design");
-               if (co == NULL)
-                       return smprintf("");
-       }
-       sscanf(co, "%d", &descap);
-       free(co);
-
-       co = readfile(base, "charge_now");
-       if (co == NULL) {
-               co = readfile(base, "energy_now");
-               if (co == NULL)
-                       return smprintf("");
-       }
-       sscanf(co, "%d", &remcap);
-       free(co);
-
-       co = readfile(base, "status");
-       if (!strncmp(co, "Discharging", 11)) {
-               status = '-';
-       } else if(!strncmp(co, "Charging", 8)) {
-               status = '+';
-       } else {
-               status = '?';
-       }
-
-       if (remcap < 0 || descap < 0)
-               return smprintf("invalid");
-
-       return smprintf("%.0f%%%c", ((float)remcap / (float)descap) * 100, status);
-}
-
-char *
-gettemperature(char *base, char *sensor)
-{
-       char *co;
-
-       co = readfile(base, sensor);
-       if (co == NULL)
-               return smprintf("");
-       return smprintf("%02.0f°C", atof(co) / 1000);
-}
-
-char *
-execscript(char *cmd)
-{
-       FILE *fp;
-       char retval[1025], *rv;
-
-       memset(retval, 0, sizeof(retval));
-
-       fp = popen(cmd, "r");
-       if (fp == NULL)
-               return smprintf("");
-
-       rv = fgets(retval, sizeof(retval), fp);
-       pclose(fp);
-       if (rv == NULL)
-               return smprintf("");
-       retval[strlen(retval)-1] = '\0';
-
-       return smprintf("%s", retval);
+       return smprintf("%.2f", avgs[0]);
 }
 
 int
 main(void)
 {
 }
 
 int
 main(void)
 {
-       char *status;
-       char *avgs;
-       char *bat;
-       char *tmar;
-       char *tmutc;
-       char *tmbln;
-       char *t0;
-       char *t1;
-       char *kbmap;
-       char *surfs;
+       char *load, *datetime, *status;
 
        if (!(dpy = XOpenDisplay(NULL))) {
                fprintf(stderr, "dwmstatus: cannot open display.\n");
                return 1;
        }
 
 
        if (!(dpy = XOpenDisplay(NULL))) {
                fprintf(stderr, "dwmstatus: cannot open display.\n");
                return 1;
        }
 
-       for (;;sleep(30)) {
-               avgs = loadavg();
-               bat = getbattery("/sys/class/power_supply/BAT0");
-               tmar = mktimes("%H:%M", tzargentina);
-               tmutc = mktimes("%H:%M", tzutc);
-               tmbln = mktimes("KW %W %a %d %b %H:%M %Z %Y", tzberlin);
-               kbmap = execscript("setxkbmap -query | grep layout | cut -d':' -f 2- | tr -d ' '");
-               surfs = execscript("surf-status");
-               t0 = gettemperature("/sys/devices/virtual/thermal/thermal_zone0", "temp");
-               t1 = gettemperature("/sys/devices/virtual/thermal/thermal_zone1", "temp");
-
-               status = smprintf("S:%s K:%s T:%s|%s L:%s B:%s A:%s U:%s %s",
-                               surfs, kbmap, t0, t1, avgs, bat, tmar, tmutc,
-                               tmbln);
+       for (;;sleep(5)) {
+               load = loadavg();
+               datetime = mktimes("%a %d %b %Y ][ %H:%M", "America/Los_Angeles");
+
+               status = smprintf("[ %s ][ %s ]", load, datetime);
                setstatus(status);
 
                setstatus(status);
 
-               free(surfs);
-               free(kbmap);
-               free(t0);
-               free(t1);
-               free(avgs);
-               free(bat);
-               free(tmar);
-               free(tmutc);
-               free(tmbln);
+               free(load);
+               free(datetime);
                free(status);
        }
 
                free(status);
        }