it* dwmstatus for OpenBSD Err codevoid.de 70 i Err codevoid.de 70 hgit clone git://git.codevoid.de/dwmstatus-sdk URL:git://git.codevoid.de/dwmstatus-sdk codevoid.de 70 1Log /git/dwmstatus-sdk/log.gph codevoid.de 70 1Files /git/dwmstatus-sdk/files.gph codevoid.de 70 1Refs /git/dwmstatus-sdk/refs.gph codevoid.de 70 1LICENSE /git/dwmstatus-sdk/file/LICENSE.gph codevoid.de 70 i--- Err codevoid.de 70 1commit ab069199882de382939ef724b19563a3b0eac86c /git/dwmstatus-sdk/commit/ab069199882de382939ef724b19563a3b0eac86c.gph codevoid.de 70 1parent a7ed94764ae00edced4ca65047ca006b655569a0 /git/dwmstatus-sdk/commit/a7ed94764ae00edced4ca65047ca006b655569a0.gph codevoid.de 70 hAuthor: Stefan Hagen URL:mailto:sh+git[at]codevoid[dot]de codevoid.de 70 iDate: Sun, 3 Nov 2019 19:21:20 +0100 Err codevoid.de 70 i Err codevoid.de 70 iugly disk space display Err codevoid.de 70 i Err codevoid.de 70 iDiffstat: Err codevoid.de 70 i M config.mk | 2 +- Err codevoid.de 70 i M dwmstatus.c | 57 ++++++++++++++++++------------- Err codevoid.de 70 i Err codevoid.de 70 i2 files changed, 34 insertions(+), 25 deletions(-) Err codevoid.de 70 i--- Err codevoid.de 70 1diff --git a/config.mk b/config.mk /git/dwmstatus-sdk/file/config.mk.gph codevoid.de 70 it@@ -20,7 +20,7 @@ LIBS = -L/usr/local/lib -lc -L${X11LIB} -lX11 Err codevoid.de 70 i Err codevoid.de 70 i # flags Err codevoid.de 70 i CPPFLAGS = -DVERSION=\"${VERSION}\" -D_DEFAULT_SOURCE Err codevoid.de 70 i-CFLAGS = -std=c99 -pedantic -Wall -O0 ${INCS} ${CPPFLAGS} Err codevoid.de 70 i+CFLAGS = -std=c99 -pedantic -Wall -g -O0 ${INCS} ${CPPFLAGS} Err codevoid.de 70 i #CFLAGS = -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS} Err codevoid.de 70 i LDFLAGS = ${LIBS} Err codevoid.de 70 i #LDFLAGS = -s ${LIBS} Err codevoid.de 70 1diff --git a/dwmstatus.c b/dwmstatus.c /git/dwmstatus-sdk/file/dwmstatus.c.gph codevoid.de 70 it@@ -12,6 +12,9 @@ Err codevoid.de 70 i #include Err codevoid.de 70 i #include Err codevoid.de 70 i #include Err codevoid.de 70 i+#include Err codevoid.de 70 i+#include Err codevoid.de 70 i+#include Err codevoid.de 70 i #include Err codevoid.de 70 i #include Err codevoid.de 70 i #include Err codevoid.de 70 it@@ -20,8 +23,6 @@ Err codevoid.de 70 i Err codevoid.de 70 i // configuration Err codevoid.de 70 i #define UPDATE_INTERVAL 10 Err codevoid.de 70 i-#define LOW_DISKSPACE_HOME 10240 Err codevoid.de 70 i-#define LOW_DISKSPACE_ROOT 512 Err codevoid.de 70 i Err codevoid.de 70 i // conversation presets Err codevoid.de 70 i #define ZEROCTOC(x) ((x)-2731) / 10 Err codevoid.de 70 it@@ -146,13 +147,14 @@ void setstatus(char *str) { Err codevoid.de 70 i XSync(dpy, False); Err codevoid.de 70 i } Err codevoid.de 70 i Err codevoid.de 70 i-char * loadavg(void) { Err codevoid.de 70 i+char * loadavg(int i) { Err codevoid.de 70 i double avgs[3]; Err codevoid.de 70 i Err codevoid.de 70 i if (getloadavg(avgs, 3) < 0) Err codevoid.de 70 i return smprintf(""); Err codevoid.de 70 i Err codevoid.de 70 i- return smprintf("%.2f|%.2f|%.2f", avgs[0], avgs[1], avgs[2]); Err codevoid.de 70 i+ //return smprintf("%.2f|%.2f|%.2f", avgs[0], avgs[1], avgs[2]); Err codevoid.de 70 i+ return smprintf("%.2f", avgs[i]); Err codevoid.de 70 i } Err codevoid.de 70 i Err codevoid.de 70 i char * readfile(char *base, char *file) { Err codevoid.de 70 it@@ -191,45 +193,52 @@ char * getbattery() Err codevoid.de 70 i return smprintf("%i", pi.battery_life); Err codevoid.de 70 i } Err codevoid.de 70 i Err codevoid.de 70 i+char * getifaddr(char * intf) Err codevoid.de 70 i+{ Err codevoid.de 70 i+ struct ifaddrs *addrs; Err codevoid.de 70 i+ getifaddrs(&addrs); Err codevoid.de 70 i+ Err codevoid.de 70 i+ while (addrs) Err codevoid.de 70 i+ { Err codevoid.de 70 i+ if (addrs->ifa_addr && strcmp(addrs->ifa_name,intf) Err codevoid.de 70 i+ && addrs->ifa_addr->sa_family == AF_INET) Err codevoid.de 70 i+ { Err codevoid.de 70 i+ struct sockaddr * myaddr = addrs->ifa_addr; Err codevoid.de 70 i+ return smprintf("%x", myaddr); Err codevoid.de 70 i+ } Err codevoid.de 70 i+ addrs = addrs->ifa_next; Err codevoid.de 70 i+ } Err codevoid.de 70 i+ freeifaddrs(addrs); Err codevoid.de 70 i+ return smprintf("n/a"); Err codevoid.de 70 i+} Err codevoid.de 70 i Err codevoid.de 70 i // update all values and print statusbar Err codevoid.de 70 i void update() { Err codevoid.de 70 i Err codevoid.de 70 i // date and time (local) Err codevoid.de 70 i char *time = mktimes("%H:%M", tzlocal); Err codevoid.de 70 i- char *date = mktimes("%d.%m.%Y", tzlocal); Err codevoid.de 70 i+ char *date = mktimes("%a %Y-%m-%d", tzlocal); Err codevoid.de 70 i Err codevoid.de 70 i- // date and time (UTC) Err codevoid.de 70 i- char *time_utc = mktimes("%H:%M", "UTC"); Err codevoid.de 70 i- char *date_utc = mktimes("%d.%m.%Y", "UTC"); Err codevoid.de 70 i- Err codevoid.de 70 i- // free disk space (root/home) Err codevoid.de 70 i+ // free disk space Err codevoid.de 70 i char *freehomespace = getfreespace("/home"); Err codevoid.de 70 i+ char *freedataspace = getfreespace("/data"); Err codevoid.de 70 i char *freerootspace = getfreespace("/"); Err codevoid.de 70 i Err codevoid.de 70 i- // low disk space warning Err codevoid.de 70 i- char *warn = "\0"; Err codevoid.de 70 i- if(atoi(freehomespace) < LOW_DISKSPACE_HOME) Err codevoid.de 70 i- warn = " !!! LOW DISK SPACE WARNING @ HOME !!! |"; Err codevoid.de 70 i- if(atoi(freerootspace) < LOW_DISKSPACE_ROOT) Err codevoid.de 70 i- warn = " !!! LOW DISK SPACE WARNING @ ROOT !!! |"; Err codevoid.de 70 i- Err codevoid.de 70 i // display status Err codevoid.de 70 i- setstatus(smprintf("Bat: %s%% | Vol: %s%% | Temp: %sĀ°C (%sRPM) | Load: %s | %s | %s;" Err codevoid.de 70 i- "Network: %s | Address: %s |%s /home: %sMB | /: %sMB", Err codevoid.de 70 i- getbattery(), getvolume(), getcputemp(), getfan(), loadavg(), date, time, Err codevoid.de 70 i- "PowerMate 2.4GHz", "192.168.2.235", warn, freehomespace, freerootspace)); Err codevoid.de 70 i+ setstatus(smprintf( Err codevoid.de 70 i+ "H:%.2fGB D:%.2fGB šŸ”Œ %s%% šŸ”Š %s%% šŸ”„ %sĀ°C šŸ”ƒ %sRPM šŸ“ˆ %s šŸ“† %s @ %s", Err codevoid.de 70 i+ (float)atoi(freehomespace) / 1024, (float)atoi(freedataspace) / 1024, Err codevoid.de 70 i+ getbattery(), getvolume(), getcputemp(), getfan(), loadavg(0), date, Err codevoid.de 70 i+ time)); Err codevoid.de 70 i Err codevoid.de 70 i // free everything up Err codevoid.de 70 i free(time); Err codevoid.de 70 i- free(time_utc); Err codevoid.de 70 i free(date); Err codevoid.de 70 i- free(date_utc); Err codevoid.de 70 i free(freehomespace); Err codevoid.de 70 i free(freerootspace); Err codevoid.de 70 i+ free(freedataspace); Err codevoid.de 70 i } Err codevoid.de 70 i Err codevoid.de 70 i- Err codevoid.de 70 i void sig_handler(int signo) { Err codevoid.de 70 i if (signo == SIGUSR1) Err codevoid.de 70 i update(); Err codevoid.de 70 .