aboutsummaryrefslogtreecommitdiff
path: root/.i3-blocks/blocks/keymap
diff options
context:
space:
mode:
Diffstat (limited to '.i3-blocks/blocks/keymap')
-rwxr-xr-x.i3-blocks/blocks/keymap27
1 files changed, 27 insertions, 0 deletions
diff --git a/.i3-blocks/blocks/keymap b/.i3-blocks/blocks/keymap
new file mode 100755
index 0000000..f25ee98
--- /dev/null
+++ b/.i3-blocks/blocks/keymap
@@ -0,0 +1,27 @@
+#!/bin/bash
+
+KEYMAP_DIRECTORY='/usr/share/kbd/keymaps'
+
+# Aprrently localectl status does not update on keymap change. However, setxkbmap does.
+XKB_OUTPUT=$(setxkbmap -query)
+VC_KEYMAP=$(echo "${XKB_OUTPUT}" | grep "layout" | awk -F ':' '{print $2}' | tr -d ' ')
+VC_VARIANT=$(echo "${XKB_OUTPUT}" | grep "variant" | awk -F ':' '{print $2}' | tr -d ' ')
+
+# Keymap has not been specific, so it's not configured properly
+if [[ "${VC_KEYMAP}" == "" ]]; then
+ exit 1
+fi
+
+KEYMAP_FILE="${VC_KEYMAP}*"
+
+if [[ "${VC_VARIANT}" != "" ]]; then
+ KEYMAP_FILE="${KEYMAP_FILE}${VC_VARIANT}*"
+fi
+
+KEYMAP_NAME=$(basename $(dirname $(find ${KEYMAP_DIRECTORY} -name "${KEYMAP_FILE}")))
+
+if [[ "${KEYMAP_NAME}" ]]; then
+ echo "${KEYMAP_NAME}"
+ echo "${KEYMAP_NAME}"
+ echo ""
+fi \ No newline at end of file