6. 此 Xmodmap 解决方案如何在各种系统上工作

6.1. SuSE 6.4 和 7.0

6.1.1. 带有 XFree86 版本 3.3.6 和 KDE 2.0 的 SuSE 7.0 (这也适用于 SuSE 6.4)

在您的 bash_profile 中不需要 LANG=language 语句。您可以将 Xmodmap 文件与标准 ISO8859-2 键码定义和 .Xmodmap 文件(不是来自旧版解决方案)一起使用。不幸的是,尽管您可以立即开始使用 ISO8859-2 键码进行书写,但死键无法正常工作,并且 export LANG=language 在此处不起作用,以使这些死键工作。字体也存在一些错误或其他问题 - KDE 2.0(或更旧的 XFree86)无法正确处理 ISO8859-2 字体以及 Xmodmap。旧的 kedit、最新的 GNOME gedit 和 StarOffice 5.2 工作良好(在应用上述 StarOffice 5.2 脚本之后)。

在将 Compose 文件从 /usr/X11R6/lib/X11/locale/iso8859-2/ 复制到 /usr/X11R6/lib/X11/locale/iso8859-1/ 之后,您可以优雅地开始使用死键。这也在 StarOffice 5.2 上进行了测试。

6.2. SuSE 7.0 (Xfree86 3.3.6, KDE 1.x), SuSE 8.0

SuSE 7.0 的工作方式与上述相同。SuSE 8.0 工作正常,没有问题 - 只需在您的 xmodmap 键盘定义上应用 xmodmap 命令,即可开始使用。如果出现问题,在 Yast2 中安装对您国家语言的支持是一个好主意。

6.3. Mandrake Linux 7.2

6.3.1. Mandrake Linux 7.2 - 工作正常

是的,它工作正常 - 我使用了 “kcmshell Personalization/kcmlayout” 命令,该命令位于 菜单中的 “配置” > “KDE” > “个性化” > “键盘布局” 中,并且在我的 .bash_profile 中放入 LANG=language 语句后,StarOffice 立即工作(在将其目录中添加 ISO8859-2 字体后),我只切换了键盘。我选择了捷克斯洛伐克语作为第二语言,并且可以在我的屏幕上用 ISO8859-2 字符书写捷克语。(我使用了用于为 StarOffice 放置 ISO8859-2 字体的脚本)。不幸的是,KDE 2.0 kedit 无法可视化 ISO8859-2 字体,并且在切换键盘并选择 ISO8859-2 字符集后,我看到的是 ??????? 而不是 lcaron、scaron 等,但 *acute 符号(uacute、aacute 等)显示良好。

/usr/X11R6/lib/X11/xkb/symbols 中的映射可以动态修改,但这比修改 Xmodmap 映射更不规范。您可以从面板标志图标切换键盘。

6.3.2. 带有 XFree86 版本 3.3.6 的 Mandrake Linux 7.2

应用标准的 .Xmodmap 键码(scaron、lcaron,而不是 “threequarters” 或 “mu” 等),并发出命令:“xmodmap �/.Xmodmap”,您可以通过按 Scroll Lock 切换键盘来工作(如果您使用我的 Xmodmap 文件;如果您使用其他 Xmodmap 文件,请尝试右 Alt 或 Xmodmap 文件中定义的任何其他键)。

/etc/X11/XF86Config 和 /etc/X11/XF86Config 中的 FontPath 语句不必更改

FontPath "unix/:1"

XFree86 会自动读取您的字体,但我将 ISO8859-2 字体放入 /usr/share/fonts 目录(与 RedHat 中相同)。令人惊讶的是,您不必将 ../ISO8859-2/Compose 文件复制到 ../ISO8859-1 目录,并且死键可以很好地工作。

6.4. Mandrake 8.1

这些发行版工作正常。在 KDE 中,您必须打开菜单:“开始” > “首选项” > “个性化” > “国家和语言”,您将在其中将 “字符集” 从 ISO8859-1 更改为 ISO8859-2(或 ISO8859-X 用于您选择的任何其他语言)。然后,您可以从菜单中选择键盘布局 - “外围设备”,“键盘”(斯洛伐克语包含在数十个其他键盘 XKB 映射中):“开始” > “配置” > “KDE” > “个性化” > “外围设备” > “键盘”,或者您可以选择我的标准 Xmodmap 解决方案。无需编辑其他文件。太棒了!或者,您可以使用 setxkbmap 命令设置键盘(请参阅 FreeBSD 4.4 节)。

6.5. RedHat 5.1、5.2、6.0、6.1 和 6.2 (XFree86 3.3.6 及更旧版本)

此处必须使用旧版解决方案。在您的 bash_profile 中不需要 LANG=language 语句。在这里,“实验性” .Xmodmap 解决方案(“mu” 而不是 “lcaron” 等)有效,您必须将 Compose 文件从 ../IS08859-2 复制到 ISO8859-1 目录,以便死键工作。/etc/X11 中只有一个 XF86Config 文件,其 FontPath 必须包含相关字体的路径。

6.6. RedHat 7.2、RedHat 8.0、Slackware 8.1

RedHat 7.2 的行为与 Mandrake 8.1 相同。RedHat 8.0(带有 KDE 3)工作良好,没有问题 - 您可以立即使用 xmodmap 解决方案,而无需深入系统并更改配置。您不必转到 “首选项” 菜单中的 “外观” 菜单 - 您可以立即应用 xmodmap 解决方案,或者您可以选择在 “首选项” - “外围设备” 菜单中配置(添加)键盘(如果您决定使用 XKB)。您将在面板上放置键盘图标,只需单击它即可在键盘之间切换。Slackware 8.1 的行为与 RedHat 8.0 完全相同,我只需要在 Bash 配置文件中包含 “export= language 命令(XKB 和 Xmodmap 解决方案都适用),以便死键工作。

6.7. FreeBSD 3.1 和 3.2

国际化工作方式与 RedHat 5.1、5.2、6.0、6.1、6.2 相同

6.8. FreeBSD 4.1、4.2、4.3、4.4、4.5

在您的 bash_profile 中不需要 LANG=language 语句。但是您必须将此内容放入 /etc/profile:LANG=cs_CZ.ISO_8859-2; export LANG

FreeBSD 4.1、4.2、4.3、4.4 不使用斯洛伐克语区域设置,因此我们必须在此处使用捷克语。这真的没关系。这取决于 XFree86。由于 FreeBSD 团队对较新版本过于保守,因此他们将 FreeBSD 与旧版本的 XFree86 一起发布。在 FreeBSD 4.1 中,实验性 .Xmodmap 解决方案有效,您必须将 ../ISO8859-2/Compose 文件复制到 ../ISO8859-1 目录才能使死键工作。

6.9. FreeBSD 4.6。

标准 Xmodmap 解决方案工作良好。我认为此版本在安装方面存在一些问题 - 安装系统后,我错过了一些我在安装向导中选择的内容。升级将是一个好主意。

如果您决定运行 setxkbmap(FreeBSD 或 Linux),您可以使用

setxkbmap si

作为来自 X 终端的斯洛文尼亚语命令

setxkbmap se

用于瑞典语

setxkbmap de

用于德语等

代表 XKB 映射的名称的简要概述

am 亚美尼亚键盘

be 比利时语

de 德语

ca 加拿大语

cs 捷克语

dk 丹麦语

es 西班牙语

fi 芬兰语

fr 法语

gb 英国

hu 匈牙利语

is 冰岛语

it 意大利语

jp 日语

no 挪威语

pl 波兰语

pt 葡萄牙语

ro 罗马尼亚语

ru 俄语

se 瑞典语

si 斯洛文尼亚语

6.10. Corel Linux 1.0 和 1.1

与 FreeBSD 3.x 相同 - 必须应用旧版 Xmodmap 解决方案。