Anki, Nimf 와 fcitx 공존.

일본어 공부를 시작하고, Anki 를 쓰다보니, 일본어 입력이 필요해졌다.
Nimf 에도 nimf-anthy 라는 일본어 모듈이 있긴 한데, 이게 생각보다 꽤 사용이 불편하다. 일본어 입력기는 mozc 라는 방식이 제일 많이 쓰이는데, Nimf 제작자가, 구현하기에 시간이 너무 많이 들 듯 하여 계획이 없다고도 했다.

MS 윈도우에선 안써봤지만, macOS 에서 일본어 입력을 써봤는데… Anthy 와 비교하면 이건 붓과 볼펜정도 차이랄까.
mozc 는 macOS 정도까진 안돼도 Anthy 보다는 훨~~~씬 편한 입력환경을 제공해줬다.

하여, Anki 에서만 fcitx 를 사용할 방법을 찾아봤다. 어차피 현재 Anki 는 Nimf 를 수동으로 추가해줘야만 쓸 수 있으므로, fcitx 를 전용입력기로 사용하는 방법도 괜찮겠다 싶었다.

참고로, Anki 에서 Nimf 를 입력기로 사용하려면 다음 작업을 수행해줘야 한다.

ln -s /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libqt5im-nimf.so /usr/local/share/anki/bin/PyQt5/Qt/plugins/platforminputcontexts

Nimf 를 아예 안 쓸 수는 없고, 오로지 Anki 에서만 fcitx 를 사용하려면?
또는, 일본어 입력이 필요한 특정 프로그램에서만 사용하려면? (물론 fcitx-mozc 는 설치되어 있다는 가정이 앞선다.)

다음과 같이 먼저 스크립트를 하나 만들어야 한다. anki-fcitx 라고 이름을 주고, 실행가능하게 만든다.

#!/bin/bash

export QT_IM_MODULE=fcitx
#export XMODIFIERS='@im=fcitx'
/usr/bin/fcitx &

/usr/local/bin/anki $1

pkill fcitx

Anki 는 QT 를 사용하므로 저렇게만 해주면 되지만, GTK 프로그램이라면, GTK_IM_MODULE=fcitx 가 필요하다.

그리고 터미널에서 실행해도 되지만, desktop 파일로 만들려면, 홈디렉토리의 .local 쪽에 넣어주는게 좋다.
원래 파일을 복사해 온 뒤, 내용을 살짝 바꾼다.

cp /usr/local/share/applications/anki.desktop ~/.local/share/applications/

이 파일을 열고, 다음과 같이 실행항목을 바꿔준다.

[Desktop Entry]
Name=Anki for Fcitx
Comment=An intelligent spaced-repetition memory training program
GenericName=Flashcards
Exec=anki-fcitx
TryExec=anki-fcitx
Icon=anki
Categories=Education;Languages;KDE;Qt;
Terminal=false
Type=Application
Version=1.0
MimeType=application/x-apkg;application/x-anki;application/x-ankiaddon;

끝. Anki 는 fcitx(fcitx-hangul, fcitx-mozc), 그리고 다른 세계(?)에서는 Nimf.
공생에 문제가 없다.

** 입력방식 전환?

Nimf 는 각 입력기 별로 별도 키를 할당하여 바로 그 진입할 수 있는데, fcitx 는 그렇겐 안되고 순환하는 방식을 택해야 하는 듯 했다.

기본값이 영어로 돼 있고 한국어/일본어를 다음과 같이 추가했다고 할 때,

입력기 전환키인 Shift-Space 를 누르면 영어/한국어, 영어/일본어로 전환이 되며, 한국어/일본어간 전환은 Ctrl-Shift 로 가능하다. 키 자체가 좀 익숙하지 않기도 하고, 원하는 입력방식으로 바로 갈 수 없다는게 더더욱 번거로운데..

어쩔 수 있나, 이대로 쓰는 수밖에.

안녕하세요. 글 남겨주셔서 고맙습니다.