Comment faire fonctionner Compose dans les applications GTK et Qt?

15

J'ai utilisé Gnome pendant longtemps, mais j'ai préféré la méthode d'entrée vanilla X ( xim) par rapport au comportement GTK par défaut. Je viens de définir des variables d'environnement GTK_IM_MODULEet je n'ai eu aucun problème avec les extensions de configuration, de clé, personnalisées et de typographie à plusieurs dispositions .QT_IM_MODULEximCompose~/.XComposemisc:typo

Le récent Gnome 3.6 a complètement vissé l'entrée du clavier en expédiant un semi-cuit et un buggy ibus et en le forçant sur les utilisateurs . Je n'arrivais tout simplement pas à faire fonctionner le clavier aussi bien qu'avant (même avec un ibushandicapé) et j'ai dû abandonner complètement Gnome.

Maintenant, j'utilise un simple gestionnaire de fenêtres et je configure mon clavier avec setxkbmap. Bien que le clavier fonctionne à nouveau correctement, je n'ai pas pu faire fonctionner la touche Composer partout. Compose fonctionne dans les applications X11 standard ( xterm), mais il ne fonctionne pas dans les applications GTK2, GTK3 ou Qt.

J'utilise les versions actuelles d'Archlinux:

xorg-xinput 1.6.0
xorg-server 1.13.1
xf86-input-keyboard 1.6.2
gtk2 2.24.14
gtk3 3.6.4
qt 4.8.4

et activer la Composeclé comme ceci:

setxkbmap ... -option 'compose:menu'

et export GTK_IM_MODULE, QT_IM_MODULEvariables:

$ echo $GTK_IM_MODULE $QT_IM_MODULE 
xim xim

Compose la clé est correctement reconnue par X11:

$ xev | grep -A2 --line-buffered '^KeyRelease' | sed -n '/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p'
135 Multi_key

Il fonctionne correctement dans les xtermséquences de mon ~/.XComposeinclus. Cela ne fonctionne pas dans les applications GTK ou Qt. Disons que si j'entre Compose ', les applications résonnent 'immédiatement, sans attendre la troisième clé de la séquence.

Maintenant, je suppose que quelque chose a changé dans Xorg (car Composecela ne fonctionne pas non plus dans les applications Qt), ou dans GTK et Qt. *_IM_MODULEles variables ne suffisent plus maintenant. Que faut-il d'autre pour que GTK et Qt modernes reconnaissent ximet leurs séquences de composition?

PS Il y a une question similaire (et sans réponse) à propos de la touche de composition qui ne fonctionne pas dans GTK . Contrairement au demandeur, je ne l'ai pas ibusinstallé.

sastanin
la source

Réponses:

7

Trouvé une solution qui fonctionne pour les applications GTK (mais pas Qt). Il faut régler

XMODIFIERS="@im=none"

pour laisser X11 gérer les touches mortes. Merci à @PabloSaratxaga pour sa réponse .

sastanin
la source
2

J'ai eu un problème similaire dans openSUSE. ~/.XComposeserait ignoré par les applications GTK +, donc mes propres séquences de composition ne fonctionnaient pas dans Firefox, Gimp et autres.

J'ai découvert que gtk-query-immodules-2.0répertorié quelques méthodes d'entrée, mais pas xim; donc, quelle que soit la GTK_IM_MODULEvariable, ximn'était pas disponible. L'installation des packages gtk2-immodule-xim(et des amis) a résolu le problème.

Peut-être que cette remarque s'avère utile pour les personnes souffrant de la même malédiction.

linguiste
la source
1

C'est un moyen de configuration persistante. Il est décrit par exemple ici https://wiki.edubuntu.org/ComposeKey#line-66 . J'ai configuré les touches de composition avec ~ / .XCompose de cette façon. J'ai vérifié cela sur les systèmes Ubuntu et Debian.

ASten
la source
Le problème est que même la méthode ponctuelle a cessé de fonctionner. Les instructions pour un changement persistant sont spécifiques à Debian / Ubuntu.
sastanin