您有两个工具可以配置您的键盘。在纯 Linux 环境下,您可以使用 loadkeys
,而在 X11 环境下,您可以使用 xmodmap
。
要尝试 loadkeys
,请输入以下两个命令之一
loadkeys /usr/lib/kbd/keytables/dk.map或
loadkeys /usr/lib/kbd/keytables/dk-latin1.map
这两个键位表之间的区别在于 dk-latin1.map
启用了“死键”,而 dk.map
没有启用。“死键”在 死键和重音字符 章节中进行了解释。程序 loadkeys
和键位表是软件包 kbd-0.??.tar.gz
的一部分,该软件包(版本号 ?? 可能不同)在所有 Linux 发行版中都可用。
通常,loadkeys
在启动时从 /etc/rc.d/
目录下的脚本之一执行。详细信息因发行版而异。
(非丹麦语读者请注意:对其他语言的支持以类似的方式启用。对于西班牙语键盘等,请使用 es.map
。)
直到并包括 v3.1.2 版本的 XFree86 通常会遵循纯 Linux 使用的键位表,但您可以使用 xmodmap
修改 X11 环境下的键盘行为。如果您在家目录中有一个名为 .Xmodmap
的文件,X11 初始化过程通常会自动运行此命令。
在 XFree86 v3.2 及更高版本中,您应该在您的 /etc/XF86Config
(或 /etc/X11/XF86Config
) 文件中包含以下 Keyboard
部分(如果您选择丹麦语键位表,它应该由程序 XF86Setup
自动生成)
Section "Keyboard" Protocol "Standard" XkbRules "xfree86" XkbModel "pc101" XkbLayout "dk" XkbVariant "nodeadkeys" EndSection
目前唯一可用的键盘变体是 "nodeadkeys"
,但死键仍然可以工作。有关此方面的更多信息,请参见 死键和重音字符 章节。
对于直到并包括 v3.1.2 版本的 XFree86,您应该编辑文件 /etc/XF86Config
(或 /etc/X11/XF86Config
) 并确保以下行
RightAlt ModeShift出现在
Keyboard
部分中。通常,您可以通过取消注释相应的行来完成此操作。在 XFree86 v3.1.2 中,您可以使用 AltGr
作为 RightAlt
的别名。如果您选择丹麦语键盘支持,AltGr
键应该在 XFree86 v3.2 及更高版本中按预期工作。
您无法在 Metro-X 服务器下输入字符 ``{'' (<AltGr><7>)
, ``['' (<AltGr><8>)
, ``]'' (<AltGr><9>)
和 ``}'' (<AltGr><0>)
。此错误已在服务器的 3.1.5 和 3.1.8 版本中观察到。
要纠正此错误,您必须编辑文件 /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 ] };
死键是指在您按下另一个键之前不会输入任何内容的键。如果您使用 dk-latin1.map
键位表,波浪号和元音变音符号在纯 Linux 环境下默认是这样的。这也是 Microsoft Windows 下这些键的默认行为。
loadkeys dk.map
/etc/XF86Config
(或 /etc/X11/XF86Config
) 文件的 Keyboard
部分XkbVariant "nodeadkeys"
loadkeys dk-latin1.map
GNU emacs
19.30 版本(或更高版本)就是这样一个应用程序的例子。某些 X11 应用程序仍然不支持此输入法。最终这种情况可能会改善,但在那之前,您可以黑入您的应用程序或向程序作者提交礼貌的错误报告。后一种方法通常是最有效的。有关需要做什么的建议,请参阅 X11 编程技巧 章节。接下来,您将需要将一个键映射到 Multi_key
(Compose
)。如果您使用 XFree86 v3.1.2,Scroll Lock
键很可能已经被映射为此键(您可以使用程序 xev
验证这一点),并且通过取消注释 XFree86 配置文件(通常是 /etc/XF86Config
或 /etc/X11/XF86Config
)的 Keyboard
部分中的相应行,可以轻松地映射右 Control
键。如果您希望使用其他键,或者如果您使用的是 XFree86 v3.2 或更高版本并想更改默认设置,您应该将类似以下内容放入您的 ~/.Xmodmap
文件中keycode 78 = Multi_key示例中的语句将
Scroll Lock
定义为 Compose
键。XFree86 v3.2 及更高版本中的默认 Compose
键是 <Shift><AltGr>
。XFree86 v3.2 及更高版本在标准丹麦语键盘上不提供对死键的支持。要获得此支持,您必须更改文件 /usr/X11R6/lib/X11/xkb/symbols/dk
的 xkb_symbols "basic"
部分中的几行。以下行key <AE12> { [ acute, grave ], [ bar, dead_ogonek ] }; key <AD12> { [ diaeresis, asciicircum ], [ asciitilde, dead_macron ] };应更改为
key <AE12> { [ dead_acute, dead_grave ], [ bar, dead_ogonek ] }; key <AD12> { [ dead_diaeresis, dead_circumflex ], [ dead_tilde, dead_macron ] };在进行这些更改后,您可以通过删除
/etc/XF86Config
(或 /etc/X11/XF86Config
) 文件的 Keyboard
部分中的以下行来获得对死键的支持。XkbVariant "nodeadkeys"(非丹麦语读者请注意:在
/usr/X11R6/lib/X11/xkb/symbols
中有许多本地键盘映射文件。)可用的击键组合在 /usr/X11R6/lib/X11/locale/iso8859-1/Compose
中列出。该文件中存在一些您可能想要修复的错误<dead_tilde> <space> : "~" tilde应更改为
<dead_tilde> <space> : "~" asciitilde
asciicircum
拼写错误为 asciicirum
丹麦语键位表中存在一个错误,导致默认情况下美元符号通过 <Shift><4>
而不是 <AltGr><4>
访问。如果这对您来说是一个问题,请确定您在启动时加载的键位表。您可以通过在 /etc/rc.d/
目录中查找或简单地注意启动时发生的事情来找到它。在我的计算机上,相关的键位表称为 /usr/lib/kbd/keytables/dk-latin1.map
。您可以通过将键位表文件中的以下行更改为
keycode 5 = four dollar dollar为
keycode 5 = four currency dollar然后按照 加载键位表 章节中的描述(重新)加载键位表来解决此问题。货币(丹麦语:``soltegn'')是丹麦语键盘上默认的
<Shift><4>
字符。这应该可以修复 X11 和纯 Linux 的问题。
在一些较旧的发行版中,``ø'' 和 ``Ø'' 显示为 cent 和 yen。在键位表文件中找到键码 40 的行,并将其从
keycode 40 = cent yen为
keycode 40 = +oslash +Ooblique
此错误似乎已在 kbd-0.88.tar.gz
和更新版本中修复。
加号是使 Caps Lock
正常工作所必需的。``Oslash'' 可以用作 kbd-0.90.tar.gz
和更新版本中 ``Ooblique'' 的别名。
您可以在 此站点 阅读有关键盘配置的更多信息。