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 7bf763a0426f1124a7eca8f21255e496e9747ea2 /git/dwmstatus-sdk/commit/7bf763a0426f1124a7eca8f21255e496e9747ea2.gph codevoid.de 70 1parent e591bf9a6df8ae266b612bacec9e407fc9c4c1f7 /git/dwmstatus-sdk/commit/e591bf9a6df8ae266b612bacec9e407fc9c4c1f7.gph codevoid.de 70 hAuthor: Stefan Hagen URL:mailto:sh+git[at]codevoid[dot]de codevoid.de 70 iDate: Sat, 24 Nov 2018 19:50:00 +0100 Err codevoid.de 70 i Err codevoid.de 70 iUpdate 2018-11-24 19:50 OpenBSD/amd64 Err codevoid.de 70 i Err codevoid.de 70 iDiffstat: Err codevoid.de 70 i M dwmstatus.c | 75 +++++++++---------------------- Err codevoid.de 70 i Err codevoid.de 70 i1 file changed, 22 insertions(+), 53 deletions(-) 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@@ -15,6 +15,7 @@ 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@@ -171,55 +172,6 @@ char * readfile(char *base, char *file) { 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 * getbattery(char *base) { Err codevoid.de 70 i- char *co, status; 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 == NULL) Err codevoid.de 70 i- return smprintf(""); 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- if (co == NULL) { Err codevoid.de 70 i- co = readfile(base, "energy_full_design"); Err codevoid.de 70 i- if (co == NULL) Err codevoid.de 70 i- return smprintf(""); Err codevoid.de 70 i- } 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- if (co == NULL) { Err codevoid.de 70 i- co = readfile(base, "energy_now"); Err codevoid.de 70 i- if (co == NULL) Err codevoid.de 70 i- return smprintf(""); Err codevoid.de 70 i- } 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- co = readfile(base, "status"); Err codevoid.de 70 i- if (!strncmp(co, "Discharging", 11)) { Err codevoid.de 70 i- status = '-'; Err codevoid.de 70 i- } else if(!strncmp(co, "Charging", 8)) { Err codevoid.de 70 i- status = '+'; Err codevoid.de 70 i- } else { Err codevoid.de 70 i- status = '?'; Err codevoid.de 70 i- } 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%%%c", ((float)remcap / (float)descap) * 100, status); Err codevoid.de 70 i-} Err codevoid.de 70 i- Err codevoid.de 70 i char * gettemperature(char *base, char *sensor) { Err codevoid.de 70 i char *co; Err codevoid.de 70 i co = readfile(base, sensor); Err codevoid.de 70 it@@ -228,6 +180,23 @@ char * gettemperature(char *base, char *sensor) { 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 i+char * getbattery() Err codevoid.de 70 i+{ Err codevoid.de 70 i+ int fd; Err codevoid.de 70 i+ struct apm_power_info pi; Err codevoid.de 70 i+ Err codevoid.de 70 i+ if ((fd = open("/dev/apm", O_RDONLY)) == -1 || Err codevoid.de 70 i+ ioctl(fd, APM_IOC_GETPOWER, &pi) == -1 || Err codevoid.de 70 i+ close(fd) == -1) Err codevoid.de 70 i+ return smprintf("battery"); Err codevoid.de 70 i+ Err codevoid.de 70 i+ if (pi.battery_state == APM_BATT_UNKNOWN || Err codevoid.de 70 i+ pi.battery_state == APM_BATTERY_ABSENT) Err codevoid.de 70 i+ return smprintf("no battery"); Err codevoid.de 70 i+ 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 Err codevoid.de 70 i // update all values and print statusbar Err codevoid.de 70 i void update() { Err codevoid.de 70 it@@ -248,8 +217,8 @@ void update() { 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 i- // battery = smprintf("%i", getsysctl("hw.acpi.battery.life")); Err codevoid.de 70 i- Err codevoid.de 70 i+ // battery = smprintf("%i", ge tsysctl("hw.acpi.battery.life")); Err codevoid.de 70 i+ Err codevoid.de 70 i // audio volume Err codevoid.de 70 i char *volume = getvolume(); Err codevoid.de 70 i Err codevoid.de 70 it@@ -265,9 +234,9 @@ void update() { 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("Volume: %s | Load: %s | %s | %s;" Err codevoid.de 70 i+ setstatus(smprintf("Battery: %s%% | Volume: %s%% | Load: %s | %s | %s;" Err codevoid.de 70 i "Network: %s | Address: %s |%s /home: %sMB | /: %sMB", Err codevoid.de 70 i- volume, loadavg(), date, time, Err codevoid.de 70 i+ getbattery(), volume, loadavg(), date, time, Err codevoid.de 70 i "PowerMate 2.4GHz", "192.168.2.235", warn, freehomespace, freerootspace)); Err codevoid.de 70 i Err codevoid.de 70 i // free everything up Err codevoid.de 70 .