Next Previous Contents

2. 设定键盘

2.1 载入键盘表 (keytable)

你可使用两个工具来设定你的键盘. 在纯 Linux 环境下, 你可以用loadkeys , 而在 X11 下则用 xmodmap.

欲使用 loadkeys 指令, 你可以执行:

loadkeys /usr/lib/kbd/keytables/dk.map 
loadkeys /usr/lib/kbd/keytables/dk-latin1.map

这两个键盘对应表 (keymap) 的差异在于, dk-latin1.map 可以使用死键, 而 dk.map 不行. 死键在 死键和重音字元 中会解释到. loadkeys 和 keymap 都是 Linux 里通行的 kbd-0.??.tar.gz ( ?? 代表不同版本) 包裹中的一部份.

loadkeys 通常是在系统启动时, 从 /etc/rc.d/ 目录下的某一个命令稿 (script) 执行的. 不同的系统和版本作法各不相同.

(注, 给非丹麦语读者: 其他语系的支持也是以类似方法设定的, 例如西班牙语键盘是用 es.map .)

XFree86 从 3.1.2 以上的版本 (包括3.1.2) 通常都使用纯 Linux 环境下的 keymap, 但在 X11 下你可以用 xmodmap 来改变键盘设定. 如果在你的 home 目录下有一个叫 .Xmodmap 的文档, X11 就会在启动时自动替你执行这个指令.

若使用版本 3.2 以上的 XFree86, 在你的 /etc/XF86Config (或 /etc/X11/XF86Config) 文档中, 应有一个Keyboard 区块如下列 ( 如果选择使用丹麦语的 keytable, 一个叫 XF86Setup 的程序应该会自动替你做好这件事) :

Section "Keyboard"
   Protocol        "Standard"
   XkbRules        "xfree86"
   XkbModel        "pc101"
   XkbLayout       "dk"
   XkbVariant      "nodeadkeys"
EndSection

目前只有"nodeadkeys" 是可用的键盘变数, 但你仍可以设定死键. 请参见 死键和重音字元 以得到更多信息.

2.2 在 X11 下使用 AltGr 键

若使用版本 3.1.2 以上的 XFree86 (包括 3.1.2), 你应该修改文档 /etc/XF86Config (或 /etc/X11/XF86Config) 并确定以下这行

RightAlt    ModeShift

出现在 Keyboard 区块中. 通常, 你只需要在适当的地方移去注解符号即可. 在版本 3.1.2 的 XFree86 中, 你可用 AltGr 作为 RightAlt 的别键.

如果你有选择丹麦语的键盘支持, AltGr 键在版本 3.2 以上的 XFree86 应会如预期地发挥作用.

在 Metro-X 下使用 {, [, ] 和 }

在 Metro-X 伺服器下, 你将无法输入 ``{'' (<AltGr><7>), ``['' (<AltGr><8>), ``]'' (<AltGr><9>) 和 ``}'' (<AltGr><0>) 等字元. 这个 bug 会在 3.1.5 和 3.1.8 的伺服器版本中出现.

要修正这个 bug, 你必须修改档名叫作 /usr/X11R6/lib/X11/xkb/symbols/dk 的文档并把以下句子:

key <AE07> {    [               7,           slash      ]       };
key <AE08> {    [               8,       parenleft      ]       };
key <AE09> {    [               9,      parenright      ]       };
key <AE10> {    [               0,           equal      ]       };
改成
key <AE07> {    [               7,           slash      ],
                [       braceleft,        NoSymbol      ]       };
key <AE08> {    [               8,       parenleft      ],
                [     bracketleft,        NoSymbol      ]       };
key <AE09> {    [               9,      parenright      ],
                [    bracketright,        NoSymbol      ]       };
key <AE10> {    [               0,           equal      ],
                [      braceright,        NoSymbol      ]       };

2.3 死键和重音字元

所谓死键, 就是在按下之后, 还必须再按其他键才能够作用的键. 你如果是在纯 Linux 环境下使用 dk-latin1.map keymap, 那颚化符号 (tilde, 译注: 例如西班牙语字母上的~) 和变音 (umlaut, 译注: 字母上加两点) 都是死键. 另外, 在微软视窗作业系统下, 键盘预设也是如此.

移除死键功能

启动死键功能

2.4 使用 $ (钱符号), ø (oslash) 和 Ø (Oslash) 字元

$ (the dollar sign)

丹麦 keymap 中有个 bug 会使钱符号的对应键组合为 <Shift><4>, 而不是 <AltGr><4>. 若你有这个问题, 请查看你在启动系统时载入的是哪个 keymap. 这项设定位于 /etc/rc.d/ 目录下, 或者你也可以在启动系统时注意一下. 在我的电脑上, 我的 keymap 是叫 /usr/lib/kbd/keytables/dk-latin1.map. 你可以改 keymap 文档中的

keycode   5 = four             dollar           dollar          
这一行改成
keycode   5 = four             currency         dollar
然后如 载入 keytable 所述, (重新)载入 keytable.

货币符号 (dansk: ``soltegn'') 在丹麦键盘上的预设是 <Shift><4>.

以上的方法在 X11 和 Linux 环境下应该都能通行.

ø (oslash) 和 Ø (Oslash)

在某些比较旧的系统里, ``ø'' and ``Ø'' 以分 (cent) 或圆 (yen)的形态出现. 在你的 keymap 文档中, 可以找到 keycode 40 的这一行句子:

keycode  40 = cent              yen
你可以把它改为
keycode  40 = +oslash           +Ooblique

此 bug 已在 kbd-0.88.tar.gz 以上的版本中修正.

为了让 Caps Lock 正常运作, 那个 + 符号是必要的. 在 kbd-0.90.tar.gz 或更新的版本中, ``Oslash'' 常用来当作 ``Ooblique'' 的别名.

你可以在 这里得到更多信息.


Next Previous Contents