Jak mogę sprawdzić, czy plik ~ / .XCompose został załadowany?

18

Dodałem prostą sekwencję, ale to nie zadziała. Jak mogę się dowiedzieć, czy system operacyjny (Ubuntu 12.10 z Unity) faktycznie ładuje plik?

Tim
źródło
Znalazłem to - nie, to nie jest zwykły skrypt, więc te metody nie działają, oczywiście. Cóż, więc nie wiem. Ale sprawdź link; może mógłbyś coś podnieść.
Emanuel Berg,

Odpowiedzi:

15

Składaj (definicje $XCOMPOSE, ~/.XComposelub pliku poniżej /usr/share/X11/locale) są ładowane przez każdą aplikację kliencką, a nie przez serwer X. Upewnij się więc, że aplikacja, którą testujesz, ładuje się ~/.XCompose. Możesz zobaczyć, jakie pliki czyta 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

Większość aplikacji ładuje plik tylko wtedy, gdy się uruchomi, więc musisz zmienić aplikację, jeśli zmienisz definicje tworzenia.

Jeśli aplikacja nie ładuje tych plików, prawdopodobnie nie używa „metody wprowadzania X” (xim). Możesz zmusić aplikacje GTK lub QT do używania xim:

$ GTK_IM_MODULE=xim QT_IM_MODULE=xim strace -e open xterm |& grep Compose

Jeśli to rozwiąże problem, powinieneś rozważyć globalne ustawienie zmiennych środowiskowych lub zastosować aliasto obejście dla poszczególnych aplikacji.

Gilles „SO- przestań być zły”
źródło