How can I change the input keyboard layout while in the console?
Mia Lopez
I need to change the layout of the keyboard while working in the console on Linux. I need to set up English layout as the default for the console. How can I do it?
57 Answers
To change the system-wide keyboard layout, run
sudo dpkg-reconfigure keyboard-configurationor edit the XKBLAYOUT line in /etc/default/keyboard.
To change your keyboard layout fast, just install setxkbmap with:
sudo apt-get install x11-xkb-utilsAfter this you can always change the keyboard layout with:
setxkbmap usTo do this automatically every time, extend your .bashrc with:
echo "setxkbmap us" >> ~/.bashrcNow, open a new console and the US keyboard layout is activated. Don't worry if the small keyboard layout icon in the Ubuntu panel does not change.
2Another way, but I understand it won't last for the next boot:
sudo loadkeys /usr/share/keymaps/i386/qwerty/us.kmap.gzCheck /usr/share/keymaps/i386/ for you keyboard layout and keymaps to what suits you better.
loadkeys us ----it loads US keys but for a single session.
2The very funny could be to switch back... a possible solution is, to make a Bash script (named with symbols of the target language. For instance, англ).
The second trick is to type "setxkbmap us; setxkbmap ru", and then it's possible to use the Bash history to return the main layout to the console.
3On current systemd based systems use localectl (as mentioned by @david-tonhofer):
sudo localectl set-keymap us
sudo localectl set-x11-keymap us,de pc104
localectl status A better hack is to monitor udev and reset it automatically if the keyboard gets disconnected. Even users on laptops might need it, since it might get instantaneously disconnected. I just made a GitHub repository to do this.
1