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 abbd44de441b7dc0e666dae0c5f162f701d53480 /git/dwmstatus-sdk/commit/abbd44de441b7dc0e666dae0c5f162f701d53480.gph codevoid.de 70 1parent 8d73323fbabab911e9fc12c40d6367c9e762d3a4 /git/dwmstatus-sdk/commit/8d73323fbabab911e9fc12c40d6367c9e762d3a4.gph codevoid.de 70 hAuthor: Stefan Hagen URL:mailto:sh+git[at]codevoid[dot]de codevoid.de 70 iDate: Sun, 3 Jun 2018 12:03:16 +0200 Err codevoid.de 70 i Err codevoid.de 70 iremove unneeded files, add getfreespace() Err codevoid.de 70 i Err codevoid.de 70 iDiffstat: Err codevoid.de 70 i M config.mk | 4 ++-- Err codevoid.de 70 i D dwmstatus-temperature.c | 15 --------------- Err codevoid.de 70 i M dwmstatus.c | 29 +++++++++++++++++++++++++---- Err codevoid.de 70 i D new-acpi-battery.c | 55 ------------------------------- Err codevoid.de 70 i Err codevoid.de 70 i4 files changed, 27 insertions(+), 76 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,9 +20,9 @@ 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 = -g -std=c99 -pedantic -Wall -O0 ${INCS} ${CPPFLAGS} Err codevoid.de 70 i+CFLAGS = -std=c99 -pedantic -Wall -O0 ${INCS} ${CPPFLAGS} Err codevoid.de 70 i #CFLAGS = -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS} Err codevoid.de 70 i-LDFLAGS = -g ${LIBS} Err codevoid.de 70 i+LDFLAGS = ${LIBS} Err codevoid.de 70 i #LDFLAGS = -s ${LIBS} Err codevoid.de 70 i Err codevoid.de 70 i # Solaris Err codevoid.de 70 1diff --git a/dwmstatus-temperature.c b/dwmstatus-temperature.c /git/dwmstatus-sdk/file/dwmstatus-temperature.c.gph codevoid.de 70 it@@ -1,15 +0,0 @@ Err codevoid.de 70 i-/* Err codevoid.de 70 i- * gettemperature("/sys/class/hwmon/hwmon0/device", "temp1_input"); Err codevoid.de 70 i- */ Err codevoid.de 70 i- Err codevoid.de 70 i-char * Err codevoid.de 70 i-gettemperature(char *base, char *sensor) Err codevoid.de 70 i-{ Err codevoid.de 70 i- char *co; Err codevoid.de 70 i- Err codevoid.de 70 i- co = readfile(base, sensor); Err codevoid.de 70 i- if (co == NULL) Err codevoid.de 70 i- return smprintf(""); Err codevoid.de 70 i- return smprintf("%02.0f°C", atof(co) / 1000); Err codevoid.de 70 i-} Err codevoid.de 70 i- Err codevoid.de 70 1diff --git a/dwmstatus.c b/dwmstatus.c /git/dwmstatus-sdk/file/dwmstatus.c.gph codevoid.de 70 it@@ -23,6 +23,15 @@ Err codevoid.de 70 i Err codevoid.de 70 i #include Err codevoid.de 70 i Err codevoid.de 70 i+// getfreespace Err codevoid.de 70 i+#include Err codevoid.de 70 i+#include Err codevoid.de 70 i+ Err codevoid.de 70 i+ Err codevoid.de 70 i+ Err codevoid.de 70 i+// configuration Err codevoid.de 70 i+#define UPDATE_INTERVAL 1 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 i #define BTOMB(x) ((x)*1048576 Err codevoid.de 70 it@@ -56,6 +65,14 @@ smprintf(char *fmt, ...) Err codevoid.de 70 i return ret; Err codevoid.de 70 i } Err codevoid.de 70 i Err codevoid.de 70 i+/* Free space by path */ Err codevoid.de 70 i+char * Err codevoid.de 70 i+getfreespace(const char *path) { Err codevoid.de 70 i+ struct statfs vfs; Err codevoid.de 70 i+ statfs(path, &vfs); Err codevoid.de 70 i+ return smprintf("%ld", (vfs.f_bavail * vfs.f_bsize) / 1024 / 1024); Err codevoid.de 70 i+} Err codevoid.de 70 i+ Err codevoid.de 70 i /* Use FreeBSDs sysctl to retrieve information Err codevoid.de 70 i * Sysctl may return different types, so you want Err codevoid.de 70 i * to call the appropriate smprintf() in main(); Err codevoid.de 70 it@@ -244,9 +261,12 @@ void update() { Err codevoid.de 70 i char *cpufreq; Err codevoid.de 70 i char *battery; Err codevoid.de 70 i char *volume; Err codevoid.de 70 i+ char *freespace; Err codevoid.de 70 i Err codevoid.de 70 i // cpu temperature Err codevoid.de 70 i cputemp = smprintf("%i", ZEROCTOC((int)getsysctl("hw.acpi.thermal.tz0.temperature"))); Err codevoid.de 70 i+ Err codevoid.de 70 i+ // cpu frequency Err codevoid.de 70 i cpufreq = smprintf("%i", getsysctl("dev.cpu.0.freq")); Err codevoid.de 70 i Err codevoid.de 70 i // battery Err codevoid.de 70 it@@ -259,15 +279,16 @@ void update() { Err codevoid.de 70 i // TBD Err codevoid.de 70 i Err codevoid.de 70 i // free disk space (root/home) Err codevoid.de 70 i- // TBD Err codevoid.de 70 i+ freespace = smprintf("%s", getfreespace("/")); Err codevoid.de 70 i Err codevoid.de 70 i // date and time Err codevoid.de 70 i datetime = mktimes("%d.%m.%Y %H:%M", tzberlin); Err codevoid.de 70 i Err codevoid.de 70 i // assemble and display Err codevoid.de 70 i- status = smprintf(" LOAD:%s TEMP:%s°C FREQ:%sMhz BAT:%s%% VOL:%s | %s ", loadavg(), cputemp, cpufreq, battery, volume, datetime); Err codevoid.de 70 i+ status = smprintf("/:%sMB LOAD:%s TEMP:%s°C FREQ:%sMhz BAT:%s%% VOL:%s | %s ", freespace, loadavg(), cputemp, cpufreq, battery, volume, datetime); Err codevoid.de 70 i setstatus(status); Err codevoid.de 70 i Err codevoid.de 70 i+ free(freespace); Err codevoid.de 70 i free(volume); Err codevoid.de 70 i free(battery); Err codevoid.de 70 i free(cputemp); Err codevoid.de 70 it@@ -296,10 +317,10 @@ main(void) Err codevoid.de 70 i Err codevoid.de 70 i // register signal handler Err codevoid.de 70 i if (signal(SIGUSR1, sig_handler) == SIG_ERR) Err codevoid.de 70 i- fprintf(stderr, "Err: can't register SIGUSR1\n"); Err codevoid.de 70 i+ fprintf(stderr, "Err: can't register update signal (SIGUSR1)\n"); Err codevoid.de 70 i Err codevoid.de 70 i // update status Err codevoid.de 70 i- for (;;sleep(60)) { Err codevoid.de 70 i+ for (;;sleep(UPDATE_INTERVAL)) { Err codevoid.de 70 i update(); Err codevoid.de 70 i } Err codevoid.de 70 i Err codevoid.de 70 1diff --git a/new-acpi-battery.c b/new-acpi-battery.c /git/dwmstatus-sdk/file/new-acpi-battery.c.gph codevoid.de 70 it@@ -1,55 +0,0 @@ Err codevoid.de 70 i-char * Err codevoid.de 70 i-readfile(char *base, char *file) Err codevoid.de 70 i-{ Err codevoid.de 70 i- char *path, line[513]; Err codevoid.de 70 i- FILE *fd; Err codevoid.de 70 i- Err codevoid.de 70 i- memset(line, 0, sizeof(line)); Err codevoid.de 70 i- Err codevoid.de 70 i- path = smprintf("%s/%s", base, file); Err codevoid.de 70 i- fd = fopen(path, "r"); Err codevoid.de 70 i- if (fd == NULL) { Err codevoid.de 70 i- perror("fopen"); Err codevoid.de 70 i- exit(1); Err codevoid.de 70 i- } Err codevoid.de 70 i- free(path); Err codevoid.de 70 i- Err codevoid.de 70 i- if (fgets(line, sizeof(line)-1, fd) == NULL) { Err codevoid.de 70 i- perror("fgets"); Err codevoid.de 70 i- exit(1); Err codevoid.de 70 i- } Err codevoid.de 70 i- fclose(fd); Err codevoid.de 70 i- Err codevoid.de 70 i- return smprintf("%s", line); Err codevoid.de 70 i-} Err codevoid.de 70 i- Err codevoid.de 70 i-char * Err codevoid.de 70 i-getbattery(char *base) Err codevoid.de 70 i-{ Err codevoid.de 70 i- char *co; Err codevoid.de 70 i- int descap, remcap; Err codevoid.de 70 i- Err codevoid.de 70 i- descap = -1; Err codevoid.de 70 i- remcap = -1; Err codevoid.de 70 i- Err codevoid.de 70 i- co = readfile(base, "present"); Err codevoid.de 70 i- if (co[0] != '1') { Err codevoid.de 70 i- free(co); Err codevoid.de 70 i- return smprintf("not present"); Err codevoid.de 70 i- } Err codevoid.de 70 i- free(co); Err codevoid.de 70 i- Err codevoid.de 70 i- co = readfile(base, "charge_full_design"); Err codevoid.de 70 i- sscanf(co, "%d", &descap); Err codevoid.de 70 i- free(co); Err codevoid.de 70 i- Err codevoid.de 70 i- co = readfile(base, "charge_now"); Err codevoid.de 70 i- sscanf(co, "%d", &remcap); Err codevoid.de 70 i- free(co); Err codevoid.de 70 i- Err codevoid.de 70 i- if (remcap < 0 || descap < 0) Err codevoid.de 70 i- return smprintf("invalid"); Err codevoid.de 70 i- Err codevoid.de 70 i- return smprintf("%.0f", ((float)remcap / (float)descap) * 100); Err codevoid.de 70 i-} Err codevoid.de 70 i- Err codevoid.de 70 .