# Keyboard Configuration in Console (简体中文)

相关文章

- Keyboard configuration in Xorg
- Extra Keyboard Keys

翻译状态： 本文是英文页面 Keyboard_Configuration_in_Console 的翻译，最后翻译时间：2013-09-19，点击这里可以查看翻译后英文页面的改动。

## 基本配置

虚拟终端的键盘布局、字体和对照表是通过`/etc/vconsole.conf`配置的。kbd软件包提供键盘表文件。`/etc/vconsole.conf` 的示例如下：

    /etc/vconsole.conf

    KEYMAP=us
    FONT=lat9w-16
    FONT_MAP=8859-1_to_uni

注意: `systemd-194` 默认使用内核字体和键盘布局，因此以后不必在上述文件中留下空的 `KEYMAP=` 和 `FONT=` 设置。

还可以通过命令设置键盘布局：

    # localectl set-keymap de

`localectl` 也可以设置X11的键盘布局：

    # localectl set-x11-keymap de

详情参见 `man 1 localectl` 和 `man 5 vconsole.conf`。

## 键盘布局

以下是目前可用的键盘布局的列表。所有可用键盘布局可以在`/usr/share/kbd/keymaps/i386/布局`（布局指“qwerty”、“azerty”、“dvorak”等键盘类型）目录找到。通常说键盘布局时。

Arch亦支持一些不太常见的键盘布局，这些布局文件在`/usr/share/kbd/keymaps/平台`（平台：ppc、mac等）中。

获取键盘布局的更多信息：

    $ less /usr/share/X11/xkb/rules/base.lst

在Xorg图形界面中，可以使用`setxkbmap`即时更改键盘布局：

    $ setxkbmap -layout dvorak

可以通过这个方法修改单独的按键，例如`setxkbmap -option 'compose:caps'`可以将大小写键映射为复合按键，`setxkbmap -option 'compose:rwin'` 可以将右Win键映射为复合按键。

如果这些键盘布局不工作，使用 `find`: `find /usr/share/kbd/keymaps/ -name "*[你需要的键盘布局]*"` 确认该键盘布局文件存在于 `/usr/share/kbd/keymaps/`}}

键盘映射的包里面包含了映射文档：

    $ zless /usr/share/kbd/keymaps/.../.../xx.map.gz

键盘 | 键盘布局设置
--- | ---
Armenian | `KEYMAP=am`
Armenian (Eastern) | `KEYMAP=am -variant eastern`
比利时 | `KEYMAP=be-latin1`
巴西葡萄牙语 | `KEYMAP=br-abnt2`
加拿大法语 | `KEYMAP=cf`
加拿大多语种（仅在AUR提供） | `KEYMAP=ca_multi`
Colemak (US) | `KEYMAP=colemak`
克罗地亚语 | `KEYMAP=croat`
捷克 | `KEYMAP=cz-lat2`
Danish | `KEYMAP=dk`
德沃夏克(Dvorak) | `KEYMAP=dvorak`
芬兰语 | `KEYMAP=fi-latin1`
法语 | `KEYMAP=fr-latin1`
Georgian | `KEYMAP=ge`
德语 | `KEYMAP=de-latin1`
德语 (无死键) | `KEYMAP=de-latin1-nodeadkeys`
Greek | `KEYMAP=gr`
意大利语 | `KEYMAP=it`
立陶宛语 (qwerty) | `KEYMAP=lt.baltic`
挪威语 | `KEYMAP=no-latin1`
波兰语 | `KEYMAP=pl`
葡萄牙语 | `KEYMAP=pt-latin9`
罗马尼亚语 | `KEYMAP=ro_win`
俄语 | `KEYMAP=ru4`
新加坡语 | `KEYMAP=sg-latin1`
斯洛文尼亚语 | `KEYMAP=slovene"`
瑞士语 | `KEYMAP=sv-latin1`
瑞士法语 | `KEYMAP=fr_CH-latin1`
瑞士德语 | `KEYMAP=de_CH-latin1`
西班牙语 Spanish Spaniard | `KEYMAP=es`
拉美西班牙语 | `KEYMAP=la-latin1`
Spanish Dvorak | `KEYMAP=dvorak-es`
土耳其语 | `KEYMAP=tr_q-latin5`
乌克兰语 | `KEYMAP=ua`
英语 | `KEYMAP=uk`

## 配置终端键盘

1. `cd` 到 `/usr/share/kbd/keymaps/i386/qwerty`
2. 将默认键盘 (`us.map.gz`) 复制到新文件`personal.map.gz`
3. `gunzip`解压新布局文件
4. 编辑 `personal.map`，例如：
   - 将右Alt改成和左Alt一样(Emacs)
     将`include "linux-with-alt-and-altgr"` 改成 `include "linux-with-two-alt-keys"`
   - 交换大小写和 Esc (Vim)
     设置 `keycode 1 = Caps_Lock`， `keycode 58 = Escape`
   - 大小写成为 CTRL
     将`keycode 58 = Caps_Lock` 改为 `keycode 58 = Control`
   - 交换大小写与左 CTRL
     设置 `keycode 29 = Caps_Lock`、`keycode 58 = Control`
5. `gzip` 重新压缩文件
6. 在`/etc/vconsole.conf`中修改默认键盘布局，将`KEYMAP=us` 改成 `KEYMAP=personal`
7. 重启后就会使用新设置

Category:

- Keyboards (简体中文)