Compreendendo e configurando diferentes métodos de entrada

15

Eu uso o Trisquel GNU / Linux 7.0 LTS com o GNOME 3 Flashback Ambiente.

Eu ouvi sobre três diferentes métodos de entrada, a saber ibus , xim e uim . E parece que o ibus está pré-instalado no meu sistema.

$ cat trisquel_7.0_i686.iso.manifest | grep ibus
gir1.2-ibus-1.0 1.5.5-1ubuntu3
ibus 1.5.5-1ubuntu3
ibus-gtk:i386 1.5.5-1ubuntu3
ibus-m17n 1.3.4-3ubuntu1
ibus-table 1.5.0.is.1.5.0.20130419-2
libibus-1.0-5:i386 1.5.5-1ubuntu3
libusb-0.1-4:i386 2:0.1.12-23.3ubuntu1
libusb-1.0-0:i386 2:1.0.17-1ubuntu2
libusbmuxd2 1.0.8-2ubuntu1
libustr-1.0-1:i386 1.0.4-3ubuntu2

Enfrentando este problema , aprendi sobre a instalação do uim e a configuração com GTK_IM_MODULE="uim" at ~/.profile . Recentemente, removi uim e removi GTK_IM_MODULE="uim" linha de ~/.profile . Mas para superar o este erro, estou planejando me livrar de ibus agora.

Sem instalar nenhum método de entrada extra, (digamos nova instalação do Trisquel), echo $GTK_IM_MODULE outputs xim Então, estou confuso porque considerando o método de entrada padrão é ibus , então por que é $GTK_IM_MODULE dizendo xim ?

Também posso apt-get remove ibus ? ou devo instalar uim primeiro e depois remover ibus ? Também quero saber qual método de entrada está funcionando no momento ibus ou xim ? E qual é o caminho certo para definir o método de entrada (ou seja, é GTK_IM_MODULE="uim" para ~/.profile )?

Além disso, encontrei um esquema de gsettings:

$ gsettings get org.gnome.desktop.interface gtk-im-module
'gtk-im-context-simple'

Brevemente / Em geral, preciso de ajuda para entender a instalação / remoção e configuração de diferentes métodos de entrada:

  • Como sei qual método de entrada está ativo no momento?
  • Como faço para instalar e configurar diferentes métodos de entrada? (devo remover outro?)
por Pandya 07.02.2016 / 17:17

1 resposta

27

Toda a pilha de entrada do X11 é uma bagunça. Primeiro de tudo, você não precisa de nenhuma estrutura de método de entrada especial se estiver apenas digitando caracteres latinos ou sequências de composição de vários caracteres, conforme definido pelo layout do teclado XKB. Estritamente falando, qualquer sequência multi-chave, como chaves mortas, requer um método de entrada muito simples. Mas eles são fornecidos pelo libx11 / XKB e funcionam sem qualquer estrutura de IM adicional. Portanto, é perfeitamente correto desinstalar todo o ibus, uim, fcitx ou qualquer método de entrada que você tenha, se não precisar digitar idiomas como chinês ou japonês.

Como você já disse, o Gnome tornou o ibus o método de entrada padrão, uma decisão que nem todos estavam satisfeitos. Existem muitas pessoas que preferem o fcitx (que parece ser o padrão para a maioria das distribuições do KDE) sobre o ibus por várias razões: seja suporte de idioma apropriado (principalmente japonês vs. simplificado versus chinês tradicional) ou problemas de desempenho. Como eu não falo nenhuma língua oriental que precisa de um framework especial para mensagens instantâneas, não posso realmente acrescentar nada a esse debate. Mas se você está interessado em mais detalhes sobre o fcitx vs ibus, você pode querer ler este artigo do LWN um pouco datado (2012), mas provavelmente ainda preciso (em inglês). .

No entanto, o fato de o ibus ser o IM padrão do Gnome não o torna obrigatório. Você pode usar qualquer outro método de entrada que desejar ou nenhum. A configuração do IM é feita através de variáveis de ambiente. Mas, exceto quando você estiver usando apenas aplicativos GTK + (o que duvido), você deve definir mais do que apenas GTK_IM_MODULE . A maneira correta de definir um método de entrada é:

export GTK_IM_MODULE="fcitx"
export QT_IM_MODULE="fcitx"
export XMODIFIERS="@im=fcitx"

no caso de fcitx ou

export GTK_IM_MODULE="ibus"
export QT_IM_MODULE="ibus"
export XMODIFIERS="@im=ibus"

no caso do ibus. uim funciona da mesma maneira. Se você quiser desabilitar explicitamente qualquer método de entrada, use estas configurações:

export GTK_IM_MODULE="gtk-im-context-simple"
export QT_IM_MODULE="simple"

Uma string vazia também funciona.

Você pode definir essas variáveis em todo o sistema em /etc/profile (ou um arquivo dedicado dentro de /etc/profile.d , respectivamente) ou dentro de seu local ~/.xprofile . A configuração em ~/.bashrc ou ~/.profile não garante que as linhas sejam executadas ao efetuar login no sistema usando um gerenciador de login gráfico, como GDM, SDDM, KDM ou LightDM. Se você está iniciando sua sessão X usando XDM, Slim ou startx , você precisa colocar essas linhas em ~/.xinitrc .

Se você configurou um método de entrada diferente de ibus, vá para as configurações do Gnome depois e certifique-se de que quaisquer configurações relacionadas ao ibus estejam desabilitadas, especialmente quaisquer atalhos de teclado. Como alternativa, diga ao Gnome para não tocar nas configurações do teclado usando:

gsettings set org.gnome.settings-daemon.plugins.keyboard active false

ou desinstalar o ibus completamente.

Agora, e o XIM? O XIM é um protocolo de método de entrada bastante obsoleto que o ibus e o fcitx implementam apenas por razões de suporte legado. Não há nenhuma razão real pela qual você gostaria de usar o XIM hoje em dia sobre qualquer um desses dois. A única razão pela qual você deseja definir GTK_IM_MODULE="xim" é sobrepor as configurações de ComposeKey codificadas do GTK .

Para responder à sua outra pergunta: Eu não acho que há realmente uma maneira de detectar qual método de entrada está ativo no momento, exceto para observar as variáveis de ambiente ou saber quais mensagens instantâneas estão instaladas em seu sistema. Se GTK_IM_MODULE não estiver definido, o GTK selecionará um IM integrado com base nas configurações em /etc/gtk-2.0/gtk.immodules . O GTK 3.0 olha em /usr/lib/gtk-3.0/3.0.0/immodules.cache que é gerado por gtk-query-immodules-3.0 .

O motivo pelo qual GTK_IM_MODULE está definido como xim é provavelmente alguma definição de variável perdida em algum lugar em /etc/profile , /etc/profile.d/* ou qualquer outro de seus arquivos RC de shell locais ou globais. Sinta-se à vontade para cancelar ou anular essa variável se sentir necessidade de fazê-lo.

No entanto, de acordo com este comentário do relatório de bugs do Gnome , presumo que o valor configurado por meio de gsettings substitui o valor definido em GTK_IM_MODULE para aplicativos ativados pelo DBus. Portanto, pelo menos, os aplicativos do Gnome provavelmente estão usando gtk-im-context-simple no momento, o que significa efetivamente comportamento padrão (ou seja, nenhum ibus ou qualquer outro IM dedicado).

    
por 14.02.2016 / 19:09