X-Git-Url: https://git.xinqibao.xyz/slstatus.git/blobdiff_plain/3f976aabc08dd7d4762b0e04f0cbe8550f0e3ced..cceeec0efada64579525b90b30e5597cd24dfc6c:/slstatus.c diff --git a/slstatus.c b/slstatus.c index 89186d6..90b4808 100644 --- a/slstatus.c +++ b/slstatus.c @@ -47,6 +47,7 @@ static char *gid(void); static char *hostname(void); static char *ip(const char *iface); static char *kernel_release(void); +static char *keyboard_indicators(void); static char *load_avg(void); static char *ram_free(void); static char *ram_perc(void); @@ -139,6 +140,8 @@ battery_state(const char *bat) return smprintf("-"); } else if (strcmp(state, "Full") == 0) { return smprintf("="); + } else if (strcmp(state, "Unknown") == 0) { + return smprintf("/"); } else { return smprintf("?"); } @@ -322,6 +325,29 @@ kernel_release(void) return smprintf("%s", udata.release); } +static char * +keyboard_indicators(void) +{ + Display *dpy = XOpenDisplay(NULL); + XKeyboardState state; + XGetKeyboardControl(dpy, &state); + XCloseDisplay(dpy); + + switch (state.led_mask) { + case 1: + return smprintf("c"); + break; + case 2: + return smprintf("n"); + break; + case 3: + return smprintf("cn"); + break; + default: + return smprintf(""); + } +} + static char * load_avg(void) {