Added keyboard_indicators (Fixes #31)
Aaron Marcher info@nulltime.net
Mon, 16 Jan 2017 12:10:56 +0100
3 files changed,
27 insertions(+),
0 deletions(-)
M
config.def.h
→
config.def.h
@@ -20,6 +20,7 @@ - gid (gid of current user) [argument: NULL]
- hostname [argument: NULL] - ip (ip address) [argument: interface] - kernel_release (uname -r) [argument: NULL] +- keyboard_indicators (caps/num lock indicators) [agrument: NULL] - load_avg (load average) [argument: NULL] - ram_free (free ram in GB) [argument: NULL] - ram_perc (ram usage in percent) [argument: NULL]
M
slstatus.c
→
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);@@ -320,6 +321,30 @@ return smprintf(UNKNOWN_STR);
} return smprintf("%s", udata.release); +} + +static char * +keyboard_indicators(void) +{ + Display *dpy = XOpenDisplay(NULL); + XKeyboardState state; + XGetKeyboardControl(dpy, &state); + + 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(""); + } + + XCloseDisplay(dpy); } static char *