Я использую 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).
Чтобы это заработало, я сделал следующее:
Откройте файл
/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 латамв терминале.