~/.XCompose ファイルがロードされたことをどのように確認できますか?

~/.XCompose ファイルがロードされたことをどのように確認できますか?

単純なシーケンスを追加しましたが、動作しません。オペレーティングシステム(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アプリケーション固有の回避策として設定することを検討する必要があります。

おすすめ記事