간단한 시퀀스를 추가했지만 작동하지 않습니다. 운영 체제(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
애플리케이션별 해결 방법으로 설정하는 것을 고려해야 합니다.