下一页 上一页 目录

4. 在 Linux 下调整键盘

4.1 简介

有两个程序可以配置您的键盘:一个用于控制台:loadkeys,另一个用于 XFree:xkbd

要在 Linux 下安装法语键盘,请根据您的键盘类型输入以下行之一

        loadkeys tables-clavier/fr/fr-latin9.map
        loadkeys tables-clavier/qc/qc-latin1.map
        loadkeys tables-clavier/cn/cn-latin1.map
        loadkeys tables-clavier/be/be-latin9.map
        loadkeys tables-clavier/sf/sf-latin1.map
        loadkeys tables-clavier/usx/usx-latin1.map
        loadkeys tables-clavier/usx/usx-happy-hacking-latin9.map

4.2 注意 stty!

对于本 HOWTO 中推荐的 latin 9 表格,无论对于 linux-console 还是 X window,都不再使用

        stty erase ^H

        stty erase ^?

“stty erase”实际上仅用于在按键返回的代码与用于删除字符的 erase 功能之间建立对应关系。

此处提供的表格运行正常,因此不需要 stty erase,这尤其会扰乱它们的正常运行!

因此,请从命令解释器 “shell” 的初始化文件中删除这些行,例如 .bashrc、.bash_profile 或 .tcshrc。

4.3 将这些修改设置为启动时的默认值

通常,loadkeys 在启动时由脚本执行;例如在 /etc/rc.d/init.d/keytable/etc/rc.d/rc.localinit.d/keytablerc.keymap 中。

命令

        find /etc/rc.d -type f | xargs grep loadkeys

将为您提供启动 loadkeys 的文件的确切名称;然后您只需编辑它,以便您的修改在每次启动时都被考虑在内。

RedHat 和 Debian 发行版是例外:默认键盘表在 RedHat 中定义在 /etc/sysconfig/keyboard 中,在 Debian 中定义在 /etc/kbd/config 中。

因此,在您发行版特有的文件中,将相关的键盘表替换为正确的表格,例如 fr-latin9.map(根据您的键盘型号)

您应该将您使用的表格的副本放在您的发行版查找键盘表格的目录中;通常,对于 RedHat 是 /usr/lib/kbd/keymaps/i386/azerty/,对于 Debian 是 /usr/share/kbd/keymaps/i386/azerty/。

因此,转到下载 压缩包,将其保存在您的  / 目录中,然后使用以下命令解压:

        tar -xzvf francophones-howto.tgz

这将创建一个  /french 目录:进入该目录,然后键入

        cp tables-clavier/linux-console/fr-latin9.map /usr/lib/kbd/keytables/i386/azerty/

要显示 latin9 字符,您必须执行 “字体” 部分的说明。

4.4 字体

如果您使用 console-tools-1998.08.11.tar.gz,您可以将 “setfont” 替换为 “consolechars”:这些程序用于在 linux 控制台中加载字体。

        setfont /usr/lib/kbd/consolefonts/xxxE-NN.psf.gz

我建议您使用以下字体,原因将在下文详述

        setfont /usr/lib/kbd/consolefonts/lat9-16u.psf.gz

我不建议使用 “lat1” 文件,它们不支持欧元或其他法语字符。

您还会找到 “.uni” 文件,这些文件仅对创建字体或使用 unicode 的用户有用:它们确定字体中字符的 “图形” 与所述字符的代码之间的对应关系,在 unicode 的示例中,同一个图形可能对应于多个代码。

对于现成的字体,您可以使用 “-u 文件.uni” 选项强制进行这种对应关系。

如果您坚持安装它们,请以相同的方式将所有以 “lat9” 开头并以 “.uni” 结尾的文件复制到 /usr/lib/kbd/consoletrans 目录,使用以下命令:

    cp lat9*.uni /usr/lib/kbd/consoletrans

通常,setfont 在启动时由脚本执行;例如在 /etc/rc.d/init.d/keytable/etc/rc.d/rc.localinit.d/keytablerc.keymap 中。

命令

        find /etc/rc.d -type f | xargs grep setfont

将为您提供启动 setfont 的文件的确切名称;然后您只需编辑它,以便您的修改在每次启动时都被考虑在内...

RedHat 和 Debian 发行版是例外:默认字体在 RedHat 中定义在 /etc/sysconfig/i18n 中,在 Debian 中定义在 /etc/kbd/config 中。

/etc/sysconfig/i18n 中添加以下形式的行

        SYSFONT=xxxE-NN.psf

我建议您使用 lat9-16u.psf 字体或其等效字体 lat0-16.psf,它们默认安装在大多数发行版上,通常以 “.gz” 后缀压缩。

[ 添加关于如何安装字体的说明 ]

“一种字体,多种字体” 部分将为您提供有关可用字体的更多详细信息。

4.5 旧版本

如果在加载键盘表时遇到类似于以下的错误消息

        (guylhem@victis:guylhem)$ loadkeys fr-latin9.map
        Loading /usr/lib/kbd/keytables/fr-latin9.map
        unknown keysym 'dead_cedilla'
        /usr/lib/kbd/keytables/fr-latin9.map:67: parse error
        syntax error in map file
        key bindings not changed

这意味着您的 kbd 版本(loadkeys 程序依赖于它)太旧了:您需要获取程序的更新版本。

曾经并且仍然存在键盘表的版本,适用于那些既不想要死键也不想要重音符号的人,但是这些版本目前正在过时,因为绝大多数程序现在都支持这些著名的死键和重音字符。

此外,本 HOWTO 提供的表格允许您使用死键,或者如果程序拒绝它们,则可以不用它们,这两种情况都已考虑在内

4.6 法语 latin9 键盘的特定改进

就这样,您可以在 Linux 控制台模式下输入 latin 9 文本了!

仅修改了 2 个键

a) 平方/立方

它现在用于 oe/OE 连字;在 AltGr 中,您可以找到法式引号。

平方和立方分别仍然可以通过 AltGr (ù) 和 Alt Gr(*) 访问,引号也可以通过 AltGr (w) 和 AltGr (x) 直接访问,根据应用于法语 AZERTY 标准的 ISO 9995 第 3 部分标准。

总结一下

b) 美元 / 英镑 / 国际货币符号

鉴于国际货币符号在 ISO 8859-15 编码标准中不再可用,它已被欧元的百分之一分割单位取代:分,因此可以在 AltGr ($) 中使用。

在以前的版本中,美元和英镑(外币)已被移位,以便为欧元和分(我们的货币)腾出空间。

EURO WORKSHOP 的官方建议允许进行此类修改,但与 AZERTY 标准相悖:如果 AltGr (e) 位置在键盘上已被占用,则欧元的放置位置留给程序员自由选择。

自 1992 年以来,AltGr (e) 用于输入 “ê” 在 Linux 下,但面对拥有键盘的用户(欧元符号丝印在 AltGr (e) 上)的合理抗议,我不得不将 ê 移动到 AltGr + Shift ($)。

很抱歉打破了 “linux 传统”,以保持与 AZERTY 标准和 EURO WORKSHOP 官方建议的兼容性!

总结一下

4.7 对于其他 latin9 键盘

欧元和分分别添加到 AltGr (e) 和 AltGr (c) 中。

因此,添加了 AltGr 键;要将这些功能与任何键盘表一起使用,只需在您的国家表格之后加载 other-latin9.map 即可。

法语键盘的大部分改进已由外部作者移植到国家键盘。

但是,我没有每个键盘型号,也无法详细解释所有这些修改;因此,稍后将由其他作者添加特定部分。

4.8 在所有情况下

“Home”、“End”、“Delete” 和 “BackSpace” 已得到更正,“Windows” 键已正确定义,用于在虚拟控制台之间切换。

添加了 “Composes”(由 compose 键(默认为 “ImprÉcran” 或 “Print Screen”)作为前缀的序列),但这对于用户来说是透明的。

例如


下一页 上一页 目录