Take the 2-minute tour ×

Now I have

setxkbmap -model acer_laptop -layout lang1,lang2 -variant ,
setxkbmap -option -option grp:caps_toggle

in a startup script. It works well for two languages.

I want to have 4 languages (like as in -layout lang1,lang2,lang3,lang4), hovewer I want Caps Lock to keep on switching between lang1 and lang2 and use some other method to loop thought all input languages.

How to do it? Can I call "setxkbmap" to only set current language (not affecting the Caps Lock cycle) so I can bind it to a keystroke?

share|improve this question

1 Answer 1

up vote 0 down vote accepted

Have bound the following script to a hotkey:

if setxkbmap -query | grep -q lang1,lang2 ; then 
    setxkbmap -model acer_laptop -layout lang3,lang4 -variant , ;
    setxkbmap -model acer_laptop -layout lang1,lang2 -variant , ;
share|improve this answer

Your Answer


