libhangul / ibus-hangul

The hangul engine for IBus
GNU General Public License v2.0
65 stars 18 forks source link

KDE 프로그램 - konsole, dolphin, elisa 등등 - 에서 한글입력 상태를 켜고 입력하면 특정 키 들이 제대로 동작하지 않습니다. #70

Open dontdieych opened 6 years ago

dontdieych commented 6 years ago

Arch Linux에서 KDE 5 사용중입니다.

ibus 1.5.18-2
ibus-hangul 1.5.1-1
konsole 18.08.0-1

이런 증상이 나타난지는 이삼주 정도 된 것 같습니다. 어떤 패키지 업데이트 후 이런 증상이 나타난지는 확실히 모르겠습니다.

증상은 한글 입력상태에서 몇몇 키들이 다르게 동작 합니다.

위 키들 뿐만 아니라 대부분의 특수키가 이상한 기호나 특수문자를 입력합니다.

Firefox는 괜찮고 대부분의 kde 앱들에서 이런 증상이 나타 납니다.

timothykim commented 6 years ago

비슷한 문제가 Gnome에서도 있습니다. 제 환경에서는 다른 문자들이 입력되는 것이 아니라 아무 문자도 입력이 되지 않습니다.

사양들입니다

timothykim commented 6 years ago

ibus-hangul 1.5.0으로 downgrade하니 증상이 사라졌습니다. 도움이 되길 바랍니다.

dontdieych commented 6 years ago

@timothykim 저도 1.5.0으로 다운그레이드 하니 증상이 사라졌습니다. :+1:

choehwanjin commented 6 years ago

저도 데비안에서 재현됩니다. Qt 입력 모듈의 버그 같습니다.

dconf-editor에서 /org/freedesktop/ibus/engine/hangul/use-event-forwarding 값을 false로 바꾸고 ibus를 재시작한 후 입력해보시기 바랍니다.

이번에 ibus의 이벤트 핸들링 순서 문제(#42)로 추가한 workaround 코드가 Qt에서는 문제가 되는가 봅니다. ibus 이슈 https://github.com/ibus/ibus/issues/1847#issuecomment-368794155 를 보면 Qt 관련해서 https://codereview.qt-project.org/#/c/212179/ 이슈 수정이 되어야 한다는 것 같은데, 이 문제로 발생하는 것인지는 잘 모르겠습니다. 이게 수정 내용이 적용된 버전이 릴리스되었는지 잘 모르겠네요.

timothykim commented 6 years ago

제 환경에서는 GTK3 app들도 증상을 보입니다. Qt 입력 모듈에 제한된 버그 같아보이진 않네요.

choehwanjin commented 6 years ago

두 분의 증상이 다릅니다.

@dontdieych 님의 문제는 Qt5의 문제로 특수키가 잘못 입력되는 문제입니다.

Firefox는 괜찮고 대부분의 kde 앱들에서 이런 증상이 나타 납니다.

Firefox가 괜찮다는 것은 GTK+ 앱들이 별 문제가 없다는 것이 됩니다.

그러나 @timothykim 님의 경우는

제 환경에서는 다른 문자들이 입력되는 것이 아니라 아무 문자도 입력이 되지 않습니다.

전혀 입력이 되지 않는다는 것이니 다른 원인으로 발생하는 문제인 것 같습니다. 한글만 입력이 안되는 것인지, 영어도 입력이 안되는 것인지 확인 부탁드립니다. 제 경우에는 GTK 앱에서 입력에 문제가 없습니다.

changwoo commented 6 years ago

qt5에 forward된 ibus key code를 qt key code로 제대로 변환하지 않기 때문입니다. 일반 printable key야 변환하지 않고 써도 똑같지만 특수 키는 문제가 되지요. 잘 보면 백스페이스 누를 때 나오는 괄호가 전각 괄호인 걸 알 수 있습니다.

어쨌든 ibus-hangul에서 고칠 문제가 아닙니다.

changwoo commented 6 years ago

@timothykim 그 문제는 3.28.2의 mutter에서 forward-key-event를 구현하지 않았는데 ibus-hangul에서 그 방식으로 전환했기 때문입니다. 3.30 RC에서는 수정되긴 했는데요. 이건 wayland 통해서 입력할 때만 생기니까 GTK_IM_MODULE=ibus 설정하면 됩니다.

어쨌든 무관한 문제.

timothykim commented 6 years ago

@choehwanjin 한글 입력은 잘 됩니다. 하지만 방향키, esc키등 특수 기능 키들이 작동을 안합니다. 영문일때는 잘 됩니다.

choehwanjin commented 6 years ago

한글 입력은 잘 됩니다. 하지만 방향키, esc키등 특수 기능 키들이 작동을 안합니다. 영문일때는 잘 됩니다.

예. 그렇다면 이번 수정으로 인한 것이 맞습니다. changwoo님이 지적하신대로 ForwardKeyEvent가 ibus client 쪽에서 제대로 구현되지 않았기 때문입니다. 이번 코드 수정에 반영된 내용은 use-event-forwarding 설정값을 바꿔서 끌 수 있습니다. 위에 제가 제시한 방법대로 설정하시면 일단 사용하실 수는 있을 것입니다. 나머지 ibus client 코드에서 ForwardKeyEvent 기능이 구현될 때까지 기다려야 할 것 같습니다.

demokritos commented 6 years ago

Qt5 소스를 보니 https://codereview.qt-project.org/#/c/212179/ 패치가 적용되어 있지만 여전히 문제가 발생하고 있습니다. 이 패치가 잘못 구현되었기 때문인가요? Qt5 프로그램들이 forwardKeyEvent() 함수를 호출해서 처리를 해줘야 하는 건가요?

choehwanjin commented 5 years ago

위 패치가 잘못된 것입니다. 특수키 처리를 잘못하여 발생하는 문제입니다. Qt의 입력 모듈 코드가 수정되어야 합니다.

changwoo commented 5 years ago

https://github.com/ibus/ibus/issues/2068

ghost commented 5 years ago

현재 이슈 계속되어 남깁니다. 'ibus'측 이슈로 등록하려다 우선은 한글 입력에서의 문제만 확실히 확인하였기 때문에 여기에 남깁니다. 영어 입력 문제 없고, 한글 일부 키입력이 다른 키로 입력됩니다. 위 댓글들처럼 Firefox 등 GTK 앱에서 문제 없습니다. KDE/PLASMA에서 Konsole 등에 입력할 경우 증상 나타납니다. 아래는 버전 정보입니다.

choehwanjin commented 5 years ago

Qt 5.13.0 부터 수정된 것 같은데, 다른 버전으로 확인해보시는 것이 좋겠습니다. https://code.qt.io/cgit/qt/qtbase.git/commit/src/plugins/platforminputcontexts/ibus?h=v5.13.0&id=9b6222598c990512c78bd42f55d7d6dc635c8b48

seandex commented 4 years ago

kde는 메모리 가벼운거 외에는 버그가 그놈에 비해 많은거 같습니다. 왜 백인들은 끝까지 kde를 고집하고 노래를 부르는지 모르겠지만 그놈에 비해 한글도 안되고 구글 드라이브로 안되고 할줄아는게 테마 좋은것 빼곤 별로 매리트가 없네요. 툭하면 크래쉬 되고 정말 불안정한거 같습니다 일주일 더 써보겠지만 아마 다시 그놈으로 갈거 같습니다.

dontdieych commented 4 years ago

@seandex 몇 년 째 KDE 잘 쓰고 있습니다. :heart:

seandex commented 4 years ago

Qt 5.13.0 부터 수정된 것 같은데, 다른 버전으로 확인해보시는 것이 좋겠습니다. https://code.qt.io/cgit/qt/qtbase.git/commit/src/plugins/platforminputcontexts/ibus?h=v5.13.0&id=9b6222598c990512c78bd42f55d7d6dc635c8b48

https://github.com/libhangul/ibus-hangul/releases/download/1.5.3/ibus-hangul-1.5.3.tar.gz 1.5.3에서 수정되었습니다. 잘됩니다. @choehwanjin 다시 깔고 backspace 누르면 '(' 문자가 입력되는 현상이 고쳐졌었는데 세이브할겸 재부팅하니까 다시 똑같은 문제가 생기네요.

seandex commented 4 years ago

@seandex 몇 년 째 KDE 잘 쓰고 있습니다. heart

네 이해합니다. 잘돌아가긴 하는데 그놈에서 서포트를 거의 다 받아서 안되는거 몇개 생기면 어쩔수 없이 돌아서게 됩니다. 저랑은 잘 안맞습니다. ㅜㅜ 테마땜에 깔았는데 쓸데없이 테마에 신경쓰다 하루 날리네요

hdpe1399 commented 4 years ago

저도 이번에 Kubuntu 20.04를 설치해본 다음

sudo apt install ibus-hangul

로 한글 입력을 설정했는데요, 저는 윗분들처럼 다른키로 입력되는게 아니라, shift+space 를 입력해도 띄어쓰기로만 인식되면서, konsole, dolphin, elisa 등등 같은 KDE 프로그램들과 시작메뉴 검색에서도 한글 입력이 안되는 상황입니다 (firefox나 discord같은 프로그램에서는 한글이 정상적으로 입력됩니다). 한글 복붙은 정삭적으로 작동합니다.

제가 설치한 버전들입니다

IBus 1.5.22
ibus-hangul/focal,now 1.5.3-1 amd64 [installed]
konsole 19.12.3
ghost commented 4 years ago

shift+space 를 입력해도 띄어쓰기로만 인식되면서, konsole, dolphin, elisa 등등 같은 KDE 프로그램들과 시작메뉴 검색에서도 한글 입력이 안되는 상황입니다 (firefox나 discord같은 프로그램에서는 한글이 정상적으로 입력됩니다). 한글 복붙은 정삭적으로 작동합니다.

'.bashrc'에 'GTK_IM_MODULE', 'QT_IM_MODULE', 'XMODIFIERS' 변수와 'ibus-daemon -drx'는 입력해보셨겠지요? 혹, '.xprofile'을 생성/수정하여 'export QT_IM_MODULE=ibus'를 입력해보시면 어떤가요? (재부팅/로그아웃 필요)