다솜 입력기 테스트 버전을 준비하고 있습니다.

자유로운 이야기, 구인구직, 이벤트, 나눔

Moderators: Dry8r3aD, drake_kr

parkmino
Posts: 137
Joined: 2010/03/12 Fri 11:10 am
Location: 경북 구미

Re: 다솜 입력기 테스트 버전을 준비하고 있습니다.

Post by parkmino » 2015/07/23 Thu 10:23 am

네, 한문/특수문자와 노트북 한/영키를 사용할 수 있으면 더 바랄 게 없겠습니다.
잘 쓰겠습니다!

hodong
Posts: 200
Joined: 2014/12/23 Tue 3:29 am
Contact:

Re: 다솜 입력기 테스트 버전을 준비하고 있습니다.

Post by hodong » 2015/07/23 Thu 9:59 pm

제가 오늘 다솜 입력기가 먹통되는 현상을 겪었습니다.ㅠㅠ
그래서 이 문제 최우선으로 해결하고 나서...

1번, 2번은 2일~14일 정도면 금방 만들 수 있으나, 오늘 발견한 0번 먹통 현상(race condition)을 해결하는데에 시간이 얼마나 걸릴지 모르겠네요.

0. 오늘 발결한 먹통 현상(race condition) 해결
1. 우분투 유니티 한/영 표시기
2. 정음(한글) 엔진 설정기 --- 키 설정, 두벌식,세벌식 선택 기능.

이렇게 만들 예정입니다. 다음은 순서는 미정.
열심히 사용해 주세요.
parkmino님 덕분에 버그 몇 개 고쳤네요.
감사합니다.

hodong
Posts: 200
Joined: 2014/12/23 Tue 3:29 am
Contact:

Re: 다솜 입력기 테스트 버전을 준비하고 있습니다.

Post by hodong » 2015/08/03 Mon 4:27 am

0. 먹통 현상(race condition)은 2015년 7월 25일 수정 이후로 발생되지 않음. 그래서 스레드 도입하지 않았음.

1. 우분투 유니티 한/영 표시기는 만들긴 했는데 좀 모양이 안 이쁨.

2. 정음(한글) 엔진 설정

GUI를 만들지 않았지만 dconf-editor로 설정이 가능함.
아래 경로 및 키 이름은 추후 바뀔 수 있습니다.
org --> freedesktop --> dasom --> engines --> jeongeum
한글 기본키로 한글키, 쉬프트+오른쪽ALT키, 오른쪽ALT키
기본 한자키로 한자키, 오른쪽CONTROL키
기본키를 설정해 두었습니다.
따라서 노트북 자판에서 한영 전환 가능합니다.

다만, 한자창에 버그가 약간 있긴 합니다.

그리고 우분투에서 ALT키로 한영 전환하려면 우분투 데스크탑에서 ALT 단축키로 되어 있는 걸 해제하여야 할 겁니다.
다른 방법으로는 xmodmap 이런 걸로 ALT_R 대신 Hangul로 맵핑해야 할 겁니다. 안 그러면 단축키가 작동되는 안습 상황 발생합니다.
http://egloos.zum.com/nemonein/v/5222946

parkmino
Posts: 137
Joined: 2010/03/12 Fri 11:10 am
Location: 경북 구미

Re: 다솜 입력기 테스트 버전을 준비하고 있습니다.

Post by parkmino » 2015/08/03 Mon 4:03 pm

흠... 지난 번과 달리 설치되어 있는 패키지가 없다는 오류가 나네요.

[code:2yp2qjsi]checking for APP_INDICATOR... no
configure: error: Package requirements (appindicator3-0.1) were not met:

No package 'appindicator3-0.1' found[/code:2yp2qjsi]

hodong
Posts: 200
Joined: 2014/12/23 Tue 3:29 am
Contact:

Re: 다솜 입력기 테스트 버전을 준비하고 있습니다.

Post by hodong » 2015/08/03 Mon 7:02 pm

sudo apt-get install libappindicator3-dev

parkmino
Posts: 137
Joined: 2010/03/12 Fri 11:10 am
Location: 경북 구미

Re: 다솜 입력기 테스트 버전을 준비하고 있습니다.

Post by parkmino » 2015/08/03 Mon 7:52 pm

설치는 했는데, ps 명령어에서 dasom-daemon이 defunct로 나오면서 한글 입력이 아예 안되네요. ㅠㅜ

hodong
Posts: 200
Joined: 2014/12/23 Tue 3:29 am
Contact:

Re: 다솜 입력기 테스트 버전을 준비하고 있습니다.

Post by hodong » 2015/08/04 Tue 2:37 am

그거는 제가 어딘가를 잘못 만들어서 dasom-daemon 이 죽은 겁니다.
defunct 로 나오는 거는, 테스팅을 위해 터미널에서 실행하여 디버깅 메시지를 보고자 아직 daemon 으로 만드는 코드를 넣지 않아서 그런거고요.

dasom-daemon 이 어떤 상황에서 죽는지 알고자 추가적인 정보를 알고 싶습니다.
일단, 운영체제 정보, 예를 들면 우분투 14.04 32비트 같은 정보와,
어떤 프로그램을 사용 중에 갑자기 한글 (또는 한자) 입력이 되지 않았는지를 알고 싶습니다.
데스크탑 실행하자마자(로그인하자마자) 한글 입력이 되지 않았을 수도 있겠네요.

참고로, 터미널에서
export GTK_IM_MODULE="dasom"
export G_MESSAGES_DEBUG=dasom
export XMODIFIERS="@im=dasom"
gdb dasom-daemon
r
에러 발생시 list
하면 완전한 디버깅 메시지가 나옵니다.
그렇게하면 어느 부분에서 죽었는지 정확하게 알 수 있습니다.

참고로,
sudo make install 하고 sudo ldconfig 꼭 해줘야 합니다.
깜박하고 [b:h7rofkiu]sudo ldconfig[/b:h7rofkiu] 빼먹으면 라이브러리 캐쉬가 업데이트되지 않아서 에러가 발생할 수 있습니다.

parkmino
Posts: 137
Joined: 2010/03/12 Fri 11:10 am
Location: 경북 구미

Re: 다솜 입력기 테스트 버전을 준비하고 있습니다.

Post by parkmino » 2015/08/04 Tue 7:31 am

GitHub 순서대로 컴파일했고, 부팅하자마자 에러가 발생합니다.
Ubuntu 15.04 32bit

[code:23igj0ty](gdb) r
Starting program: /usr/local/bin/dasom-daemon
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
(process:7311): dasom-DEBUG: main.c:7: main
(process:7311): dasom-DEBUG: dasom-server.c:580: dasom_server_new
(process:7311): dasom-DEBUG: dasom-server.c:554: dasom_server_class_init
(process:7311): dasom-DEBUG: dasom-server.c:429: dasom_server_init
(process:7311): dasom-DEBUG: dasom-types.c:36: dasom_key_new_from_nicks
(process:7311): dasom-DEBUG: dasom-module-manager.c:53: dasom_module_manager_get_default
(process:7311): dasom-DEBUG: dasom-module-manager.c:164: dasom_module_manager_class_init
(process:7311): dasom-DEBUG: dasom-module-manager.c:114: dasom_module_manager_constructor
(process:7311): dasom-DEBUG: dasom-module-manager.c:141: dasom_module_manager_init
(process:7311): dasom-DEBUG: dasom-module-manager.c:83: dasom_module_manager_load_modules
(process:7311): dasom-DEBUG: dasom-module-manager.c:62: dasom_module_manager_load_module
(process:7311): dasom-DEBUG: dasom-module.c:31: dasom_module_new
(process:7311): dasom-DEBUG: dasom-module.c:104: dasom_module_class_init
(process:7311): dasom-DEBUG: dasom-module.c:98: dasom_module_init
(process:7311): dasom-DEBUG: dasom-module.c:45: dasom_module_load
(process:7311): dasom-DEBUG: dasom-english.c:144: module_load
(process:7311): dasom-DEBUG: dasom-english.c:151: module_get_type
(process:7311): dasom-DEBUG: dasom-module.c:83: dasom_module_unload
(process:7311): dasom-DEBUG: dasom-english.c:158: module_unload
(process:7311): dasom-DEBUG: dasom-module-manager.c:62: dasom_module_manager_load_module
(process:7311): dasom-DEBUG: dasom-module.c:31: dasom_module_new
(process:7311): dasom-DEBUG: dasom-module.c:98: dasom_module_init
(process:7311): dasom-DEBUG: dasom-module.c:45: dasom_module_load
(process:7311): dasom-DEBUG: dasom-jeongeum.c:544: module_load
(process:7311): dasom-DEBUG: dasom-jeongeum.c:551: module_get_type
(process:7311): dasom-DEBUG: dasom-module.c:83: dasom_module_unload
(process:7311): dasom-DEBUG: dasom-jeongeum.c:558: module_unload
(process:7311): dasom-DEBUG: dasom-module-manager.c:62: dasom_module_manager_load_module
(process:7311): dasom-DEBUG: dasom-module.c:31: dasom_module_new
(process:7311): dasom-DEBUG: dasom-module.c:98: dasom_module_init
(process:7311): dasom-DEBUG: dasom-module.c:45: dasom_module_load
(process:7311): dasom-DEBUG: dasom-english.c:144: module_load

(process:7311): GLib-GObject-WARNING **: Two different plugins tried to register 'DasomEnglish'.
(process:7311): dasom-DEBUG: dasom-english.c:151: module_get_type
(process:7311): dasom-DEBUG: dasom-module.c:83: dasom_module_unload
(process:7311): dasom-DEBUG: dasom-english.c:158: module_unload
(process:7311): dasom-DEBUG: dasom-module-manager.c:31: dasom_module_manager_create_instances
(process:7311): dasom-DEBUG: dasom-engine.c:377: dasom_engine_class_init
(process:7311): dasom-DEBUG: dasom-module.c:45: dasom_module_load
(process:7311): dasom-DEBUG: dasom-english.c:144: module_load
(process:7311): dasom-DEBUG: dasom-english.c:151: module_get_type

(process:7311): GLib-GObject-WARNING **: specified class size for type 'DasomEnglish' is smaller than the parent type's 'DasomEngine' class size
*** Error in `/usr/local/bin/dasom-daemon': malloc(): memory corruption: 0x0805eba0 ***

Program received signal SIGABRT, Aborted.
0xb7fdbbe0 in __kernel_vsyscall ()[/code:23igj0ty]

hodong
Posts: 200
Joined: 2014/12/23 Tue 3:29 am
Contact:

Re: 다솜 입력기 테스트 버전을 준비하고 있습니다.

Post by hodong » 2015/08/04 Tue 8:21 am

찾은 것 같네요...

sudo rm /usr/local/lib/dasom/modules/dasom-english.so
이렇게 해서 옛날 거 지워주시고요...

ls /usr/local/lib/dasom/modules/libdasom-english.so
하여 있는지 확인해주세요.

그 후 sudo ldconfig 해주시고
im-config 로 dasom 으로 설정해주시고..
데스크탑 로그아웃/로그인 하시면 되겠습니다.(컴퓨터를 껐다 켜도 되고요.)

parkmino
Posts: 137
Joined: 2010/03/12 Fri 11:10 am
Location: 경북 구미

Re: 다솜 입력기 테스트 버전을 준비하고 있습니다.

Post by parkmino » 2015/08/04 Tue 9:09 am

말씀하신 방법대로 해결했습니다!
노트북에서 한/영키를 쓸 수 있어 편리하네요.
시간 나실 때 특수 문자 입력도 부탁 드립니다.

Post Reply