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