尝试在 MATE 中的 Debian Bulleye 的 IBus 上添加拉丁美洲西班牙语键盘布局,但我只能得到西班牙西班牙语

尝试在 MATE 中的 Debian Bulleye 的 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>

到目前为止我只能找到似乎只适用于 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版本)。

为了使它工作,我做了如下工作:

  1. /usr/share/ibus/component/simple.xml使用sudo和您选择的编辑器打开文件。

  2. 找到xkb:es::spa发动机。在我的机器上,它看起来像这样:

<engine>
    <name>xkb:es::spa</name>
    <language>es</language>
    <license>GPL</license>
    <author>Peng Huang &lt;[email protected]&gt;</author>
    <layout>es</layout>
    <longname>Spanish</longname>
    <description>Spanish</description>
    <icon>ibus-keyboard</icon>
    <rank>50</rank>
</engine>
  1. 找到后,复制<engine>标签并将其粘贴到其旁边(作为同级,在同一级别上),然后更改以下标签值:

    • name, 从xkb:es::spaxkb:latam::spa
    • layout, 从eslatam
    • 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 &lt;[email protected]&gt;</author>
    <layout>es</layout>
    <longname>Spanish</longname>
    <description>Spanish</description>
    <icon>ibus-keyboard</icon>
    <rank>50</rank>
</engine>
  1. 添加新引擎后,保存文件。

  2. 通过发出命令重新启动 IBus 服务ibus restart

  3. 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
  1. 使用ibus-setupibus engine,将布局设置为您之前创建的布局。此时,它应该可以工作。

我希望这对你有用。 :)

答案2

我刚刚删除了所有键盘Ibus 偏好设置然后运行命令:setxkbmap 拉美在终端中。

相关内容