컨텐츠 바로가기

우분투; Sublime text 3, Fcitx 를 사용한 한국어 입력.

http://nemonein.egloos.com/5269201

iBus 로는 안되는 것 같다. '간단한' 검색 뒤에 알아낸 사실이다.
게다가 iBus 에 이런 저런 문제가 있기에, 이 시점에서 과감히 포기하는 편이 좋은 것 같다.
iBus 의 가장 큰 장점은, 영문 Dvorak 자판을 쓰면서도 QWERTY 로 단축키를 쓸 수 있다는 점이었는데..

아쉽긴 하지만, 과감히 포기해버리기로 한다. (프로그램별로 입력기를 따로 쓸 수 있는 방법은 없으려나??)

** 문제점 발견.
이렇게 해서 실행하게 되면, Preferences - Browse Packages 가 열리지 않는다. 이외에도 몇가지 문제점이 존재한다고 한다.
아래 글의 댓글에서 그런 내용을 볼 수 있었다. (중국어라 번역기를 돌렸긴 했지만서도.)
UBUNTU 14.04 安装fcitx-sougoupinyin, sublime text 3, 解决中文输入
github 에 문의를 했는데, 제작자는 아직 문제를 확인하지 못한 듯 한데.. 나만 이러는 걸까??
혹시라도 이 글을 보시는 분들이 계시다면, 그리고 나와 같은 문제를 안고 계시다면, github 에 가셔서 한마디 올려주시면 좋겠다.

Can't open Preferences - Browse Packages

그래도, 현재 이 방법 외에는.. 딱히 해결책이라, 또는 우회책이라 할만한 방법이 없다.
이 시대에 아직까지 한국어/중국어/일본어 입력 문제라니. 답답하네.


** uim-벼루???
uim 벼루도 Sublime text 3 에서 한국어 입력에 문제가 없다.
게다가 크롬에서 입력도 잘된다. 현재까지 발견한 입력기 중에서는 가장 무난한 것 같다.
다만, 아래에 언급한 scim 과 같은 문제가 있다.
Application Indicator 영역에 아이콘이 표시되지 않는다. 이 얘기는, 개발이 중단되었다는 얘기와 크게 다르지 않다. (그리하여 한국어인지 영어인지 키를 입력해봐야만 알 수가 있다.)
또, 이건 극소수의 사용자에게만 해당될테지만, Dvorak 자판 지원이 안된다. 억지로 억지로 어떻게 하면 될 것 같기도 하지만, 전환이 복잡하여 쓰다가 키보드를 집어 던질 가능성이 상당히 농후하다.
* 해결 가능성 을 찾았다. 단, 삽질을 해야 한다. 내가 하랴?? 젠장.
App. Indicator 가 없어도 잘 쓸 수 있다!!라고 생각하는 이들에겐 uim-벼루가 답이 될 것이다.


** scim-hangul???
scim 을 사용하면 신기하게도 sublime text 3 에서 한국어 입력이 잘 된다. 거 참.. 이 구닥다리 방식이 오히려 먹힌다니.. 어디에 문제가 있는 것인지 알 수가 없네.
그러나, 한가지 크나큰 단점이 있으니, 구글 크롬에서 한국어 입력에 문제가 있다.
floor 님 PPA 에 언젠가 부터 Scim-hangul 이 올라오길래 웬일인가 했더니.. 혹시 이걸 쓰시나..?

또, 예전 것이라서, 최신의 App Indicator 방식(이게 맞는 용어였던가.. 기억이 가물가물)을 지원하지 않아서, 상단 알리미 영역에 아이콘을 올릴 수가 없다.

상단 알리미 영역과, 크롬을 쓰지 않는다면, scim-hangul 이 강력한 대안이 되겠다.





먼저 Sublime Text 3 를 설치해야 한다. 설치방법은 몇가지가 있는데, PPA 추가하는 법도 있고, 꾸러미를 받아서 하는 방법도 있다.
꾸러미는 Sublime Text 홈페이지에서 내려 받으면 된다.

PPA 는 '공식'은 없고, Anrei 의 힘을 빌려야 한다.


어쨌든간에 일단 SLT 의 설치는 마치고, 실행이 잘 되는지 확인한다.
잘 되지만, 한국말은, 뭔 수단을 써도 입력할 수 없다. 안타까운 현실이 아닐 수 없다.

이제, 대륙의 힘을 빌려야 한다.
sublime-text-imfix
lyfeyaj 님께서 올려주신 이 프로그램을 사용하여 한국어(물론 중국어를 위해 만든 것이긴 하지만~) 입력이 가능하다. 감사를 전한다.

헌데, 소스로 올려져있기 때문에, 컴파일을 해야 한다.
설명이 자세히 되어 있기는 하지만.. 나처럼 컴파일 문외한에게는 살짝 버거운 작업이다.

sublime text 3 에서 한글을 써보자 2 (fcitx 사용) - 우분투 14.04

위 글 올려주신 분께 역시 감사를.

먼저 소스를 받고, 컴파일을 해야 한다.
git clone https://github.com/lyfeyaj/sublime-text-imfix.git


다음, 생성된(내려받은) 디렉토리 sublime-text-imfix 로 이동한다.
그런 다음, ./sublime-imfix 를 실행하면 된다고 imfix 홈페이지에는 나와있는데...

내 경우는 sublime text 가 설치되어 있지 않다는 오류를 뿜어냈다.

아무튼, 뭐.. 그냥 직접 컴파일을 하면 된다.
현재 디렉토리에서 살펴보면 src 디렉토리가 있다. 그 곳으로 이동한 뒤, 본격 컴파일을 하면 된다.

** lib 디렉토리에 있는 libsublime-imfix.so ??
이미 lib 디렉토리에 컴파일된 라이브러리가 들어있다. 그런데, 이건 아마도 32bit 용인 것 같다. 64bit 인 내 환경에서 직접 만든 파일과 파일 크기가 다른 것을 보니.. 아마도 32bit 용인 것 같다.

컴파일 전에 먼저 컴파일을 할 수 있는 환경을 만들어야 한다.
sudo apt-get install build-essential libgtk2.0-dev


자.. 모든 준비는 끝.
다음 명령으로 컴파일을 실시.

gcc -shared -o libsublime-imfix.so sublime-imfix.c `pkg-config --libs --cflags gtk+-2.0` -fPIC


libsublime-imfix.so 가 생성되었다. 64bit 인 내 환경에서 이 파일의 크기는 12968 bytes 이다.
이제 이 파일을 '적절한 위치'에 복사해야 하는데.. 어떤 위치에 있어도 상관없다. 현재 사용자의 홈디렉토리에 넣어도 되고, sublime text 가 설치되어 있는 곳에 넣어도 된다. 편의 상, sublime text 가 설치된 곳에 넣기로 한다.

sublime text 는 /opt/sublime_text 에 설치되어 있다. 여기에 lib 라는 디렉토리를 만들고 그 안으로 위 파일을 복사하기로 한다.




실행?

이 파일은 SLT 가 실행된 뒤에 어떤 작용을 하는 것이 아니고, '실행되기 전'에 먼저 떠 있어야 한다.
따라서, SLT 를 실행하는 새로운 실행파일을 하나 만들어야 한다.

~/bin 등에 파일을 생성(ex. subl-fcitx)하고, 다음의 내용을 입력한다.
#!/bin/bash
export LD_PRELOAD=/opt/sublime_text_3/lib/libsublime-imfix.so
exec /opt/sublime_text_3/sublime_text "$@"


~/bin 은 실행경로에 포함되어 있으므로, 터미널을 열고 subl-fcitx 등을 입력하면 바로 SLT3 이 실행된다.

Unity에 넣기?
터미널에서만 실행하는 것은 아무래도 좀 번거로운 면이 있으므로, 유니터 런처에 붙여본다.
이전에 쓴 글, 유니티 런처에 나만의 프로그램 추가: .desktop 의 활용. 을 참고하고..

~/.local/share/applications 에 적당한 이름(subl-fcitx.desktop)을 주고 파일을 만든 후, 다음과 유사하게 내용을 입력한다. (원본은 /usr/share/applications/sublime-text.desktop 에 있다.)

[Desktop Entry]
Version=1.0
Type=Application
Name=Sublime Text(Fcitx)
GenericName=Text Editor
Comment=Sophisticated text editor for code, markup and prose
Exec=/home/user1/bin/subl
Terminal=false
MimeType=text/plain;
Icon=sublime-text
Categories=TextEditor;Development;Utility;
StartupNotify=true
StartupWMClass=Sublime_text
Actions=Window;Document;

X-Desktop-File-Install-Version=0.22

[Desktop Action Window]
Name=New Window
#Exec=/opt/sublime_text/sublime_text -n
Exec=/home/user1/bin/subl -n
OnlyShowIn=Unity;

[Desktop Action Document]
Name=New File
#Exec=/opt/sublime_text/sublime_text --command new_file
Exec=/home/user1/bin/subl --command new_file
OnlyShowIn=Unity;


위에서 중요한 것은 StartupWMClass=Sublime_text 부분인데, 이 부분이 없다면 우분투 런처에 고정을 시킬 수가 없다.
(왜 그런건지는 잘 모르겠다. 설명을 봐도..)

또, 부메뉴를 넣는 부분도 원본에 있길래 같이 넣어보긴 했는데.. 위 명령대로라면 부명령을 내릴 때에도 imfix 가 먼저 실행된다. 이 부분 때문에 성능 저하가 올런지 어떨런지는 알 수가 없다.

아무튼.. 별로 정리스럽지는 않으나, fcitx 를 사용한 SLT 사용법이었다.

덧글|신고