summaryrefslogtreecommitdiff
path: root/bin/extra/cycleKB
diff options
context:
space:
mode:
Diffstat (limited to 'bin/extra/cycleKB')
-rwxr-xr-xbin/extra/cycleKB11
1 files changed, 11 insertions, 0 deletions
diff --git a/bin/extra/cycleKB b/bin/extra/cycleKB
new file mode 100755
index 0000000..5674786
--- /dev/null
+++ b/bin/extra/cycleKB
@@ -0,0 +1,11 @@
+#!/usr/bin/env bash
+keyboards_file="/home/aluc/bin/keyboards.txt"
+cur_keyboard="$(setxkbmap -print | grep "xkb_symbols" | cut -f 2 -d "+")"
+# Get line number of match
+line="$(awk "/${cur_keyboard}/ {print NR}" "${keyboards_file}")"
+lines="$(wc -l "${keyboards_file}" | cut -f 1 -d ' ')"
+# cycle back to first line
+[[ "$line" == "$lines" ]] && line=1 || ((line++))
+new_keyboard="$(sed -n "${line}p" "${keyboards_file}")"
+setxkbmap "${new_keyboard}"
+dunstify "cycleKB" "keyboard: <b>${new_keyboard}</b>"