Riey / kime

Korean IME
GNU General Public License v3.0
522 stars 53 forks source link

kime-indicator/kime-wayland 실행 오류 #260

Closed lindoli closed 3 years ago

lindoli commented 3 years ago

kime-indicator를 실행하게 되면 다음과 같은 오류가 발생되면서 실행되지 않습니다.

15:02:06 [INFO] Start indicator thread 'main' panicked at 'called Option::unwrap() on a None value', src/daemon/indicator/src/main.rs:52:58 note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

그래서 다음과 같이 실행한 결과를 붙입니다.

$ RUST_BACKTRACE=full kime-indicator

15:03:13 [INFO] Start indicator thread 'main' panicked at 'called Option::unwrap() on a None value', src/daemon/indicator/src/main.rs:52:58 stack backtrace: 0: 0x55696fe761be - 1: 0x55696fe5aaac - 2: 0x55696fe758c1 - 3: 0x55696fe75141 - 4: 0x55696fe92c3e - 5: 0x55696fe92bdc - 6: 0x55696fe92b8d - 7: 0x55696fe58e20 - 8: 0x55696fe58c3c - 9: 0x55696fe0de52 - 10: 0x55696fe603d3 - 11: 0x55696fe0ec49 - 12: 0x7facf42fbcda - __libc_start_main 13: 0x55696fe0b09a - 14: 0x0 -

Riey commented 3 years ago

아이콘을 찾지 못한것 같네요 아이콘은 xdg data 폴더에서 찾으며 따로 환경변수를 설정하지 않으셨으면 기본 경로는 /usr/share/kime/icons 입니다

lindoli commented 3 years ago

말씀해 주신대로 아이콘 경로를 /usr/share/kime/icons로 했음에도 불구하고 kime-indicator 실행 오류가 발생됩니다.\

/etc/xdg/kime/config.yaml /usr/bin/kime-indicator /usr/bin/kime-wayland /usr/bin/kime-xim /usr/include/kime_engine.h /usr/include/kime_engine.hpp /usr/lib64/gtk-2.0/2.10.0/immodules/im-kime.so /usr/lib64/gtk-3.0/3.0.0/immodules/im-kime.so /usr/lib64/libkime_engine.so /usr/lib64/qt5/plugins/platforminputcontexts/libkimeplatforminputcontextplugin.so /usr/share/applications/kime-indicator.desktop /usr/share/doc/kime /usr/share/doc/kime/LICENSE /usr/share/kime/icons/kime-eng-64x64.png /usr/share/kime/icons/kime-han-64x64.png

무엇을 점검해 봐야 하는지 알려 주시면 감사하겠습니다. 그리고 이 이슈가 해결되면 보완해서 rpm spec 파일을 올려 드리겠습니다.

Riey commented 3 years ago

XDG_DATA_DIRS 환경변수를 확인해 보실래요? 거기 있는 경로들 + kime/icons를 합해서 아이콘을 찾는데 사용하시는 배포판에 따라서 경로가 다를수도 있을것 같네요

lindoli commented 3 years ago

제 배포판에서는 XDG_DATA_DIRS가 정의되어 있지 않고요, 이 변수를 /usr/share이나 /usr/share/kime/icons 등으로 변수값을 지정해 주어도 마찬가지로 실행 오류가 발생됩니다. 제가 일단 다른 배포판에서 kime-indicator가 어떻게 작동하는지를 확인해서 해결방안을 찾아보겠습니다.

Riey commented 3 years ago

사용하시는 배포판이 페도라인가요? 저도 시간이 나면 한번 확인해보겠습니다.

SungHwan-J commented 3 years ago

Arch linux에서도 indicator사용시 같은 오류가 발생합니다. kde plasma / x.org 환경이며 aur에 kime-bin으로 설치하였습니다.

Riey commented 3 years ago

@SungHwan-J pacman -Ql kime 하면 어떻게 나오나요?

Riey commented 3 years ago

@lindoli 그러고보니 제목에 kime-wayland가 들어간 이유가 있나요? 글 내용으론 kime-indicator가 문제 아닌가요

Riey commented 3 years ago

아 제가 로컬 데이터에 아이콘이 있어서 돌아갔네요 지금 안되는게 맞습니다 죄송합니다

SungHwan-J commented 3 years ago

pacman 메세지입니다.

kime-bin /etc/ kime-bin /etc/kime/ kime-bin /etc/kime/config.yaml kime-bin /usr/ kime-bin /usr/bin/ kime-bin /usr/bin/kime-indicator kime-bin /usr/bin/kime-wayland kime-bin /usr/bin/kime-xim kime-bin /usr/include/ kime-bin /usr/include/kime_engine.h kime-bin /usr/include/kime_engine.hpp kime-bin /usr/lib/ kime-bin /usr/lib/gtk-2.0/ kime-bin /usr/lib/gtk-2.0/2.10.0/ kime-bin /usr/lib/gtk-2.0/2.10.0/immodules/ kime-bin /usr/lib/gtk-2.0/2.10.0/immodules/im-kime.so kime-bin /usr/lib/gtk-3.0/ kime-bin /usr/lib/gtk-3.0/3.0.0/ kime-bin /usr/lib/gtk-3.0/3.0.0/immodules/ kime-bin /usr/lib/gtk-3.0/3.0.0/immodules/im-kime.so kime-bin /usr/lib/gtk-4.0/ kime-bin /usr/lib/gtk-4.0/4.0.0/ kime-bin /usr/lib/gtk-4.0/4.0.0/immodules/ kime-bin /usr/lib/gtk-4.0/4.0.0/immodules/libkime-gtk4.so kime-bin /usr/lib/libkime_engine.so kime-bin /usr/lib/qt/ kime-bin /usr/lib/qt/plugins/ kime-bin /usr/lib/qt/plugins/platforminputcontexts/ kime-bin /usr/lib/qt/plugins/platforminputcontexts/libkimeplatforminputcontextplugin.so kime-bin /usr/lib/qt6/ kime-bin /usr/lib/qt6/plugins/ kime-bin /usr/lib/qt6/plugins/platforminputcontexts/ kime-bin /usr/lib/qt6/plugins/platforminputcontexts/libkimeplatforminputcontextplugin.so kime-bin /usr/share/ kime-bin /usr/share/kime/ kime-bin /usr/share/kime/icons/ kime-bin /usr/share/kime/icons/kime-eng-64x64.png kime-bin /usr/share/kime/icons/kime-han-64x64.png kime-bin /usr/share/licenses/ kime-bin /usr/share/licenses/kime-bin/ kime-bin /usr/share/licenses/kime-bin/LICENSE

lindoli commented 3 years ago

@lindoli 그러고보니 제목에 kime-wayland가 들어간 이유가 있나요? 글 내용으론 kime-indicator가 문제 아닌가요

사실 kime-indicator도 문제가 있긴 하지만, kime-wayland 역시 오류가 발생하지만, 제가 쓰고 있는 환경에선 현재로썬 중요하지 않아서 제목엔 같이 썼지만, 내용에서는 우선적으로 kime-indicator만 언급한 것입니다.

참고로, kime-wayland는 다음 오류가 있긴 하지만, 08:28:30 [INFO] Start wayland im server version: 0.1.0 thread 'main' panicked at 'Failed to connect wayland display: NoCompositorListening', src/frontends/wayland/src/main.rs:418:45 note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

wayland가 동작하질 않아서 발생하는 것으로 생각해서 크게 다르지 않았습니다.

Riey commented 3 years ago

아마 wayland 환경이 아니신거 같은데 그러면 정상입니다 그와 별개로 wayland쪽은 파편화 문제로 현재 호환되는게 sway뿐이고 kde나 gnome에선 동작하지 않습니다.

lindoli commented 3 years ago

사용하시는 배포판이 페도라인가요? 저도 시간이 나면 한번 확인해보겠습니다.

제가 사용하는 배포판은 맨드리바 계열의 PCLinuxOS를 기반으로 하여 제가 직접 리마스터링한 No1.Linux입니다. RPM 기반과 KDE 기반으로 하는 배포판을 좋아하다보니 맨드리바에서 PCLinuxOS로 갈아탄 후 PCLinuxOS가 제 환경에 맞질 않는 부분도 있고해서 직접 마스터링하고 있습니다. No1.Linux는 http://no1linux.org에서 참조하실 수 있습니다.

lindoli commented 3 years ago

아 제가 로컬 데이터에 아이콘이 있어서 돌아갔네요 지금 안되는게 맞습니다 죄송합니다

그렇군요.

바쁘시겠지만, 시간 나시는대로 패치를 부탁드리겠습니다. kime 사용하는데 별 문제가 없기 때문에 kime-indicator는 개발자님 여건에 맞쳐 패치해서 릴리즈해 주시면 감사하겠습니다.

Riey commented 3 years ago

네 감사합니다 올려주신 파일 참고해서 rpm 패키징이 마무리 되는대로 1.1.0을 릴리즈 할 예정입니다

lindoli commented 3 years ago

힌트를 주셔서 이슈를 해결했습니다.

src/daemon/indicator/src/main.rs 파일의 8~9 라인의 설정값에 icon 경로를 절대경로로 넣어서 해결했습니다.

const HAN_ICON: &str = "/usr/share/kime/icons/kime-han-64x64.png"; const ENG_ICON: &str = "/usr/share/kime/icons/kime-eng-64x64.png";

한영키로 토글하면 kime-indicator에서 "A,가" 로 잘 변환되고 있습니다.

감사합니다.