Comprendre et configurer différentes méthodes de saisie

21

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

J'ai entendu parler de trois méthodes d'entrée différentes, à savoir. ibus, ximet uim. Et il semble qu'il ibussoit 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

Face à ce problème, j'ai appris à installer uimet à configurer avec GTK_IM_MODULE="uim"at ~/.profile. Récemment, j'ai supprimé uimet supprimé la GTK_IM_MODULE="uim"ligne de ~/.profile. Mais pour surmonter ce bug, je prévois de m'en débarrasser ibusmaintenant.

Sans installer de méthode d'entrée supplémentaire, (par exemple, une nouvelle installation de Trisquel), les echo $GTK_IM_MODULEsorties ximDonc, je suis confus parce que compte tenu de la méthode d'entrée par défaut ibus, alors pourquoi $GTK_IM_MODULEdire xim?

Puis-je aussi apt-get remove ibus? ou devrais-je d' uimabord installer puis supprimer ibus? Je veux aussi savoir quelle méthode de saisie fonctionne actuellement ibusou xim? Et quelle est la bonne façon de définir la méthode de saisie (c'est-à-dire de le GTK_IM_MODULE="uim"faire ~/.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?)
Pandya
la source

Réponses:

45

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 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 cet article LWN légèrement daté (2012), mais probablement toujours précis .

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 juste 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é à l'intérieur /etc/profile.d, respectivement) ou à l'intérieur de votre section locale ~/.xprofile. Le paramétrer ~/.bashrcou ~/.profilene garantira 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 insérer ces lignes ~/.xinitrc.

Si vous avez configuré une méthode de saisie autre qu'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 de remplacer les paramètres ComposeKey codés en dur de GTK .

Pour répondre à votre autre question: je ne pense pas qu'il y ait vraiment un moyen de détecter quelle méthode d'entrée est active pour le moment, sauf pour regarder les variables d'environnement ou pour savoir quels messages instantanés sont installés sur votre système. Si GTK_IM_MODULEn'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.cachelequel est généré par gtk-query-immodules-3.0.

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

Cependant, selon ce commentaire de rapport de bogue Gnome, je suppose que la valeur configurée via gsettingsremplace la valeur définie GTK_IM_MODULEpour les applications activées par DBus. Donc, au moins, vos applications Gnome utilisent probablement gtk-im-context-simpleactuellement, ce qui signifie effectivement un comportement standard (c'est-à-dire pas d'ibus ou tout autre IM dédié).

Janek Bevendorff
la source
Grande explication et arrière-plan. Maintenant, si seulement gsettingsje ne me trompais pas chaque fois que j'essayais de faire quoi que ce soit xD (même --version segfaults !!)
sqweek
J'ai donc ibus et xim sur mon Ubuntu 18.04. Puis-je les supprimer en toute sécurité si je n'ai pas l'intention de taper dans les langues CJK?
Suncatcher
Oui, mais je ne désinstallerai pas XIM à moins que cela ne soit nécessaire. Il est très daté, mais parfois utilisé comme base pour d'autres fonctionnalités. Donc, à moins que vous n'ayez vraiment besoin de quelques ko, je ne le désinstallerais pas.
Janek Bevendorff