Comprender y configurar diferentes métodos de entrada

21

Utilizo Trisquel GNU / Linux 7.0 LTS con GNOME 3 Flashback Environment.

Escuché sobre tres métodos de entrada diferentes, a saber. ibus, ximY uim. Y parece que ibusestá preinstalado en mi 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

Al enfrentar este problema, aprendí sobre la instalación uimy configuración con GTK_IM_MODULE="uim"at ~/.profile. Recientemente eliminé uimy eliminé la GTK_IM_MODULE="uim"línea de ~/.profile. Pero para superar este error, estoy planeando deshacerme de él ibusahora.

Sin instalar ningún método de entrada adicional, (digamos instalación nueva de Trisquel), echo $GTK_IM_MODULEsalidas ximEntonces, estoy confundido porque considerando el método de entrada predeterminado es ibus, entonces ¿por qué $GTK_IM_MODULEdecirlo xim?

También puedo apt-get remove ibus? o debo instalar uimprimero y luego eliminar ibus? También quiero saber qué método de entrada está funcionando actualmente ibuso xim? ¿Y cuál es la forma correcta de establecer el método de entrada (es decir, GTK_IM_MODULE="uim"a ~/.profile)?

Además, encontré un esquema de configuración:

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

Breve / ampliamente Necesito ayuda para comprender la instalación / eliminación y la configuración de diferentes métodos de entrada:

  • ¿Cómo sé qué método de entrada está activo actualmente?
  • ¿Cómo instalo y configuro diferentes métodos de entrada? (¿Debería eliminar otro?)
Pandya
fuente

Respuestas:

45

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 ~/.bashrco ~/.profileno 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_MODULEno 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.cacheque es generado por gtk-query-immodules-3.0.

La razón por la cual GTK_IM_MODULEse establece en ximes 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 gsettingsanula el valor establecido GTK_IM_MODULEpara las aplicaciones activadas por DBus. Entonces, al menos sus aplicaciones Gnome probablemente estén usando gtk-im-context-simpleen este momento, lo que efectivamente significa un comportamiento estándar (es decir, no ibus ni ningún otro IM dedicado).

Janek Bevendorff
fuente
Gran explicación y antecedentes. Ahora si sologsettings no se desconectó de mí cada vez que trato de hacer algo xD (¡incluso la versión segfaults !!)
sqweek
Entonces tengo ibus y xim en mi Ubuntu 18.04. ¿Puedo eliminarlos con seguridad si no tengo intención de escribir en lenguajes CJK?
Suncatcher
Sí, pero no desinstalaría XIM a menos que fuera necesario. Está muy anticuado, pero a veces se usa como base para otras funciones. Entonces, a menos que realmente necesite unos pocos KB, no lo desinstalaría.
Janek Bevendorff