GTK_IM_MODULE=xim은 GTK 및 QT 애플리케이션에서 데드 키를 깨뜨립니다.

GTK_IM_MODULE=xim은 GTK 및 QT 애플리케이션에서 데드 키를 깨뜨립니다.

XIM내 파일을 고려하기 위해 작성 키를 가져오는 데 사용합니다 ~/.XCompose(이것은 이를 고려하는 유일한 입력 방법이며, 제가 시도한 다른 모든 입력 방법은 하드코딩된 테이블을 사용합니다). 그러나 GTK 및 QT 애플리케이션에서는 데드 키가 깨집니다. (GTK)에서 를 charmap누르면 . 하지만 키를 누르면 캐럿 깜박임이 멈추기 때문에 키가 인식됩니다 . (QT) 에서는 대신 (두 개의 별도 문자)를 인쇄합니다.^ aa^kate^a

데드 키를 사용할 때 어떻게 작동하게 합니까 XIM?


다음은 관련 환경 변수입니다.

$ env | grep '\(IM\|XMODIFIERS\)'
ECORE_IMF_MODULE=xim
QT_IM_MODULE=xim
GTK_IM_MODULE=xim
XMODIFIERS=@im=none

xev눌렀을 때의 출력은 다음과 같습니다 ^ a.

KeyPress event, serial 37, synthetic NO, window 0x1a00001,
    root 0xd9, subw 0x0, time 29204065, (131,637), root:(135,656),
    state 0x10, keycode 34 (keysym 0xfe52, dead_circumflex), same_screen YES,
    XLookupString gives 1 bytes: (5e) "^"
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 37, synthetic NO, window 0x1a00001,
    root 0xd9, subw 0x0, time 29204135, (131,637), root:(135,656),
    state 0x10, keycode 34 (keysym 0xfe52, dead_circumflex), same_screen YES,
    XLookupString gives 1 bytes: (5e) "^"
    XFilterEvent returns: False

KeyPress event, serial 37, synthetic NO, window 0x1a00001,
    root 0xd9, subw 0x0, time 29204545, (131,637), root:(135,656),
    state 0x10, keycode 24 (keysym 0x61, a), same_screen YES,
    XLookupString gives 1 bytes: (61) "a"
    XmbLookupString gives 1 bytes: (61) "a"
    XFilterEvent returns: False

KeyRelease event, serial 37, synthetic NO, window 0x1a00001,
    root 0xd9, subw 0x0, time 29204614, (131,637), root:(135,656),
    state 0x10, keycode 24 (keysym 0x61, a), same_screen YES,
    XLookupString gives 1 bytes: (61) "a"
    XFilterEvent returns: False

관련 정보