Linux: How to Set Different Layouts for 2 Keyboards
Here's, how to set different layouts for 2 physical keyboards.
- First, use
xinput
to identify your keyboards. - Then, use
setxkbmap
to set the layout.
Example:
# Use xinput to find your keyboards. $ xinput ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ SynPS/2 Synaptics TouchPad id=11 [slave pointer (2)] ⎜ ↳ TPPS/2 IBM TrackPoint id=12 [slave pointer (2)] ⎜ ↳ Logitech Performance MX id=14 [slave pointer (2)] ⎜ ↳ E-Signal USB Gaming Keyboard id=16 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Power Button id=6 [slave keyboard (3)] ↳ Video Bus id=7 [slave keyboard (3)] ↳ Sleep Button id=8 [slave keyboard (3)] ↳ Integrated Camera id=9 [slave keyboard (3)] ↳ AT Translated Set 2 keyboard id=10 [slave keyboard (3)] ↳ ThinkPad Extra Buttons id=13 [slave keyboard (3)] ↳ Sennheiser Sennheiser 3D G4ME1 id=15 [slave keyboard (3)] ↳ E-Signal USB Gaming Keyboard id=17 [slave keyboard (3)] # My keyboards are id 10 (laptop integrated) and id 17 (external keyboard). # Now, set my external keyboard to be Swedish layout, and my internal to Dvorak: $ setxkbmap -device 17 se $ setxkbmap -device 10 dvorak
2018-02-13, thanks to Henrik Sjöstrand, https://gist.github.com/hencjo/0710d51c5ba51e0aeb2d905f1e3a38f3