Dodałem prostą sekwencję, ale to nie zadziała. Jak mogę się dowiedzieć, czy system operacyjny (Ubuntu 12.10 z Unity) faktycznie ładuje plik?
Dodałem prostą sekwencję, ale to nie zadziała. Jak mogę się dowiedzieć, czy system operacyjny (Ubuntu 12.10 z Unity) faktycznie ładuje plik?
Odpowiedzi:
Składaj (definicje $XCOMPOSE
, ~/.XCompose
lub 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ć alias
to obejście dla poszczególnych aplikacji.