我在 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>
到目前为止我只能找到似乎只适用于 Ubuntu 的指南, 和IBus 的 Arch Linux 指南。
前一个指南建议我也许必须为我的系统生成一个西班牙语语言环境,我通过取消注释语言es-MX
环境/etc/locale.gen
然后运行locale-gen
.之后,我重新启动了系统。它不起作用。
关于如何在 Debian Bullseye 的 IBus 上使用拉丁美洲西班牙语布局还有其他想法吗?
答案1
更新。我发现IBus 源中的最新提交黑名单已经实施了吗?默认情况下,所有拉丁美洲布局都被列入黑名单。
这会影响生成过程,生成过程是在构建时使用 Python 脚本完成的,而生成过程又从以下位置获取可用的 X 布局/usr/share/X11/xkb/rules/evdev.xml
:正如该评论明确指出的那样。
实施此限制的确切提交在这儿。至于这样做的原因,老实说超出了我的范围,在这种情况得到妥善解决之前,必须应用我在下面提出的修复方案每次 IBus 更新时(就像声明的那样在之前的回答中)。
我在 Xubuntu 22.04 中遇到了同样的问题,最近使用了一种涉及编辑白名单的解决方法。
尽管有人建议IBus 1.5.23 将包含黑名单,以代替当前使用的白名单,这样添加的引擎就会自动显示为可选择的布局,看来这个功能还没有实现(我现在有1.5.26版本)。
为了使它工作,我做了如下工作:
/usr/share/ibus/component/simple.xml
使用sudo
和您选择的编辑器打开文件。找到
xkb:es::spa
发动机。在我的机器上,它看起来像这样:
<engine>
<name>xkb:es::spa</name>
<language>es</language>
<license>GPL</license>
<author>Peng Huang <[email protected]></author>
<layout>es</layout>
<longname>Spanish</longname>
<description>Spanish</description>
<icon>ibus-keyboard</icon>
<rank>50</rank>
</engine>
找到后,复制
<engine>
标签并将其粘贴到其旁边(作为同级,在同一级别上),然后更改以下标签值:name
, 从xkb:es::spa
到xkb:latam::spa
。layout
, 从es
到latam
。longname
,添加到您选择的任何文本,以便您可以将其与其他布局区分开来。
现在它应该看起来像这样:
<!-- I added this one. vvv -->
<engine>
<name>xkb:latam::spa</name>
<language>es</language>
<license>GPL</license>
<author>logo_writer</author>
<layout>latam</layout>
<longname>Spanish Latam</longname>
<description>Spanish Latam</description>
<icon>ibus-keyboard</icon>
<rank>50</rank>
</engine>
<!-- I added this one. ^^^ -->
<engine>
<name>xkb:es::spa</name>
<language>es</language>
<license>GPL</license>
<author>Peng Huang <[email protected]></author>
<layout>es</layout>
<longname>Spanish</longname>
<description>Spanish</description>
<icon>ibus-keyboard</icon>
<rank>50</rank>
</engine>
添加新引擎后,保存文件。
通过发出命令重新启动 IBus 服务
ibus restart
。IBus 重新启动后,键入
ibus list-engine
并检查新引擎是否出现在列表中。
在我的机器上,我有以下配置。我添加的那个是Spanish Latam
.
$ ibus list-engine | grep -A 7 Espa
idioma: Español
xkb:es:nodeadkeys:spa - Spanish (no dead keys)
xkb:es:winkeys:spa - Spanish (Windows)
xkb:es:dvorak:spa - Spanish (Dvorak)
xkb:es:deadtilde:spa - Spanish (dead tilde)
xkb:latam::spa - Spanish Latam
xkb:es:mac:spa - Spanish (Macintosh)
xkb:es::spa - Spanish
- 使用
ibus-setup
或ibus engine
,将布局设置为您之前创建的布局。此时,它应该可以工作。
我希望这对你有用。 :)
答案2
我刚刚删除了所有键盘Ibus 偏好设置然后运行命令:setxkbmap 拉美在终端中。