RAK*_*AKK 3 debian keyboard-layout ibus
我在 HP Pavillion Touch 14-N009LA 笔记本电脑上运行适用于 AMD64 的 Debian 11 Bullseye,使用 IBus 和 MATE 作为桌面环境,最近从 Buster 升级。在升级点版本之前,我可以将拉丁美洲键盘布局与 IBus 结合使用;之后,我就不能再这样做了。
MATE 控制中心上的键盘首选项应用程序显示拉丁美洲西班牙语布局,我可以在终端上手动设置它setxkbmap latam(在 IBus 启动并替换它之前),但在 IBus 上我只看到“西班牙语”键盘,对应于西班牙人的西班牙语键盘,具有不同的标点符号键;没有“拉丁美洲”或类似选项。
运行ibus list-engine给出了以下输出,其中我看不到拉丁美洲西班牙语布局,并且没有匹配latam或类似的内容:
<irrelevant languages omitted>
language: Spanish
xkb:es:nodeadkeys:spa - Spanish (no dead keys)
xkb:es:sundeadkeys:spa - Spanish (Sun dead keys)
xkb:es:winkeys:spa - Spanish (Windows)
xkb:es:dvorak:spa - Spanish (Dvorak)
xkb:es:deadtilde:spa - Spanish (dead tilde)
xkb:es:mac:spa - Spanish (Macintosh)
xkb:es::spa - Spanish
<irrelevant languages omitted>
Run Code Online (Sandbox Code Playgroud)
到目前为止,我只能找到一个似乎只适用于 Ubuntu 的指南,以及IBus 的 Arch Linux 指南。
前一个指南建议我也许必须为我的系统生成一个西班牙语语言环境,我通过取消注释语言es-MX环境/etc/locale.gen然后运行locale-gen. 之后,我重新启动了系统。它不起作用。
关于如何在 Debian Bullseye 的 IBus 上使用拉丁美洲西班牙语布局还有其他想法吗?
更新。我发现IBus 源中的最新提交已经实现了黑名单,并且默认情况下所有拉丁美洲布局都被列入黑名单。
\n这会影响生成过程,该过程是在构建时使用 Python 脚本完成的,而生成过程又从 中获取可用的 X 布局/usr/share/X11/xkb/rules/evdev.xml,正如该注释明确指出的那样。
实施此限制的确切提交位于此处。至于这样做的原因,老实说超出了我的范围,在这种情况得到正确解决之前,每次更新 IBus 时都必须应用我在下面提出的修复方案(如上一个答案中所述)。
\n我在 Xubuntu 22.04 中遇到了同样的问题,最近使用了一种涉及编辑白名单的解决方法。
\n尽管有人建议IBus 1.5.23 将包含一个黑名单,以代替当前使用的白名单,以便添加的引擎将自动显示为可选布局,但似乎此功能尚未实现(我有版本1.5.26 现在)。
\n我为使其发挥作用所做的工作如下:
\n/usr/share/ibus/component/simple.xml使用sudo和您选择的编辑器打开文件。
找到xkb:es::spa发动机。在我的机器上,它看起来像这样:
<engine>\n <name>xkb:es::spa</name>\n <language>es</language>\n <license>GPL</license>\n <author>Peng Huang <shawn.p.huang@gmail.com></author>\n <layout>es</layout>\n <longname>Spanish</longname>\n <description>Spanish</description>\n <icon>ibus-keyboard</icon>\n <rank>50</rank>\n</engine>\nRun Code Online (Sandbox Code Playgroud)\n找到后,复制<engine>标签并将其粘贴到其旁边(作为同级,在同一级别上),然后更改以下标签值:
name, 从xkb:es::spa到xkb:latam::spa。layout, 从es到latam。longname,添加到您选择的任何文本,以便您可以将其与其他布局区分开来。现在它应该看起来像这样:
\n<!-- I added this one. vvv -->\n<engine>\n <name>xkb:latam::spa</name>\n <language>es</language>\n <license>GPL</license>\n <author>logo_writer</author>\n <layout>latam</layout>\n <longname>Spanish Latam</longname>\n <description>Spanish Latam</description>\n <icon>ibus-keyboard</icon>\n <rank>50</rank>\n</engine>\n<!-- I added this one. ^^^ -->\n\n<engine>\n <name>xkb:es::spa</name>\n <language>es</language>\n <license>GPL</license>\n <author>Peng Huang <shawn.p.huang@gmail.com></author>\n <layout>es</layout>\n <longname>Spanish</longname>\n <description>Spanish</description>\n <icon>ibus-keyboard</icon>\n <rank>50</rank>\n</engine>\nRun Code Online (Sandbox Code Playgroud)\n添加新引擎后,保存文件。
\n通过发出命令重新启动 IBus 服务ibus restart。
IBus 重新启动后,键入ibus list-engine并检查新引擎是否出现在列表中。
在我的机器上,我有以下配置。我添加的那个是Spanish Latam.
$ ibus list-engine | grep -A 7 Espa\nidioma: Espa\xc3\xb1ol\n xkb:es:nodeadkeys:spa - Spanish (no dead keys)\n xkb:es:winkeys:spa - Spanish (Windows)\n xkb:es:dvorak:spa - Spanish (Dvorak)\n xkb:es:deadtilde:spa - Spanish (dead tilde)\n xkb:latam::spa - Spanish Latam\n xkb:es:mac:spa - Spanish (Macintosh)\n xkb:es::spa - Spanish\nRun Code Online (Sandbox Code Playgroud)\nibus-setup或ibus engine,将布局设置为您之前创建的布局。此时,它应该可以工作。我希望这对你有用。:)
\n| 归档时间: |
|
| 查看次数: |
2437 次 |
| 最近记录: |