web-dev-qa-db-fra.com

Comprendre et configurer différentes méthodes de saisie

J'utilise Trisquel GNU/Linux 7.0 LTS avec GNOME 3 Flashback Environnement.

J'ai entendu parler de trois méthodes d'entrée différentes, à savoir. ibus, xim et uim. Et il semble que ibus soit préinstallé sur mon système.

$ 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

En faisant face à ce problème, j'ai appris à installer uim et à configurer avec GTK_IM_MODULE="uim" à ~/.profile. Récemment, j'ai supprimé uim et supprimé GTK_IM_MODULE="uim" ligne de ~/.profile. Mais pour surmonter this bug, je prévois de me débarrasser de ibus maintenant.

Sans installer de méthode d'entrée supplémentaire (par exemple, nouvelle installation de Trisquel), echo $GTK_IM_MODULE sorties xim Donc, je suis confus parce que la méthode d'entrée par défaut est ibus, alors pourquoi $GTK_IM_MODULE disant xim?

Puis-je apt-get remove ibus? ou devrais-je d'abord installer uim puis supprimer ibus? Je veux aussi savoir quelle méthode d'entrée fonctionne actuellement ibus ou xim? Et quelle est la bonne façon de définir la méthode de saisie (c'est-à-dire GTK_IM_MODULE="uim" à ~/.profile)?

D'ailleurs, j'ai trouvé un schéma de configuration:

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

Brièvement/largement, j'ai besoin d'aide pour comprendre l'installation/la suppression et la configuration de différentes méthodes d'entrée:

  • Comment savoir quelle méthode d'entrée est actuellement active?
  • Comment installer et configurer différentes méthodes d'entrée? (devrais-je en retirer un autre?)
23
Pandya

L'ensemble de la pile d'entrée X11 est un gâchis. Tout d'abord, vous n'avez pas besoin d'un cadre de méthode d'entrée spécial si vous tapez simplement des caractères latins ou des séquences de composition à plusieurs caractères telles que définies par la disposition de votre clavier XKB. À strictement parler, toutes les séquences à touches multiples, telles que les touches mortes, nécessitent une méthode de saisie très simple. Mais ils sont fournis par libx11/XKB et fonctionnent sans aucune infrastructure de messagerie instantanée supplémentaire. Il est donc parfaitement possible de désinstaller tous les ibus, uim, fcitx ou toute autre méthode d'entrée que vous avez si vous n'avez pas besoin de taper des langues telles que le chinois ou le japonais.

Comme vous l'avez déjà dit, Gnome a fait d'ibus la méthode d'entrée par défaut, une décision dont tout le monde n'était pas satisfait. Beaucoup de gens préfèrent fcitx (qui semble être la valeur par défaut pour la plupart des distributions KDE) à ibus pour plusieurs raisons: que ce soit un support de langue approprié (principalement japonais vs chinois simplifié vs chinois traditionnel) ou des problèmes de performances. Comme je ne parle aucune langue orientale qui a besoin d'un cadre de messagerie instantanée spécial, je ne peux vraiment rien ajouter à ce débat. Mais si vous êtes intéressé par plus de détails sur fcitx vs ibus, vous voudrez peut-être lire cette version légèrement datée (2012), mais probablement toujours exacte article LWN .

Cependant, le fait que ibus soit l'IM par défaut pour Gnome ne le rend pas obligatoire. Vous pouvez utiliser n'importe quelle autre méthode d'entrée que vous aimez ou aucune. La configuration IM se fait via des variables d'environnement. Mais sauf lorsque vous utilisez uniquement des applications GTK + (ce dont je doute), vous devez définir plus que simplement GTK_IM_MODULE. La bonne façon de définir une méthode de saisie est la suivante:

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

en cas de fcitx ou

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

en cas d'ibus. uim fonctionne de la même manière. Si vous souhaitez désactiver explicitement une méthode de saisie, utilisez ces paramètres:

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

Une chaîne vide fonctionne également.

Vous pouvez définir ces variables à l'échelle du système dans /etc/profile (ou un fichier dédié dans /etc/profile.d, respectivement) ou à l'intérieur de votre ~/.xprofile. Le paramétrer dans ~/.bashrc ou ~/.profile ne garantit pas que les lignes seront exécutées lors de la connexion à votre système à l'aide d'un gestionnaire de connexion graphique tel que GDM, SDDM, KDM ou LightDM. Si vous démarrez votre session X en utilisant XDM, Slim ou startx, vous devez mettre ces lignes dans ~/.xinitrc.

Si vous avez configuré une méthode de saisie autre que ibus, accédez ensuite aux paramètres Gnome et assurez-vous que tous les paramètres liés à ibus sont désactivés, en particulier les raccourcis clavier. Sinon, dites à Gnome de ne pas toucher aux paramètres de votre clavier en utilisant:

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

ou désinstallez complètement ibus.

Et qu'en est-il de XIM? XIM est un protocole de méthode d'entrée assez obsolète qu'ibus et fcitx implémentent uniquement pour des raisons de support héritées. Il n'y a aucune vraie raison pour laquelle vous voudriez utiliser XIM de nos jours sur l'un de ces deux. La seule raison pour laquelle vous souhaitez définir GTK_IM_MODULE="xim" est à remplacer les paramètres ComposeKey GTK codés en dur .

Pour répondre à votre autre question: je ne pense pas qu'il y ait vraiment un moyen de détecter quelle méthode de saisie est active pour le moment, sauf pour regarder les variables d'environnement ou savoir quels messages instantanés sont installés sur votre système. Si GTK_IM_MODULE n'est pas défini, GTK sélectionne une messagerie instantanée intégrée sur la base des configurations dans /etc/gtk-2.0/gtk.immodules. GTK 3.0 regarde dans /usr/lib/gtk-3.0/3.0.0/immodules.cache qui est généré par gtk-query-immodules-3.0.

La raison pour laquelle GTK_IM_MODULE est défini sur xim est probablement une définition de variable parasite quelque part dans /etc/profile, /etc/profile.d/* ou tout autre de vos fichiers Shell RC locaux ou globaux. N'hésitez pas à désactiver ou remplacer cette variable si vous en ressentez le besoin.

Cependant, selon cela Commentaire de rapport de bogue Gnome Je suppose que la valeur configurée via gsettings remplace la valeur définie dans GTK_IM_MODULE pour les applications activées par DBus. Donc, au moins, vos applications Gnome utilisent probablement gtk-im-context-simple pour le moment, ce qui signifie effectivement un comportement standard (c'est-à-dire pas d'ibus ou de tout autre MI dédié).

53
Janek Bevendorff