How do I change the "system default" keyboard?
I've tried changing the session keyboard but it doesn't work. If I go
Settings → Settings Manager → Keyboard → Layout (tab at top) → uncheck Use System Defaults → Delete the current keyboard / add a new one
I find that when I log back on the correct keyboard is still not working.
You can change the setting for default system keyboard hardware (e.g. "Generic 105-key keyboard"
to "Generic 101-key keyboard"
) and also the system keyboard layout (e.g. "us-intl"
to "us"
) with the command
sudo dpkg-reconfigure keyboard-configuration
view this file /usr/share/console-setup/KeyboardNames.pl
. In it you'll see a Perl Hash of Hashes:
'us' => {
'Cherokee' => 'chr',
'English (Colemak)' => 'colemak',
'English (Dvorak alternative international no dead keys)' => 'dvorak-alt-intl',
'English (Dvorak international with dead keys)' => 'dvorak-intl',
'English (Dvorak)' => 'dvorak',
'English (Macintosh)' => 'mac',
'English (US, alternative international)' => 'alt-intl',
'English (US, international with dead keys)' => 'intl',
'English (US, with euro on 5)' => 'euro',
'English (classic Dvorak)' => 'dvorak-classic',
'English (international AltGr dead keys)' => 'altgr-intl',
'English (layout toggle on multiply/divide key)' => 'olpc2',
'English (left handed Dvorak)' => 'dvorak-l',
'English (programmer Dvorak)' => 'dvp',
'English (right handed Dvorak)' => 'dvorak-r',
'Russian (US, phonetic)' => 'rus',
'Serbo-Croatian (US)' => 'hbs',
}
Let's say you want
'English (international AltGr dead keys)' => 'altgr-intl',
Instead of
'English (US, international with dead keys)' => 'intl',
Firstly, see that they all fall under us. Now edit /etc/default/keyboard
and change this
XKBMODEL="pc105"
XKBLAYOUT="us"
XKBVARIANT="intl"
XKBOPTIONS=""
to
XKBMODEL="pc105"
XKBLAYOUT="us"
XKBVARIANT="altgr-intl"
XKBOPTIONS=""