X-Git-Url: https://git.xinqibao.xyz/slstatus.git/blobdiff_plain/0d1f19d7779e3b6b3940a6c7aff5935bbbd7971e..b11dd2db0ebfc0b20ef2d5a972f13cf39bdd0b31:/slstatus.c?ds=sidebyside

diff --git a/slstatus.c b/slstatus.c
index 6d2e89e..53e1946 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);
@@ -322,6 +323,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)
 {
@@ -658,9 +682,7 @@ vol_perc(const char *card)
 	}
 
 	close(afd);
-	if (v == 0) {
-		return smprintf("mute");
-	}
+
 	return smprintf("%d%%", v & 0xff);
 }