Make battery option optional

This commit is contained in:
Alexander Weidinger
2018-11-25 15:02:50 +01:00
parent 6f64315083
commit c4e9657e1b
2 changed files with 31 additions and 26 deletions

View File

@@ -1,5 +1,5 @@
all: all:
gcc -o dwmst -lX11 dwmst.c gcc -o dwmst -lX11 -D OPTION_BATTERY=0 dwmst.c
clean: clean:
rm -f dwmst rm -f dwmst

55
dwmst.c
View File

@@ -31,36 +31,41 @@ int main(void) {
strftime(tbuffer, sizeof(tbuffer), "%a %b %d %H:%M", timeinfo); strftime(tbuffer, sizeof(tbuffer), "%a %b %d %H:%M", timeinfo);
/* battery status */ if (OPTION_BATTERY) {
f = fopen("/sys/class/power_supply/BAT0/capacity", "r"); /* battery status */
if (f == NULL) { f = fopen("/sys/class/power_supply/BAT0/capacity", "r");
fprintf(stderr, "dwmst: cannot access battery.\n"); if (f == NULL) {
} else { fprintf(stderr, "dwmst: cannot access battery.\n");
fgets(bbuffer, 4, f); } else {
strtok(bbuffer, "\n"); /* remove trailing white space */ fgets(bbuffer, 4, f);
strcat(bbuffer, "%"); strtok(bbuffer, "\n"); /* remove trailing white space */
} strcat(bbuffer, "%");
fclose(f); fclose(f);
}
f = fopen("/sys/class/power_supply/BAT0/status", "r"); f = fopen("/sys/class/power_supply/BAT0/status", "r");
if (f == NULL) { if (f == NULL) {
fprintf(stderr, "dwmst: cannot access battery.\n"); fprintf(stderr, "dwmst: cannot access battery.\n");
} else { } else {
switch(getc(f)) { switch(getc(f)) {
case 'D': /* Discharging */ case 'D': /* Discharging */
strcat(bbuffer, "-"); strcat(bbuffer, "-");
break; break;
case 'C': /* Charging */ case 'C': /* Charging */
strcat(bbuffer, "+"); strcat(bbuffer, "+");
break; break;
case 'F': /* Full */ case 'F': /* Full */
strcat(bbuffer, "="); strcat(bbuffer, "=");
}
fclose(f);
} }
} }
fclose(f);
/* build status */ /* build status */
sprintf(status, "%s | %s", tbuffer, bbuffer); if (OPTION_BATTERY)
sprintf(status, "%s | %s", tbuffer, bbuffer);
else
sprintf(status, "%s", tbuffer);
/* store root window name */ /* store root window name */
XStoreName(display, DefaultRootWindow(display), status); XStoreName(display, DefaultRootWindow(display), status);