Toda a pilha de entrada do X11 está uma bagunça. Primeiro, você não precisa de nenhuma estrutura de método de entrada especial se estiver 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 de várias teclas, como chaves mortas, requer um método de entrada muito simples. Mas eles são fornecidos pelo libx11 / XKB e funcionam sem nenhuma estrutura adicional de IM. Portanto, é perfeitamente adequado desinstalar todo o ibus, uim, fcitx ou qualquer outro método de entrada que você possua, se não precisar digitar idiomas como chinês ou japonês.
Como você já disse, o Gnome fez do ibus o método de entrada padrão, uma decisão que nem todo mundo estava feliz. Há 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 o suporte ao idioma apropriado (principalmente japonês versus chinês simplificado versus chinês tradicional) ou problemas de desempenho. Como não falo nenhum idioma oriental que precise de uma estrutura especial de mensagens instantâneas, não posso acrescentar nada a esse debate. Mas se você estiver interessado em mais detalhes sobre fcitx vs ibus, você pode querer ler este um pouco datada (2012), mas provavelmente ainda precisa artigo LWN .
No entanto, o fato de 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 de ibus. O uim funciona da mesma maneira. Se você deseja 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 /etc/profile
(ou um arquivo dedicado dentro /etc/profile.d
, respectivamente) ou dentro do seu local ~/.xprofile
. A configuração ~/.bashrc
ou ~/.profile
não garantirá que as linhas sejam executadas ao efetuar login no seu sistema usando um gerenciador de login gráfico como GDM, SDDM, KDM ou LightDM. Se você estiver iniciando sua sessão X usando XDM, Slim ou startx
, precisará inserir essas linhas ~/.xinitrc
.
Se você configurou um método de entrada diferente do ibus, acesse as configurações do Gnome posteriormente e verifique se as configurações relacionadas ao ibus estão desabilitadas, especialmente os 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 desinstale 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 motivos de suporte herdado. Não há nenhuma razão real para você querer usar o XIM hoje em dia sobre qualquer um desses dois. A única razão pela qual você deseja definir GTK_IM_MODULE="xim"
é substituir as configurações ComposeKey codificadas pelo GTK .
Para responder sua outra pergunta: Eu não acho que exista realmente uma maneira de detectar qual método de entrada está ativo no momento, exceto olhando as variáveis de ambiente ou sabendo quais mensagens instantâneas estão instaladas no seu sistema. Se GTK_IM_MODULE
não estiver definido, o GTK seleciona um IM interno com base nas configurações em /etc/gtk-2.0/gtk.immodules
. O GTK 3.0 parece em /usr/lib/gtk-3.0/3.0.0/immodules.cache
que é gerado por gtk-query-immodules-3.0
.
A razão pela qual GTK_IM_MODULE
é definida como xim
é, provavelmente, alguns em algum lugar definição variável disperso em /etc/profile
, /etc/profile.d/*
ou qualquer outro dos seus arquivos shell RC locais ou globais. Sinta-se à vontade para desarmar ou substituir essa variável, se achar necessário.
No entanto, de acordo com este comentário no relatório de bug do Gnome, presumo que o valor configurado via gsettings
substitua o valor definido GTK_IM_MODULE
para aplicativos ativados pelo DBus. Então, pelo menos, seus aplicativos Gnome provavelmente estão usando gtk-im-context-simple
no momento, o que significa efetivamente o comportamento padrão (ou seja, sem ibus ou qualquer outro IM dedicado).
gsettings
não segfault em mim sempre que eu tento fazer xD nada (mesmo --version segfaults !!)