!! 한글이 출력되게 하는 방법이야 다양하지만 zhcon, fbterm, jfbterm 등등..
!! 입력이 되게 하는 방법은 많지 않다.
!! 여러가지 찾아봤는데 zhcon, fbterm, jfbterm등등..
-
zhcon 빠르고 중국,일본어등 입력을 지원하지만 한글은 지원하지 않는다. 패치를 하시려면 하시라..
그러나 개발이 진행되지 않으므로, 업그레이드되는 환경을 절대 따라잡지 못할 것이므로 포기.
-
jfbterm 설치 후 입력을 해봐도 안되더라.. 그래서 찾아본게 jfbterm-han과 jfbterm-uxp, jfbterm-nabi
소스를 구해서 컴파일 데비안파일 까지 다 만들어 봤는데.. 의존성 문제가 있다. libhangul0의 버전떄문에..
ibus와 충돌.. 심각하다 그리도 또 빠뜨릴 수 없는 문제.. exit하면 얼어버린다.
X윈도우가 떠있다면 전환해서 kill할 수 있는 경우도 있지만 아예 먹통되서 리부팅 해야 하는 경우가 빈번..
왜냐면 exit는 bash내장 명령으로 버릇처럼 항상 쓰이기 마련이므로..
-
fbterm 설치후 ucimf, ucimf-openvanilla, openvanilla-imgeneric 를 설치한후
fbterm -i fbterm-ucimf 이런식으로 하면 한글을 입력 할 수 있다.
근데 ucimf 라는 입력방식이 중국어 입력 시스템에 맞춰져 있어서 입력하는게 상당히 불편하다.
해보시면 머야 이러 실 것이다.
…
거의 몇 년은 포기했다보다..
…
그러다 구글링에서 찾아낸것 uim-fep 입력이 가능하단다.
찾아서 설치해봤으나 아무런 변화도 없고.. 흑흑..
그러다 다시 구글링에서 해법을 찾아냈으나, 안타깝게도 원본 주소를 잊어버려서..
http://www.yongbok.net/blog/?p=109
를 참조하시면 설정 jfbterm 설정 스크립트를 찾아볼 수 있다.
viewtopic.php?p=3556
를 참조하시면 자동실행에 대한 방법이 나와있지만 이를 조금 수정하였다.
본론으로 들어가서 콘솔입력의 최상의 방법인 jfbterm + uim-fep을 구현해보자.
sudo apt-get install jfbterm uim uim-fep uim-byeoru uim-xim uim-applet-gnome uim-qt uim-gtk2.0
** X윈도우에서도 uim를 사용하자 **
#uim-qt (머냐 이건.. 큭큭 opera의 qt 환경에서 한글 입력)
im-switch로 uim선택
sudo update-alternatives --config xinput-ko_KR
그런후 uim을 선택
언어설정에서 한국어 설치를 눌러서 ibus–>uim으로 변경
++ ~/.bashrc 설정 ++
##여기서 부터 ------------------------------------------
IM=ibus
IM=uim
XIM=$IM
GTK_IM_MODULE=$IM
QT_IM_MODULE=$IM
##------------ 대단히 중요함 ----------------
요게 없으면 곧 죽어도 ibus와 붙으려고 함
XMODIFIERS=@im=$IM
export GTK_IM_MODULE QT_IM_MODULE XIM XMODIFIERS
##여기까지 ------------------------------------------
바꾼 후 에 맨위의 판넬에 Input method Indicator 를 추가 하고, 기본입력기를 벼루로 설정
벼루 키설정에서 한글키와 Ctrl+Space(반드시 넣어야 됨) Shift+Space 등을 추가.
로그아웃해서 세션을 다시 시작해야 ibus->uim으로 바뀜
벼루 키설정 파일은 ~/.uim.d/customs/custom-byeoru-keys1.scm에 저장됨 참고하시라.
** 콘솔에서 입력가능 하게 만들기 **
uim-fep를 실행한 후에 보면 밑에
byeoru[B A]라고 나옴.. exit라고 치면 입력기를 빠져나옴
입력기 전환은 Ctrl+Space로 Shift+Space나 한글키 안먹더라구요 아마도 키보드 설정 때문이겟지만..
바꾸기도 머하고 그냥 Ctrl+Space를 쓰기로 함
여기까진 X 터미널에서 해본것이고.
jfbterm나 fbterm 을 실행하려면 framebuffer를 설정 해야 되야겟지요.
grub.cfg는 변경하면 안된다고 머라머라하니 (update-grub으로 자동 생성)
++ /etc/default/grub파일에서 ++
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash vga=788"
#로 프레임버퍼 드라이버를 로드하게 한다.
++여기 까지++
그리고 리부팅하고
jfbterm
uim-fep
한글 입력이 가능하다 (물론 gdm이나 X가 떠있지 않아도 된다)
exit를 입력하면 얼어버린다.
** 편하게 사용하기 **
터미널에서 로그인시 자동으로 jfbterm를 실행해 보자.
.bashrc에서 jfbterm이 실행되어 있으면 uim-fep를 실행되게끔 해보았으나 실패했다
mmap(mmio)에러가 난다. 그래서 .profile에 추가
jfbterm -q -e 명령으로 사용 해결..(-q는 조용히 하란 뜻임)
alias를 넣어보았으나 실패했다.
++ ~/.profile에 다음을 추가 ++
##여기서 부터 ------------------------------------------
tty_tmp=tty | sed -e "s/\/dev\/\([ty]*\)\([0-9]*\).*/\1 \2/"
ttytype=${tty_tmp%% *}
#콘솔에서 로그인 한경우
if [ "$ttytype" == "tty" ]; then
echo "You are in Console."
ttyno=${tty_tmp##* }
# 원하는 tty 번호를 입력하자 예시는 (3-6번 tty)까지를 사용하게 하고 있다.
for available in 3 4 5 6; do [ $ttyno -eq $available ] && {
echo "Intialize JFBTERM .."
#로그인쉘의 PID를 기억함
export JFBTERM_PID=$$
#alias exit='[ "eval echo \$$" != "$JFBTERM_PID" ] && kill -9 $$ ]'
#jfbterm실행하면서 입력기 로드..
exec /usr/bin/jfbterm -q -e /usr/bin/uim-fep
#fi
}; done
#터미널에서 로그인 한 경우
else
echo "Maybe you are in X-Window."
fi
##여기 까지 ---------------------------------------------------
** exit시 얼어버리는 문제 임시방편 **
++ ~/.bash_aliases에 다음을 추가 ++
##여기서 부터 ------------------------------------------
#.profile에서 저장한 PID와 자신의 PID를 비교 같으면 아무짓도 안하고..
다르면(로그인쉘이 아니라면) 자신을 죽인다
어떻게 죽이느냐 exit는 alias하므로 exit명령을 사용할 수는 없을 것 이므로
kill -9 $$로 자신을 죽이라고 신호 보낸후 exit코드를 리턴하게 한다
echo|sed "d;q $!" 라는 코드는 sed가 죽으면서 $!(alias의 인수)를 exit코드로 반환하게 한다.
exit 1과 같은 명령의 처리법임.
alias exit=‘[ "eval echo \$$" != "$JFBTERM_PID" ] && ( kill -9 $$ ; echo|sed "d;q $!" )’
##여기 까지 -----------------------------------------------
여기 까지 하면 거의 문제 없이 한글 을 사용할 수 가 있다.
긴글을 읽어내느라 고생들 하셨겠지만…
제가 고생한것에 비하면 그건 아무것 도 아니니 이해 해 주시리라 믿는다.
uim-fep는 어떤 콘솔프로그램에서도 키보드문제등만 없다면 한글을 훌륭히 처리해준다.
!!! UIM 만세 UIM-FEP 만세 !!!
** 콘솔에서 영어로 보자구??? **
#하지만 한글입출력이 콘솔에서도 된다면.. 그럴필요가 없을껄?
##여기서 부터 ----------------------------------------
#위의 스크립트중
#콘솔에서 로그인 한경우
if [ "$ttytype" == "tty" ]; then
#밑에 다음을 넣으면 man페이지가 영어로 나옴
#export LANGUAGE=en_US.UTF-8;en;ko_KR.UTF-8;ko
#export LC_ALL="C" 혹은 export LC_ALL="en_US.UTF-8"로
#설정하면 기본 로케일을 미국영어로 인식함
##여기 까지 -------------------------------------------
** 추가 팁: gdm 띠우지 않기 **
++ /etc/init/gdm.conf 파일의 수정 ++
##여기서 부터 ------------------------------------------
start on ((filesystem
and (runlevel [!036]
#요기 밑에
#and runlevel 3
#을 추가 거부조건과 일치조건이 같아서 절대로 실행이 안 됨
##여기 까지----------------------------------------------