Пытаюсь добавить раскладку клавиатуры для латиноамериканского испанского языка на IBus для Debian Bulleye в MATE, но получаю только испанский язык

Пытаюсь добавить раскладку клавиатуры для латиноамериканского испанского языка на IBus для Debian Bulleye в MATE, но получаю только испанский язык

Я использую Debian 11 Bullseye для AMD64 на ноутбуке HP Pavillion Touch 14-N009LA, использую 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, ируководство Arch Linux для IBus.

В предыдущем руководстве предлагалось сгенерировать испанскую локаль для моей системы, что я и сделал, раскомментировав локали es-MXи /etc/locale.genзапустив locale-gen. После этого я перезагрузил систему. Это не сработало.

Есть ли еще идеи, как использовать раскладку латиноамериканского испанского языка в IBus для Debian Bullseye?

решение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::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 &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-setupили ibus engine, установите макет на тот, который вы создали ранее. На этом этапе он должен работать.

Надеюсь, это вам подойдет. :)

решение2

Я только что удалил все клавиатуры изНастройки Ibusи затем выполните команду:setxkbmap латамв терминале.

Связанный контент