Toda la pila de entrada X11 es un desastre. En primer lugar, no necesita ningún marco de método de entrada especial si solo está escribiendo caracteres latinos o secuencias de composición de varios caracteres según lo definido por su diseño de teclado XKB. Estrictamente hablando, cualquier secuencia de teclas múltiples, como las teclas muertas, requiere un método de entrada muy simple. Pero son proporcionados por libx11 / XKB y funcionan sin ningún marco de mensajería instantánea adicional. Por lo tanto, está perfectamente bien desinstalar todos los ibus, uim, fcitx o cualquier método de entrada que tenga si no necesita escribir idiomas como el chino o el japonés.
Como ya dijiste, Gnome convirtió a ibus en el método de entrada predeterminado, una decisión que no todos estaban contentos. Hay muchas personas que prefieren fcitx (que parece ser el valor predeterminado para la mayoría de las distribuciones de KDE) sobre ibus por varias razones: ya sea soporte de idioma adecuado (principalmente japonés vs. chino simplificado vs. chino tradicional) o problemas de rendimiento. Como no hablo ningún idioma oriental que necesite un marco de mensajería instantánea especial, realmente no puedo agregar nada a ese debate. Pero si está interesado en obtener más detalles sobre fcitx vs ibus, es posible que desee leer este artículo ligeramente actualizado (2012), pero probablemente aún sea preciso en LWN .
Sin embargo, el hecho de que ibus sea el IM predeterminado para Gnome no lo hace obligatorio. Puede usar cualquier otro método de entrada que desee o ninguno. La configuración de IM se realiza mediante variables de entorno. Pero excepto cuando solo usa aplicaciones GTK + (lo cual dudo), debe configurar más que solo GTK_IM_MODULE
. La forma correcta de configurar un método de entrada es:
export GTK_IM_MODULE="fcitx"
export QT_IM_MODULE="fcitx"
export XMODIFIERS="@im=fcitx"
en caso de fcitx o
export GTK_IM_MODULE="ibus"
export QT_IM_MODULE="ibus"
export XMODIFIERS="@im=ibus"
en caso de ibus. uim funciona de la misma manera. Si desea deshabilitar explícitamente cualquier método de entrada, use esta configuración:
export GTK_IM_MODULE="gtk-im-context-simple"
export QT_IM_MODULE="simple"
Una cadena vacía también funciona.
Puede establecer estas variables en todo el sistema /etc/profile
(o en un archivo dedicado dentro /etc/profile.d
, respectivamente) o dentro de su local ~/.xprofile
. Configurarlo ~/.bashrc
o ~/.profile
no garantizará que las líneas se ejecuten al iniciar sesión en su sistema utilizando un administrador de inicio de sesión gráfico como GDM, SDDM, KDM o LightDM. Si está comenzando su sesión X usando XDM, Slim o startx
, necesita poner esas líneas ~/.xinitrc
.
Si configuró un método de entrada que no sea ibus, vaya a la configuración de Gnome luego y asegúrese de que cualquier configuración relacionada con ibus esté desactivada, especialmente cualquier atajo de teclado. Alternativamente, dígale a Gnome que no toque la configuración de su teclado usando:
gsettings set org.gnome.settings-daemon.plugins.keyboard active false
o desinstalar ibus por completo.
¿Y qué hay de XIM? XIM es un protocolo de método de entrada bastante obsoleto que ibus y fcitx implementan solo por razones de soporte heredado. No hay una razón real por la que quiera usar XIM hoy en día sobre cualquiera de esos dos. La única razón por la que desea establecer GTK_IM_MODULE="xim"
es anular la configuración de ComposeKey codificada de GTK .
Para responder a su otra pregunta: no creo que haya realmente una forma de detectar qué método de entrada está activo en este momento, excepto mirar las variables de entorno o saber qué mensajes instantáneos están instalados en su sistema. Si GTK_IM_MODULE
no está configurado, GTK selecciona un IM incorporado sobre la base de las configuraciones en /etc/gtk-2.0/gtk.immodules
. GTK 3.0 se ve en lo /usr/lib/gtk-3.0/3.0.0/immodules.cache
que es generado por gtk-query-immodules-3.0
.
La razón por la cual GTK_IM_MODULE
se establece en xim
es probablemente alguna perdida en alguna definición de la variable en /etc/profile
, /etc/profile.d/*
o cualquier otro de sus archivos shell RC locales o globales. Siéntase libre de desarmar o anular esta variable si siente la necesidad de hacerlo.
Sin embargo, de acuerdo con este comentario del informe de error de Gnome , supongo que el valor configurado mediante gsettings
anula el valor establecido GTK_IM_MODULE
para las aplicaciones activadas por DBus. Entonces, al menos sus aplicaciones Gnome probablemente estén usando gtk-im-context-simple
en este momento, lo que efectivamente significa un comportamiento estándar (es decir, no ibus ni ningún otro IM dedicado).
gsettings
no se desconectó de mí cada vez que trato de hacer algo xD (¡incluso la versión segfaults !!)