GTK 및 Qt 앱에서 Compose를 작동시키는 방법은 무엇입니까?


15

나는 그놈을 오랫동안 사용했지만 xim기본 GTK 동작 보다 바닐라 X 입력 방법 ( )을 선호했습니다 . 방금 환경 변수를로 설정 GTK_IM_MODULE했으며 다중 레이아웃 구성, 키, 사용자 정의 및 타이포그래피 확장에 문제가 없었습니다 .QT_IM_MODULEximCompose~/.XComposemisc:typo

최근 Gnome 3.6은 반 구운 버그를 제공 ibus 하고 사용자에게 강제로 키보드 입력을 완전히 조 였습니다. 나는 키보드를 이전과 마찬가지로 작동시킬 수 없었으며 ( ibus비활성화 상태 에서도 ) 그놈을 완전히 버려야했습니다.

이제 간단한 창 관리자를 사용하고로 키보드를 구성합니다 setxkbmap. 키보드가 다시 잘 작동하지만 Compose 키를 어느 곳에서나 사용할 수 없었습니다. Compose는 일반 X11 앱 ( xterm)에서 작동하지만 GTK2, GTK3 또는 Qt 앱에서는 작동하지 않습니다.

현재 Archlinux 버전을 사용합니다.

xorg-xinput 1.6.0
xorg-server 1.13.1
xf86-input-keyboard 1.6.2
gtk2 2.24.14
gtk3 3.6.4
qt 4.8.4

다음과 Compose같이 키를 활성화 하십시오.

setxkbmap ... -option 'compose:menu'

그리고 export GTK_IM_MODULE, QT_IM_MODULE변수 :

$ echo $GTK_IM_MODULE $QT_IM_MODULE 
xim xim

Compose 키가 X11에서 올바르게 인식됩니다.

$ xev | grep -A2 --line-buffered '^KeyRelease' | sed -n '/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p'
135 Multi_key

xterm~/.XCompose포함 된 시퀀스에서 제대로 작동합니다 . GTK 또는 Qt 앱에서는 작동하지 않습니다. 내가 입력 하면 시퀀스의 세 번째 키를 기다리지 않고 Compose '앱이 '즉시 에코 됩니다.

이제 Xorg ( ComposeQt 앱에서도 작동하지 않기 때문에 ) 또는 GTK Qt 에서 무언가가 변경되었다고 가정합니다 . *_IM_MODULE변수가 충분하지 않습니다. 현대 GTK 및 Qt가 인식 xim시퀀스 및 작성 시퀀스 를 만들려면 무엇이 더 필요 합니까?

PS GTK에서 Compose 키가 작동하지 않는 것과 비슷한 (답이없는) 질문이 있습니다. asker와 달리 ibus설치 하지 않았습니다 .

답변:


7

GTK 앱에서 작동하는 솔루션을 찾았지만 Qt는 아닙니다. 하나를 설정해야

XMODIFIERS="@im=none"

X11이 죽은 키를 처리하도록합니다. 그의 답변에 대한 @PabloSaratxaga에게 감사합니다 .


2

openSUSE에서도 비슷한 문제가있었습니다. ~/.XComposeGTK + 응용 프로그램에서는 무시 될 수 있으므로 Firefox, Gimp 등에서 자체 작성 시퀀스가 ​​작동하지 않았습니다.

나는 gtk-query-immodules-2.0몇 가지 입력 방법 을 나열했지만 그렇지 않다는 것을 알았습니다 xim. 따라서 GTK_IM_MODULE변수에 관계없이 xim사용할 수 없었습니다. 패키지 gtk2-immodule-xim와 친구들을 설치하면 문제가 해결되었습니다.

아마도이 발언은 같은 저주로 고통받는 사람들에게 유용 할 것입니다.


1

이것은 지속적인 구성 방법입니다. 예를 들어 https://wiki.edubuntu.org/ComposeKey#line-66에 설명되어 있습니다 . 이 방법으로 ~ / .XCompose로 작성 키를 구성했습니다. 우분투와 데비안 시스템에서 이것을 확인했습니다.


문제는 일회용 방법조차도 작동을 멈췄다는 것입니다. 지속적인 변경에 대한 지침은 데비안 / 우분투에 따라 다릅니다.
sastanin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.