From 50cca6f6416e37a4e75af486d9b5a1532ce262cc Mon Sep 17 00:00:00 2001 From: Ceda EI Date: Sun, 28 Jul 2019 14:48:02 +0530 Subject: [PATCH] Add xkb_swapper.sh. --- xkb_swapper.sh | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100755 xkb_swapper.sh diff --git a/xkb_swapper.sh b/xkb_swapper.sh new file mode 100755 index 0000000..93d2b0a --- /dev/null +++ b/xkb_swapper.sh @@ -0,0 +1,31 @@ +#!/usr/bin/env bash + +function set_layout() { + echo "Setting layout to $1" + xkbcomp ~/.xkb/$1.xkb $DISPLAY + echo $1 > ~/.cache/xkb-curr-$DISPLAY +} +layouts=(insert normal) +current_layout=$(cat ~/.cache/xkb-curr-$DISPLAY || echo "") + +if [[ $current_layout == "" ]]; then + echo "No current layout found!" + set_layout ${layouts[0]} +fi + +i=0 +while [[ $i -lt ${#layouts[@]} ]]; do + if [[ $current_layout == ${layouts[$i]} ]]; then + new_idx=$(($i+1)) + if [[ $new_idx -eq ${#layouts[@]} ]]; then + set_layout ${layouts[0]} + else + set_layout ${layouts[$new_idx]} + fi + exit + fi + ((i++)) +done + +echo "Current Layout doesn't exist!" +set_layout ${layouts[0]}