The keyboard settings are stored in /etc/default/keyboard file. It's provided by keyboard-configuration package (it's a part of the console-setup source package), and other packages use this information in order to configure the keyboard on the console or in X Window System.
You can change your keyboard settings by:
# dpkg-reconfigure keyboard-configuration # service keyboard-setup restart
As usual, it will prompt you for the model of keyboard (what the keyboard *is*), and then for the keyboard layout (what the keys should *do*). Use this tool to change your keyboard map, e. g. from QWERTY to QWERTZ or to Dvorak, or for non-English layouts.
Restarting the keyboard-setup service should be sufficient, otherwise a reboot might be required for the new settings to work.
You can also edit /etc/default/keyboard manually, here's an example:
# KEYBOARD CONFIGURATION FILE # Consult the keyboard(5) manual page. XKBMODEL="pc105" XKBLAYOUT="us,de,fr,ua,ru" XKBVARIANT="" XKBOPTIONS="grp:alt_shift_toggle" BACKSPACE="guess"
XKBMODEL is a keyboard model variable (look at a /usr/share/X11/xkb/rules/base.lst (plain text) or /usr/share/X11/xkb/rules/base.xml (XML) for a full list);
- XKBLAYOUT variable contains a list of used layouts;
"grp:alt_shift_toggle" sets a layout switching key combination (<Alt>+<Shift>).
- keyboard(5) man page.
Keyboard layout (keymap) section in debian-reference ("dpkg-reconfigure --priority=low xserver-xorg" command suggested by the page linked above does not work in Squeeze. You may try to add something like "setxkbmap us,ru -option grp:ctrl_shift_toggle" into ~/.xsessionrc instead).
How to set keyboard layout in initramfs
The appropriate section of /etc/initramfs-tools/initramfs.conf needs to be changed to have a localized keyboard layout at boot time:
# # KEYMAP: [ y | n ] # # Load a keymap during the initramfs stage. # KEYMAP=y
# update-initramfs -u
How to enable USB keyboard in initramfs
The initramfs-tools must include the usbhid module and its dependencies for USB keyboard support at boot time. Either the configuration file /etc/initramfs-tools/conf.d/driver-policy must include most modules, or they will have to be specified in another file:
# # MODULES: [ most | netboot | dep | list ] # # most - Add most filesystem and all harddrive drivers. # # dep - Try and guess which modules to load. # # netboot - Add the base modules, network modules, but skip block devices. # # list - Only include modules from the 'additional modules' list # MODULES=most
If the configuration above was not set to include most modules, then the necessary modules have to be specified in the file /etc/initramfs-tools/modules:
# USB keyboard at boot usbcore uhci_hcd ehci_hcd usbhid
# update-initramfs -u
How to switch a keyboard layout in X11 / graphical desktop environment
Use your favorite desktop keyboard layout switcher applet. You can also switch the layout from the terminal, e. g.:
$ setxkbmap de $ setxkbmap fr $ setxkbmap us