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:
gcc -o dwmst -lX11 dwmst.c
gcc -o dwmst -lX11 -D OPTION_BATTERY=0 dwmst.c
clean:
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);
/* battery status */
f = fopen("/sys/class/power_supply/BAT0/capacity", "r");
if (f == NULL) {
fprintf(stderr, "dwmst: cannot access battery.\n");
} else {
fgets(bbuffer, 4, f);
strtok(bbuffer, "\n"); /* remove trailing white space */
strcat(bbuffer, "%");
}
fclose(f);
if (OPTION_BATTERY) {
/* battery status */
f = fopen("/sys/class/power_supply/BAT0/capacity", "r");
if (f == NULL) {
fprintf(stderr, "dwmst: cannot access battery.\n");
} else {
fgets(bbuffer, 4, f);
strtok(bbuffer, "\n"); /* remove trailing white space */
strcat(bbuffer, "%");
fclose(f);
}
f = fopen("/sys/class/power_supply/BAT0/status", "r");
if (f == NULL) {
fprintf(stderr, "dwmst: cannot access battery.\n");
} else {
switch(getc(f)) {
case 'D': /* Discharging */
strcat(bbuffer, "-");
break;
case 'C': /* Charging */
strcat(bbuffer, "+");
break;
case 'F': /* Full */
strcat(bbuffer, "=");
f = fopen("/sys/class/power_supply/BAT0/status", "r");
if (f == NULL) {
fprintf(stderr, "dwmst: cannot access battery.\n");
} else {
switch(getc(f)) {
case 'D': /* Discharging */
strcat(bbuffer, "-");
break;
case 'C': /* Charging */
strcat(bbuffer, "+");
break;
case 'F': /* Full */
strcat(bbuffer, "=");
}
fclose(f);
}
}
fclose(f);
/* 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 */
XStoreName(display, DefaultRootWindow(display), status);