Difference between revisions of "KEYMAP"
(United Kingdom keymap isn't "uk", it's "gb".) |
(add into related category) |
||
(19 intermediate revisions by 14 users not shown) | |||
Line 1: | Line 1: | ||
[[Category:Internationalization]] | [[Category:Internationalization]] | ||
+ | [[Category:Keyboards]] | ||
+ | [[de:KEYMAP]] | ||
[[es:KEYMAP]] | [[es:KEYMAP]] | ||
+ | [[fr:KEYMAP]] | ||
+ | [[ja:KEYMAP]] | ||
[[pt:KEYMAP]] | [[pt:KEYMAP]] | ||
[[tr:Klavye_düzeni]] | [[tr:Klavye_düzeni]] | ||
[[zh-CN:KEYMAP]] | [[zh-CN:KEYMAP]] | ||
− | The | + | ==Introduction and basic configuration== |
+ | |||
+ | The virtual console (keyboard mapping, console font, and console map) is configured in {{ic|/etc/vconsole.conf}}. It defines what keymap the keyboard is in the virtual consoles. Keytable files are provided by the {{Pkg|kbd}} package. An example {{ic|/etc/vconsole.conf}} is shown below: | ||
+ | |||
+ | {{hc|/etc/vconsole.conf|2= | ||
+ | KEYMAP=us | ||
+ | FONT=lat9w-16 | ||
+ | FONT_MAP=8859-1_to_uni}} | ||
+ | |||
+ | {{Note|As of {{pkg|systemd}}-194, the built-in ''kernel'' font and the ''us'' keymap are used if {{ic|1=KEYMAP=}} and {{ic|1=FONT=}} are empty or not set.}} | ||
+ | |||
+ | Another way to set the keyboard mapping (keymap) is using {{ic|localectl}}: | ||
+ | |||
+ | # localectl set-keymap de | ||
+ | |||
+ | {{ic|localectl}} can also be used to set the X11 keymap: | ||
+ | |||
+ | # localectl set-x11-keymap de | ||
+ | |||
+ | See {{ic|man 1 localectl}} and {{ic|man 5 vconsole.conf}} for details. | ||
+ | |||
+ | == Keyboard layouts == | ||
− | |||
This is the list of known keymap settings to work for the corresponding keyboard layouts. Most keymaps can be found in the {{ic|/usr/share/kbd/keymaps/i386/''layout''}} (''layout''=qwerty, azerty, dvorak, etc.) directory. | This is the list of known keymap settings to work for the corresponding keyboard layouts. Most keymaps can be found in the {{ic|/usr/share/kbd/keymaps/i386/''layout''}} (''layout''=qwerty, azerty, dvorak, etc.) directory. | ||
Less common but nonetheless useful keymaps for Arch Linux are found in the {{ic|/usr/share/kbd/keymaps/''architecture''}} (''architecture''=mac, sun, etc.) directory. | Less common but nonetheless useful keymaps for Arch Linux are found in the {{ic|/usr/share/kbd/keymaps/''architecture''}} (''architecture''=mac, sun, etc.) directory. | ||
− | + | You can find more info about your keyboard layout with: | |
+ | {{ic|less /usr/share/X11/xkb/rules/base.lst}} | ||
− | {{Note|If these keymaps do not work for you, make sure the keymap file exists in {{ic|/usr/share/kbd/keymaps/}} using {{ | + | {{Note| |
+ | * In an X session, you can use setxkbmap to instantly apply keyboard layout: {{ic|setxkbmap -layout dvorak}} | ||
+ | * You can also use this method to modify single keys. This command would assign the compose functionality to the caps lock key: {{ic|setxkbmap -option 'compose:caps'}}. This allows for example to write umlauts easily. Example for Umlaut A: {{ic| CAPSLOCK, ", A}} -> Ä. You can also configure the right Windows key as a Compose key with {{ic|setxkbmap -option 'compose:rwin'}} | ||
+ | * If these keymaps do not work for you, make sure the keymap file exists in {{ic|/usr/share/kbd/keymaps/}} using {{ic|find}}: {{ic|find /usr/share/kbd/keymaps/ -name "*[your desired keymap]*"}} | ||
+ | * You can see some instructions on how to use some keymaps in their respective files with: {{ic|zless /usr/share/kbd/keymaps/.../.../xx.map.gz}}}} | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 19: | Line 48: | ||
! Keyboard | ! Keyboard | ||
! Keymap setting | ! Keymap setting | ||
+ | |- | ||
+ | |- | ||
+ | |Armenian | ||
+ | |{{ic|KEYMAP<nowiki>=</nowiki>am}} | ||
+ | |- | ||
+ | |Armenian (Eastern) | ||
+ | |{{ic|KEYMAP<nowiki>=</nowiki>am -variant eastern}} | ||
|- | |- | ||
|Belgian | |Belgian | ||
− | |{{ | + | |{{ic|KEYMAP<nowiki>=</nowiki>be-latin1}} |
|- | |- | ||
|Brazilian Portuguese | |Brazilian Portuguese | ||
− | |{{ | + | |{{ic|KEYMAP<nowiki>=</nowiki>br-abnt2}} |
|- | |- | ||
|Canadian-French | |Canadian-French | ||
− | |{{ | + | |{{ic|KEYMAP<nowiki>=</nowiki>cf}} |
|- | |- | ||
− | |Canadian Multilingual (''in [[ | + | |Canadian Multilingual (''in [[AUR]]'') |
− | |{{ | + | |{{ic|KEYMAP<nowiki>=</nowiki>ca_multi}} |
|- | |- | ||
|Colemak ''(US)'' | |Colemak ''(US)'' | ||
− | |{{ | + | |{{ic|KEYMAP<nowiki>=</nowiki>colemak}} |
|- | |- | ||
|Croatian | |Croatian | ||
− | |{{ | + | |{{ic|KEYMAP<nowiki>=</nowiki>croat}} |
|- | |- | ||
|Czech | |Czech | ||
− | |{{ | + | |{{ic|KEYMAP<nowiki>=</nowiki>cz-lat2}} |
+ | |- | ||
+ | |Danish | ||
+ | |{{ic|KEYMAP<nowiki>=</nowiki>dk}} | ||
|- | |- | ||
|Dvorak | |Dvorak | ||
− | |{{ | + | |{{ic|KEYMAP<nowiki>=</nowiki>dvorak}} |
+ | |- | ||
+ | |Finnish | ||
+ | |{{ic|KEYMAP<nowiki>=</nowiki>fi-latin1}} | ||
|- | |- | ||
|French | |French | ||
− | |{{ | + | |{{ic|KEYMAP<nowiki>=</nowiki>fr-latin1}} |
+ | |- | ||
+ | |Georgian | ||
+ | |{{ic|KEYMAP<nowiki>=</nowiki>ge}} | ||
|- | |- | ||
|German | |German | ||
− | |{{ | + | |{{ic|KEYMAP<nowiki>=</nowiki>de-latin1}} |
|- | |- | ||
|German ''(no dead keys)'' | |German ''(no dead keys)'' | ||
− | |{{ | + | |{{ic|KEYMAP<nowiki>=</nowiki>de-latin1-nodeadkeys}} |
+ | |- | ||
+ | |Greek | ||
+ | |{{ic|KEYMAP<nowiki>=</nowiki>gr}} | ||
|- | |- | ||
|Italian | |Italian | ||
− | |{{ | + | |{{ic|KEYMAP<nowiki>=</nowiki>it}} |
+ | |- | ||
+ | |Japanese | ||
+ | |{{ic|KEYMAP<nowiki>=</nowiki>jp106}} | ||
|- | |- | ||
|Lithuanian ''(qwerty)'' | |Lithuanian ''(qwerty)'' | ||
− | |{{ | + | |{{ic|KEYMAP<nowiki>=</nowiki>lt.baltic}} |
|- | |- | ||
|Norwegian | |Norwegian | ||
− | |{{ | + | |{{ic|KEYMAP<nowiki>=</nowiki>no-latin1}} |
|- | |- | ||
|Polish | |Polish | ||
− | |{{ | + | |{{ic|KEYMAP<nowiki>=</nowiki>pl}} |
|- | |- | ||
|Portuguese | |Portuguese | ||
− | |{{ | + | |{{ic|KEYMAP<nowiki>=</nowiki>pt-latin9}} |
|- | |- | ||
|Romanian | |Romanian | ||
− | |{{ | + | |{{ic|KEYMAP<nowiki>=</nowiki>ro_win}} |
|- | |- | ||
|Russian | |Russian | ||
− | |{{ | + | |{{ic|KEYMAP<nowiki>=</nowiki>ru4}} |
|- | |- | ||
|Singapore | |Singapore | ||
− | |{{ | + | |{{ic|KEYMAP<nowiki>=</nowiki>sg-latin1}} |
|- | |- | ||
|Slovene | |Slovene | ||
− | |{{ | + | |{{ic|KEYMAP<nowiki>=</nowiki>slovene}} |
|- | |- | ||
|Swedish | |Swedish | ||
− | |{{ | + | |{{ic|KEYMAP<nowiki>=</nowiki>sv-latin1}} |
|- | |- | ||
|Swiss-French | |Swiss-French | ||
− | |{{ | + | |{{ic|KEYMAP<nowiki>=</nowiki>fr_CH-latin1}} |
|- | |- | ||
|Swiss-German | |Swiss-German | ||
− | |{{ | + | |{{ic|KEYMAP<nowiki>=</nowiki>de_CH-latin1}} |
+ | |- | ||
+ | |Spanish Spaniard | ||
+ | |{{ic|KEYMAP<nowiki>=</nowiki>es}} | ||
|- | |- | ||
− | |Spanish | + | |Spanish Latin American |
− | |{{ | + | |{{ic|KEYMAP<nowiki>=</nowiki>la-latin1}} |
|- | |- | ||
− | |Spanish | + | |Spanish Dvorak |
− | |{{ | + | |{{ic|KEYMAP<nowiki>=</nowiki>dvorak-es}} |
|- | |- | ||
|Turkish | |Turkish | ||
− | |{{ | + | |{{ic|KEYMAP<nowiki>=</nowiki>tr_q-latin5}} |
|- | |- | ||
|Ukrainian | |Ukrainian | ||
− | |{{ | + | |{{ic|KEYMAP<nowiki>=</nowiki>ua}} |
|- | |- | ||
|United Kingdom | |United Kingdom | ||
− | |{{ | + | |{{ic|KEYMAP<nowiki>=</nowiki>uk}} |
|} | |} | ||
− | ==Configuring the | + | == Configuring the console keymap == |
− | #{{ic|cd | + | # {{ic|cd /usr/share/kbd/keymaps/i386/qwerty}}. |
− | #Copy your default keymap ({{ic|us.map.gz}}) to a new file {{ic|personal.map.gz}} | + | # Copy your default keymap ({{ic|us.map.gz}}) to a new file {{ic|personal.map.gz}}. |
− | #{{ic|gunzip}} the new map file | + | # {{ic|gunzip}} the new map file. |
− | #Edit {{ic|personal.map}} using your favorite editor. Examples: | + | # Edit {{ic|personal.map}} using your favorite editor. Examples: |
− | #*'''Make the Right Alt key same as Left Alt key (Emacs)'''<br>change the line {{ic|include "linux-with-alt-and-altgr"}} to {{ic|include "linux-with-two-alt-keys"}} | + | #* '''Make the Right Alt key same as Left Alt key (Emacs)'''<br>change the line {{ic|include "linux-with-alt-and-altgr"}} to {{ic|include "linux-with-two-alt-keys"}}. |
− | #*'''Swap CapsLock with Escape (Vim)'''<br>make {{ic|keycode 1 <nowiki>=</nowiki> Caps_Lock}} and {{ic|keycode 58 <nowiki>=</nowiki> Escape}} | + | #* '''Swap CapsLock with Escape (Vim)'''<br>make {{ic|keycode 1 <nowiki>=</nowiki> Caps_Lock}} and {{ic|keycode 58 <nowiki>=</nowiki> Escape}}. |
− | #*'''Make CapsLock another Control key'''<br>change the line {{ic|keycode 58 <nowiki>=</nowiki> Caps_Lock}} to {{ic|keycode 58 <nowiki>=</nowiki> Control}} | + | #* '''Make CapsLock another Control key'''<br>change the line {{ic|keycode 58 <nowiki>=</nowiki> Caps_Lock}} to {{ic|keycode 58 <nowiki>=</nowiki> Control}}. |
− | #*'''Swap CapsLock with Left Control key'''<br>make {{ic|keycode 29 <nowiki>=</nowiki> Caps_Lock}} and {{ic|keycode 58 <nowiki>=</nowiki> Control}} | + | #* '''Swap CapsLock with Left Control key'''<br>make {{ic|keycode 29 <nowiki>=</nowiki> Caps_Lock}} and {{ic|keycode 58 <nowiki>=</nowiki> Control}}. |
− | #{{ic|gzip}} the map file | + | # {{ic|gzip}} the map file. |
− | #Change the default keyboard layout file that will be used by editing {{ic|/etc/vconsole.conf}} (you might have to create this file) and changing the line that says {{ic|KEYMAP<nowiki>=</nowiki>us}} to {{ic|KEYMAP<nowiki>=</nowiki>personal}} | + | # Change the default keyboard layout file that will be used by editing {{ic|/etc/vconsole.conf}} (you might have to create this file) and changing the line that says {{ic|KEYMAP<nowiki>=</nowiki>us}} to {{ic|KEYMAP<nowiki>=</nowiki>personal}}. |
− | #Reboot to use your keymap the way nature intended (or run "loadkeys personal") | + | # Reboot to use your keymap the way nature intended (or run "loadkeys personal"). |
Revision as of 03:33, 14 September 2013
Introduction and basic configuration
The virtual console (keyboard mapping, console font, and console map) is configured in /etc/vconsole.conf
. It defines what keymap the keyboard is in the virtual consoles. Keytable files are provided by the kbd package. An example /etc/vconsole.conf
is shown below:
/etc/vconsole.conf
KEYMAP=us FONT=lat9w-16 FONT_MAP=8859-1_to_uni
KEYMAP=
and FONT=
are empty or not set.Another way to set the keyboard mapping (keymap) is using localectl
:
# localectl set-keymap de
localectl
can also be used to set the X11 keymap:
# localectl set-x11-keymap de
See man 1 localectl
and man 5 vconsole.conf
for details.
Keyboard layouts
This is the list of known keymap settings to work for the corresponding keyboard layouts. Most keymaps can be found in the /usr/share/kbd/keymaps/i386/layout
(layout=qwerty, azerty, dvorak, etc.) directory.
Less common but nonetheless useful keymaps for Arch Linux are found in the /usr/share/kbd/keymaps/architecture
(architecture=mac, sun, etc.) directory.
You can find more info about your keyboard layout with:
less /usr/share/X11/xkb/rules/base.lst
- In an X session, you can use setxkbmap to instantly apply keyboard layout:
setxkbmap -layout dvorak
- You can also use this method to modify single keys. This command would assign the compose functionality to the caps lock key:
setxkbmap -option 'compose:caps'
. This allows for example to write umlauts easily. Example for Umlaut A:CAPSLOCK, ", A
-> Ä. You can also configure the right Windows key as a Compose key withsetxkbmap -option 'compose:rwin'
- If these keymaps do not work for you, make sure the keymap file exists in
/usr/share/kbd/keymaps/
usingfind
:find /usr/share/kbd/keymaps/ -name "*[your desired keymap]*"
- You can see some instructions on how to use some keymaps in their respective files with:
zless /usr/share/kbd/keymaps/.../.../xx.map.gz
Keyboard | Keymap setting |
---|---|
Armenian | KEYMAP=am
|
Armenian (Eastern) | KEYMAP=am -variant eastern
|
Belgian | KEYMAP=be-latin1
|
Brazilian Portuguese | KEYMAP=br-abnt2
|
Canadian-French | KEYMAP=cf
|
Canadian Multilingual (in AUR) | KEYMAP=ca_multi
|
Colemak (US) | KEYMAP=colemak
|
Croatian | KEYMAP=croat
|
Czech | KEYMAP=cz-lat2
|
Danish | KEYMAP=dk
|
Dvorak | KEYMAP=dvorak
|
Finnish | KEYMAP=fi-latin1
|
French | KEYMAP=fr-latin1
|
Georgian | KEYMAP=ge
|
German | KEYMAP=de-latin1
|
German (no dead keys) | KEYMAP=de-latin1-nodeadkeys
|
Greek | KEYMAP=gr
|
Italian | KEYMAP=it
|
Japanese | KEYMAP=jp106
|
Lithuanian (qwerty) | KEYMAP=lt.baltic
|
Norwegian | KEYMAP=no-latin1
|
Polish | KEYMAP=pl
|
Portuguese | KEYMAP=pt-latin9
|
Romanian | KEYMAP=ro_win
|
Russian | KEYMAP=ru4
|
Singapore | KEYMAP=sg-latin1
|
Slovene | KEYMAP=slovene
|
Swedish | KEYMAP=sv-latin1
|
Swiss-French | KEYMAP=fr_CH-latin1
|
Swiss-German | KEYMAP=de_CH-latin1
|
Spanish Spaniard | KEYMAP=es
|
Spanish Latin American | KEYMAP=la-latin1
|
Spanish Dvorak | KEYMAP=dvorak-es
|
Turkish | KEYMAP=tr_q-latin5
|
Ukrainian | KEYMAP=ua
|
United Kingdom | KEYMAP=uk
|
Configuring the console keymap
-
cd /usr/share/kbd/keymaps/i386/qwerty
. - Copy your default keymap (
us.map.gz
) to a new filepersonal.map.gz
. -
gunzip
the new map file. - Edit
personal.map
using your favorite editor. Examples:- Make the Right Alt key same as Left Alt key (Emacs)
change the lineinclude "linux-with-alt-and-altgr"
toinclude "linux-with-two-alt-keys"
. - Swap CapsLock with Escape (Vim)
makekeycode 1 = Caps_Lock
andkeycode 58 = Escape
. - Make CapsLock another Control key
change the linekeycode 58 = Caps_Lock
tokeycode 58 = Control
. - Swap CapsLock with Left Control key
makekeycode 29 = Caps_Lock
andkeycode 58 = Control
.
- Make the Right Alt key same as Left Alt key (Emacs)
-
gzip
the map file. - Change the default keyboard layout file that will be used by editing
/etc/vconsole.conf
(you might have to create this file) and changing the line that saysKEYMAP=us
toKEYMAP=personal
. - Reboot to use your keymap the way nature intended (or run "loadkeys personal").