dasom-im / dasom

Dasom is a multilingual input method framework
https://dasom-im.github.io
GNU Lesser General Public License v3.0
12 stars 3 forks source link

한영자판이 없는 노트북 키보드에서 Shift+Space 한영 전환은 어떻게 하나요? #17

Closed ghost closed 9 years ago

ghost commented 9 years ago

From @killme00 on October 20, 2015 12:15

세벌식+드보락 사용자입니다. 다솜에서 세벌식+드보락 조합으로 입력기 설정 가능한가요?

한영전환키가 없는 노트북 키보드라서 첨부해 주신 설정 내용대로 'korean-101-104-key-compatible'를 선택 후 한글을 입력해 보니 잘 되더라고요. 근데 제가 영어는 드보락을 사용하는데요. 다솜입력기의 영어는 qwerty 자판이라서 드보락으로 입력하는 방법을 알고 싶습니다.

드보락으로 영어 입력을 어떻게 하는지 몰라서 영어[드보락] 입력기를 추가했더니 한국어 입력기만 있을 때에 오른쪽 Alt키로 한영전환이 되던 것이 안되네요.

오른쪽 Alt키와 오른쪽 Ctrl키를 한영전환과 한자전환으로 사용하지 않고 원래 Alt, Ctrl 기능으로 사용하고 한영전환은 Shift+Space로 하면 서 세벌식+드보락 으로 다솜을 쓸 수 있는지 궁금합니다.

Copied from original issue: cogniti/dasom#17

ghost commented 9 years ago

10.20 일자 https://github.com/cogniti/dasom/issues/13 해결하는 커밋에 깜박하고 자판 체크를 빼먹어서.. 세벌식 사용할 때 아마 문제가 있을 듯합니다. 코드 작성 / 검토 시간이 너무 부족하여... 오늘 커밋은 어려울 것 같고 며칠 내로 곧 해결될 예정이며, 이 점 양해부탁드리며... 설명드리겠습니다.

다솜 입력기의 영어는 시스템 설정에 따라갑니다. 특별히 설정할 것이 없습니다. korean-101-104-key-compatible 를 선택하면 내부적으로 xmodmap 이 돌아갑니다. (참고 http://egloos.zum.com/nemonein/v/5222946) 이 상태에서 시스템 키보드를 변경하면 값이 변합니다. 값이 변하니까 키보드 자판이 변경되는 거겠죠. 다솜 입력기에서는 그걸 감지하지를 못합니다. 그래서 korean-101-104-key-compatible 를 다시 돌려야(체크 해제, 체크) 합니다. 매번 다시 돌릴 필요는 없습니다. 시스템 키보드 변경 후에, 로그아웃 / 로그인하면 다솜 입력기가 재실행될 텐데... 재실행되는 순간에 korean-101-104-key-compatible이 체크되어 있는지를 검사하여 체크되어 있으면 내부적으로 xmodmap 을 돌립니다.

오른쪽 Alt키와 오른쪽 Ctrl키를 한영전환과 한자전환으로 사용하지 않고 원래 Alt, Ctrl 기능으로 사용하려면 korean-101-104-key-compatible 체크 해제 해주세요. xkeyboard-config (aka xkb) >= 2.14 사용하시고 계시면 gnome-tweak-tool 로 Right Ctrl as Hangul, Right Alt as Hanja 를 원래대로 변경해야 합니다.(우분투 14.04 ~ 15.10 해당 사항 없음)

쉬프트 + 스페이스 설정은 아래 그림 참고하셔서 ['hangul', 'shift-mask space'] 하시면 되겠습니다. 그렇게 하시면 쉬프트 + 스페이스 및 한글키로 한/영 전환이 됩니다. 감사합니다. screenshot from 2015-10-20 22 44 54

ghost commented 9 years ago

그림 보면 layout '2' 라고 되어 있는데... 그건 두벌식용 설정입니다... 알아보기 쉽게 하기 위해... 그런 부분들을 현재 변경 작업 중에 있습니다.

ghost commented 9 years ago

From @killme00 on October 21, 2015 0:23

자세하고 친절한 답변 감사합니다. 입력기 문제만 해결되면 리눅스만 깔아서 쓸 수 있겠네요. 고맙게 잘 쓰겠습니다.

ghost commented 9 years ago

From @killme00 on October 21, 2015 0:34

hanja-keys 변경을 Ctrl + Alt + Space 로 하려면 ['hangul-hanja', 'control-mask alt-mask space'] 로 하면 될까요? 단축키를 쓰다보면 오른쪽 콘트롤 키도 많이 사용 하거든요.

ghost commented 9 years ago

From @killme00 on October 21, 2015 11:1

아래 그림처럼 설명해 주신대로 설정했는데 한영전환이 Shift + Space 로 안되는데 뭔가 빠진 과정이 있는지요? dasom_001

ghost commented 9 years ago

hanja-keys 변경을 Ctrl + Alt + Space 로는 안 되네요. 그리고... 'shift-mask space' 가 작동하지 않는다면 그냥 기본 설정으로 사용하시게 좋을 것 같네요. 다른 응용 프로그램에서 단축키를 사용하고 있을 수도 있고 그게 이유가 여러 가지라서 원인 찾기가 어렵습니다. 그래서 단축키 입력을 받는 키 설정 UI 가 있어야 하는데... 현재는 제공하지 않습니다.

ghost commented 9 years ago

dasom-daemon 에서의 키 체크 부분은 gtkaccelerator*() 라이브러리를 사용하지 않습니다. 그걸 사용하면 편하긴한데... 나중에 X윈도 없는 콘솔 환경에서 dasom-daemon 을 돌릴 수 없거든요. 설계상, X윈도가 없는, GUI가 없는, 콘솔 환경도 대응할 수 있도록 고려하고 있습니다. (다솜 입력기 프레임워크가 모듈화(플러그인)되어 있으니 콘솔에서도 사용하려면 콘솔용 표시기, 콘솔용 한자창, 콘솔용 설정창... 등.. 이런게 있어야겠죠. 이 모든 걸 제가 다 개발할 수는 없고 다솜 프로젝트와 별개로 개발하실 수 있습니다.) 그런데 키 체크가 애매한 부분이 있습니다. https://github.com/cogniti/dasom/blob/237d03152a6accd7d7fc0a991c322d9c609a11a2/libdasom/dasom-events.c#L91 그리고 환경에 따라 virtual modifier 어떻게 되는지도 모르겠고요. 어떤 어플은 이벤트를 후킹하기도 합니다. 그래서 이 이슈는 우선 순위가 높은 다른 것부터 먼저 처리하고 나중에 처리할 겁니다. 감사합니다.

ghost commented 9 years ago
  1. 한자키에 CTRL 조합을 고려해봤는데, CTRL + 다른 키들로는 안 되겠네요. 그 이유는, gedit 같은 편집기에서 CTRL + S 저장 단축키로 사용되는데, CTRL 누를 때 조합 중인 단어를 commit 시키지 않으면 조합 중인 글자가 저장이 안 됩니다. 그래서 CTRL 누를 때 항상 commit 하도록 코딩 해놓았습니다. 그래서 preedit 버퍼가 비워지므로 DB에서 한자를 찾을 수 없게 됩니다. 그렇다면 preedit 버퍼를 이중으로 하는 방법이 있겠으나, 버그 발생 소지가 높고 일반적인 방법이 아니라서 한자키에 CTRL + 키, 이렇게 하는 방법은 적용하지 않습니다. 대신 'f11' 이런 건 되긴 됩니다. 그런데 어떤 어플에서는 전체화면 등의 단축키로 사용되기도 합니다.
  2. 'shift-mask space' 이 방법은 제 시스템에서는 잘 됩니다. korean-101-104-key-compatible 방법을 적용하기 전에 한/영 전환에 제가 'shift-mask space' 로 사용을 했었거든요. killme00님 시스템에서 왜 안 되는지는 잘 모르겠네요.

원인 파악을 위해 NumLock 를 각각 꺼 본 상태와 켜 본 상태에서 시도해보세요. 그리고 배포판 종류와 데스크탑 환경 좀 알려주세요.

ghost commented 9 years ago

우분투 14.04, 15.10, 데비안 jessie, 아치리눅스, 페도라 22 에서 테스트한 결과 'shift-mask space' 조합은 문제 없이 작동합니다.

ghost commented 8 years ago

shift + space 설정을 하였지만 작동하지 않을 경우 아래 위키 문서를 참고하여 주시기 바랍니다.

https://wiki.ubuntu-kr.org/index.php/Dasom#shift_.2B_space_.EC.84.A4.EC.A0.95.EC.9D.84_.ED.95.98.EC.98.80.EC.A7.80.EB.A7.8C_.EC.9E.91.EB.8F.99.ED.95.98.EC.A7.80_.EC.95.8A.EC.9D.84_.EA.B2.BD.EC.9A.B0

ghost commented 8 years ago

@killme00 https://github.com/dasom-im/dasom/issues/17#issuecomment-153345091 보니 관리자 권한으로 dconf-editor 을 실행하셨던데, 일반 사용자 권한으로 dconf-editor 을 실행시키세요. 관리자 권한으로 실행시키면 권리자 계정의 설정이 변경되는 겁니다. 일반 사용자 권한으로 실행시키면 일반 사용자 계정의 설정이 변경되는 겁니다. 그냥 터미널 열어서 그냥 dconf-editor 을 실행시키십시오. sudo 하지 마세요.