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 ~/.bashrc
ou ~/.profile
ne 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_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
lequel 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 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 gsettings
remplace la valeur définie GTK_IM_MODULE
pour les applications activées par DBus. Donc, au moins, vos applications Gnome utilisent probablement gtk-im-context-simple
actuellement, ce qui signifie effectivement un comportement standard (c'est-à-dire pas d'ibus ou tout autre IM dédié).
gsettings
je ne me trompais pas chaque fois que j'essayais de faire quoi que ce soit xD (même --version segfaults !!)