J'ai ajouté une séquence simple, mais cela ne fonctionnera pas. Comment savoir si le système d'exploitation (Ubuntu 12.10 avec Unity) est en train de charger le fichier?
J'ai ajouté une séquence simple, mais cela ne fonctionnera pas. Comment savoir si le système d'exploitation (Ubuntu 12.10 avec Unity) est en train de charger le fichier?
Réponses:
Les définitions Compose ( $XCOMPOSE
, ~/.XCompose
ou un fichier sous /usr/share/X11/locale
) sont chargés par chaque application de client, et non par le serveur X. Assurez-vous donc que l'application que vous testez se charge ~/.XCompose
. Vous pouvez voir avec quels fichiers il lit strace
:
$ strace -e open xterm |& grep Compose
open("/home/gilles/.XCompose", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/X11/locale/en_US.UTF-8/Compose", O_RDONLY) = 5
$ touch .XCompose
$ strace -e open xterm |& grep Compose
open("/home/gilles/.XCompose", O_RDONLY) = 5
La plupart des applications ne chargent le fichier qu'au démarrage, vous devrez donc redémarrer l'application si vous modifiez vos définitions de composition.
Si l'application ne charge pas ces fichiers, il est probable qu'ils n'utilisent pas la «méthode d'entrée X» (xim). Vous pouvez forcer les applications GTK ou QT à utiliser xim:
$ GTK_IM_MODULE=xim QT_IM_MODULE=xim strace -e open xterm |& grep Compose
Si cela résout le problème, vous devez envisager de définir les variables d'environnement de manière globale ou de les utiliser alias
comme solution de contournement par application.