From c9a04fdddc92ed98ee723316f6dd9b60c57cfa92 Mon Sep 17 00:00:00 2001 From: Aaron Taylor Date: Thu, 2 Feb 2023 23:24:07 -0800 Subject: [PATCH] This commit simply prunes down the version of the example in dwmstatus to what I actually use. --- dwmstatus.c | 170 ++++------------------------------------------------ 1 file changed, 11 insertions(+), 159 deletions(-) diff --git a/dwmstatus.c b/dwmstatus.c index 1b53292..87a188b 100644 --- a/dwmstatus.c +++ b/dwmstatus.c @@ -1,6 +1,5 @@ /* - * Copy me if you can. - * by 20h + * SGK version of dwmstatus by 20h. */ #define _BSD_SOURCE @@ -8,19 +7,9 @@ #include #include #include -#include -#include -#include #include -#include -#include - #include -char *tzargentina = "America/Buenos_Aires"; -char *tzutc = "UTC"; -char *tzberlin = "Europe/Berlin"; - static Display *dpy; char * @@ -47,12 +36,6 @@ smprintf(char *fmt, ...) return ret; } -void -settz(char *tzname) -{ - setenv("TZ", tzname, 1); -} - char * mktimes(char *fmt, char *tzname) { @@ -60,7 +43,7 @@ mktimes(char *fmt, char *tzname) time_t tim; struct tm *timtm; - settz(tzname); + setenv("TZ", tzname, 1); tim = time(NULL); timtm = localtime(&tim); if (timtm == NULL) @@ -89,159 +72,28 @@ loadavg(void) 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) { - 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; } - 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); - free(surfs); - free(kbmap); - free(t0); - free(t1); - free(avgs); - free(bat); - free(tmar); - free(tmutc); - free(tmbln); + free(load); + free(datetime); free(status); } -- 2.20.1