Нашли решение:
setxkbmap -print | grep xkb_symbols | awk '{print $4}' | awk -F"+" '{print $2}'
, чтобы узнать текущий макет. Следующее позволяет установить его:
setxkbmap -layout us
setxkbmap -layout ru
и это переключает его:
if [ `setxkbmap -print | grep xkb_symbols | awk '{print $4}' | awk -F"+" '{print $2}'` = us ] ;then echo "EN"; echo "changing to RU..."; setxkbmap ru ; else echo "RU"; echo "Changing to US..."; setxkbmap us ; fi
Если вы используете gxneur - он не справляется со всем этим, но стандартный индикатор макета Kubuntu работает нормально.