Как я могу узнать, загружен ли файл ~ / .XCompose?

18

Я добавил простую последовательность, но она не будет работать. Как я могу узнать, загружает ли файл операционная система (Ubuntu 12.10 с Unity)?

Тим
источник
Я нашел это - нет, это не обычный скрипт, поэтому эти методы не работают, очевидно. Ну, тогда я не знаю. Но проверьте ссылку; возможно, вы могли бы что-то поднять.
Эмануэль Берг

Ответы:

15

В 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в качестве обходного пути для каждого отдельного приложения.

Жиль "ТАК - прекрати быть злым"
источник