単純なシーケンスを追加しましたが、動作しません。オペレーティングシステム(UnityがインストールされているUbuntu 12.10)が実際にファイルをロードしていることを確認する方法は?
答え1
Compose定義($XCOMPOSE
または~/.XCompose
その下のファイル/usr/share/X11/locale
)は、Xサーバーではなく各クライアントアプリケーションによってロードされます。したがって、テスト中のアプリケーションがロードされていることを確認してください~/.XCompose
。どのファイルを読んでいるかを確認できますstrace
。
$ strace -e open,openat 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,openat 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,openat xterm |& grep Compose
問題が解決したら、環境変数をグローバルに設定するか、alias
アプリケーション固有の回避策として設定することを検討する必要があります。