#!/bin/sh layout=$(setxkbmap -query | grep "layout" | awk '{print $NF}') #| grep -q 'ru$' && $(setxkbmap de ; notify-send -u low 'SXHKD' 'Set keymap to german') || $(setxkbmap de ru ; notify-send -u low 'SXHKD' 'Set keymap to russian') variant=$(setxkbmap -query | grep "variant" | awk '{print $NF}') echo $variant case "$1" in toggle) if [ "$layout" = "de" -a "$variant" = "nodeadkeys" ] then setxkbmap de && notify-send -u low 'SXHKD' 'Set keymap to german' elif [ "$layout" = "de" -a "$variant" = "" ] then setxkbmap de ru && notify-send -u low 'SXHKD' 'Set keymap to russian (german)' elif [ "$layout" = "de" -a "$variant" = "ru" ] then setxkbmap de nodeadkeys && notify-send -u low 'SXHKD' 'Set keymap to german (nodeadkeys)' fi ;; *) cat << EOF keymap: cli script to change the keymap quickly. Allowed options: toggle Loop through the different keymaps all else Print this message EOF esac