Tentando adicionar o layout de teclado espanhol latino-americano no IBus para Debian Bulleye no MATE, mas só consigo espanhol espanhol

Tentando adicionar o layout de teclado espanhol latino-americano no IBus para Debian Bulleye no MATE, mas só consigo espanhol espanhol

Estou executando o Debian 11 Bullseye para AMD64 em um laptop HP Pavillion Touch 14-N009LA, usando IBus e MATE como ambiente de desktop, tendo atualizado recentemente do Buster. Antes de atualizar o lançamento pontual, eu poderia usar o layout de teclado latino-americano com IBus; depois, não consigo mais fazer isso.

O aplicativo Keyboard Preferences no MATE Control Center mostra o layout do espanhol latino-americano, e posso configurá-lo manualmente setxkbmap latamem um terminal (antes que o IBus entre em ação e o substitua), mas no IBus sou apresentado apenas ao teclado "espanhol", que corresponde ao teclado espanhol espanhol que possui diferentes teclas de pontuação; não há opção para “latino-americano” ou algo semelhante.

A execução ibus list-engineme dá a seguinte saída, na qual não consigo ver o layout do espanhol latino-americano e nenhuma correspondência latamou algo semelhante:

<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>

Até agora só consegui encontrarum guia que parece se aplicar apenas ao Ubuntu, eo guia Arch Linux para IBus.

O guia anterior sugeriu que talvez eu tivesse que gerar uma localidade em espanhol para o meu sistema, o que fiz descomentando as es-MXlocalidades /etc/locale.gene executando locale-gen. Depois, reiniciei meu sistema. Não funcionou.

Alguma outra idéia de como eu poderia usar o layout espanhol latino-americano no IBus para Debian Bullseye?

Responder1

ATUALIZAR.Eu descobri issoo último commit na fonte IBusa lista negra já foi implementada e quetodos os layouts da América Latina estão na lista negra por padrão.

Isso afeta o processo de geração, que é feito com um script Python em tempo de construção, que por sua vez, origina os layouts X disponíveis em /usr/share/X11/xkb/rules/evdev.xml,como este comentário afirma claramente.

O commit exato no qual esta restrição foi implementadaé aqui. Quanto à razão pela qual isso foi feito, honestamente está além da minha compreensão, e até que esta situação seja devidamente resolvida, a solução que proponho abaixo deve ser aplicadatoda vez que o IBus é atualizado(como declaradonesta resposta anterior).


Enfrentei o mesmo problema no Xubuntu 22.04 e recentemente usei uma solução alternativa que envolve a edição de uma lista de permissões.

Mesmo que tenha sido sugerido queO IBus 1.5.23 incluiria uma lista negra, no lugar da lista branca usada atualmente, para que os mecanismos adicionados apareçam automaticamente como layouts selecionáveis, parece que esse recurso ainda não foi implementado (tenho a versão 1.5.26 no momento).

O que fiz para que funcionasse foi o seguinte:

  1. Abra o arquivo /usr/share/ibus/component/simple.xmlusando sudoe o editor de sua preferência.

  2. Localize o xkb:es::spamotor. Na minha máquina fica assim:

<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. Uma vez encontrada, copie a <engine>tag e cole-a ao lado dela (como irmã, no mesmo nível) e altere os seguintes valores da tag:

    • name, de xkb:es::spapara xkb:latam::spa.
    • layout, de espara latam.
    • longname, para qualquer texto de sua escolha para que você possa distingui-lo de outros layouts.

Agora deve ficar assim:

<!-- 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. Depois que o novo mecanismo for adicionado, salve o arquivo.

  2. Reinicie o serviço IBus, emitindo o comando ibus restart.

  3. Assim que o IBus reiniciar, digite ibus list-enginee verifique se o novo mecanismo aparece na lista.

Na minha máquina, tenho as seguintes configurações. O que eu adicionei é 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. Usando ibus-setupou ibus engine, defina o layout para aquele que você criou anteriormente. Neste ponto, deve funcionar.

Espero que isso funcione pra você. :)

Responder2

Acabei de remover todos os teclados doPreferências do Ibuse então execute o comando:setxkbmap latamno terminal.

informação relacionada