From 46f35713b6552ebd8db0991f61639597048a5f59 Mon Sep 17 00:00:00 2001 From: ekzyis Date: Sun, 21 Apr 2024 09:38:43 +0200 Subject: [PATCH] Customize status bar --- dwmstatus.c | 47 ++++++++++++++++++++++++++--------------------- 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/dwmstatus.c b/dwmstatus.c index 1b53292..36b103e 100644 --- a/dwmstatus.c +++ b/dwmstatus.c @@ -135,7 +135,7 @@ getbattery(char *base) co = readfile(base, "charge_full_design"); if (co == NULL) { - co = readfile(base, "energy_full_design"); + co = readfile(base, "energy_full"); if (co == NULL) return smprintf(""); } @@ -156,17 +156,23 @@ getbattery(char *base) status = '-'; } else if(!strncmp(co, "Charging", 8)) { status = '+'; + } else if(!strncmp(co, "Full", 4)) { + status = ' '; } else { - status = '?'; - } + status = '?'; + } if (remcap < 0 || descap < 0) return smprintf("invalid"); + if (status == ' ') { + return smprintf("%.0f%%", ((float)remcap / (float)descap) * 100); + } + return smprintf("%.0f%%%c", ((float)remcap / (float)descap) * 100, status); } -char * +int gettemperature(char *base, char *sensor) { char *co; @@ -174,7 +180,8 @@ gettemperature(char *base, char *sensor) co = readfile(base, sensor); if (co == NULL) return smprintf(""); - return smprintf("%02.0f°C", atof(co) / 1000); + return atof(co) / 1000; + // return smprintf("%02.0f°C", atof(co) / 1000); } char * @@ -207,8 +214,8 @@ main(void) char *tmar; char *tmutc; char *tmbln; - char *t0; - char *t1; + int t0; + int t1; char *kbmap; char *surfs; @@ -220,27 +227,25 @@ main(void) 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"); + // tmar = mktimes("%H:%M", tzargentina); + // tmutc = mktimes("%H:%M", tzutc); + tmbln = mktimes("%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); + status = smprintf("| T%d°C | L%s | B%s | %s |", t0 > t1 ? t0 : t1, avgs, bat, tmbln); setstatus(status); - free(surfs); - free(kbmap); - free(t0); - free(t1); + // free(surfs); + // free(kbmap); + // free(t0); + // free(t1); free(avgs); free(bat); - free(tmar); - free(tmutc); + // free(tmar); + // free(tmutc); free(tmbln); free(status); }