Я добавил простую последовательность, но она не будет работать. Как я могу узнать, загружает ли файл операционная система (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
в качестве обходного пути для каждого отдельного приложения.