web-dev-qa-db-ja.com

〜/ .XComposeファイルがロードされたかどうかを確認するにはどうすればよいですか?

単純なシーケンスを追加しましたが、機能しません。 OS(Unityを搭載したUbuntu 12.10)が実際にファイルをロードしているかどうかを確認するにはどうすればよいですか?

18
Tim

構成定義($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を使用する必要があります。