Comment savoir si le fichier ~ / .XCompose a été chargé?

18

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?

Tim
la source
J'ai trouvé cela - non, ce n'est pas un script normal, donc ces méthodes ne fonctionnent pas, évidemment. Eh bien, je ne sais pas. Mais consultez le lien; vous pourriez peut-être ramasser quelque chose.
Emanuel Berg

Réponses:

15

Les définitions Compose ( $XCOMPOSE, ~/.XComposeou 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 aliascomme solution de contournement par application.

Gilles 'SO- arrête d'être méchant'
la source