#!/bin/bash # Cycle keyboard layout it -> us -> sk(qwerty); "prev" cycles backwards. current=$(setxkbmap -query | awk '/^layout:/ {split($2, a, ","); print a[1]}') if [[ "$1" == "prev" ]]; then case "$current" in it) next=sk ;; us) next=it ;; *) next=us ;; esac else case "$current" in it) next=us ;; us) next=sk ;; *) next=it ;; esac fi if [[ "$next" == "sk" ]]; then setxkbmap -layout sk -variant qwerty else setxkbmap -layout "$next" -variant "" fi