Я додав просту послідовність, але вона не працюватиме. Як я можу дізнатися, чи ОС (Ubuntu 12.10 з Unity) насправді завантажує файл?
Я додав просту послідовність, але вона не працюватиме. Як я можу дізнатися, чи ОС (Ubuntu 12.10 з Unity) насправді завантажує файл?
Відповіді:
У Compose визначення ( $XCOMPOSE
, ~/.XCompose
або файл під /usr/share/X11/locale
) завантажується кожним клієнтським додатком, а на серверах X. Тому переконайтеся, що програма, яку ви тестуєте, завантажується ~/.XCompose
. Ви можете бачити, з якими файлами він читає 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
Більшість програм завантажують файл лише після їх запуску, тому вам доведеться перезапустити програму, якщо ви зміните свої композиційні визначення.
Якщо програма не завантажує ці файли, можливо, вони не використовують "X метод введення" (xim). Ви можете змусити додатки GTK або QT використовувати xim:
$ GTK_IM_MODULE=xim QT_IM_MODULE=xim strace -e open xterm |& grep Compose
Якщо це вирішує проблему, то слід розглянути можливість встановлення змінних оточуючих середовищ у глобальному масштабі або використовувати їх alias
як спосіб вирішення за допомогою програми.