How to change keyboard layout in i3?
You can use setxkbmap:
setxkbmap -layout us,de
setxkbmap -option 'grp:alt_shift_toggle'
Just change the keyboard layouts us,de to what ever you prefer. If you want i3 to run these commands on startup, just add them to your config file "~/.i3/config" and prepend "exec".
exec "setxkbmap -layout us,de"
exec "setxkbmap -option 'grp:alt_shift_toggle'"
Checkout http://docs.slackware.com/howtos:window_managers:keyboard_layout_in_i3
It indeed seems that everything must be written inside a single command in the i3 config file in order for setxkbmap to work as desired, at least on Arch linux.
Example: English + Czech qwerty keyboard, ALT+SHIFT toggle:
exec "setxkbmap -option 'grp:alt_shift_toggle' -layout us,cz -variant ,qwerty"
For me only the following worked in Manjaro + i3:
exec_always "setxkbmap -model pc104 -layout us,ru,ua -variant ,, -option grp:alt_shift_toggle"
I specified this in ~/.config/i3/config file