레이블이 ibus인 게시물을 표시합니다. 모든 게시물 표시
레이블이 ibus인 게시물을 표시합니다. 모든 게시물 표시

2015/04/25

Ubuntu 15.04 출시 잡담


어젯 밤에 우분투 홈페이지에 접속했는데 우분투 15.04 Vivid Vervet이 안걸려 있어서 오늘 오후에 봤더니 걸려 있더라. KAIST FTP는 미러링이 안되어 있었고 neowiz 사이트는 3~4시간... 너무 느려서 독일 미러링 사이트에서 우분투 설치 iso 이미지 파일을 다운 받았다. 의외로 WIFI 사용하는데 3분 정도 밖에 안걸려서 놀랬다.

우분투 15.04 새로운 점?

뭔가 새로운 것에 대한 기대감 때문에 빨리 설치해 보고 싶었는데 막상 Virtual Box에 설치해 보니 별 감흥이 없다. 뭐 늘 그렇듯이 리눅스는 겉모습이 많이 바뀌는 게 아니니까 큰 기대를 가지면 실망하게 된다. 커널이나 기본 소프트웨어 패키지들이 모두 업그레이드 되는데 바뀐게 없다고 하면 만든 사람들은 얼마나 실망이 클까? Mir나 Unity 8은 1년 후 16.04 LTS에서 기대해야 할 듯... 이번 버전 역시 14.10과 유사하게 가상화나 Cloud Computing 관련 서버 버전 Upgrade 내용이 많아 보인다.

우분투 15.04 데스크탑 버전에서 가장 크게 바뀐 것은 init 프로세스로 Upstart를 버리고 다른 리눅스 배포판과 마찬가지로 systemd를 완전히 채택했다는 점이다. 이 역시 겉으로 드러나지 않기 때문에 일반 데스크탑 사용자들은 달라진 것이 없다고 느낄 듯... 부팅 속도가 좀 빨라질거라는데 가상 머신이라 그런지 큰 차이는 못느끼겠다.

얼마 전에 나온 Kernel 4.0을 우분투 15.04에 넣으려고 했는데 일정상 넣지 못하고 3.19를 넣었단다. 커널 0.98일때 Slackware를 처음 접했던 것 같은데 4.0이라니 감회가 새롭다. 참고로 커널 4.0부터 Kernel live patching이 적용된단다. 리눅스가 Windows에 비해 항상 비교 우위에 있는 점이 커널이나 일부 디바이스 드라이버 설치시를 제외하고는 재부팅할 필요가 거의 없다는 것인데, 서버의 경우에는 이제 기계가 망가지지 않으면 재부팅할 일이 없어지는 것인지 두고 볼 일이다. 토발즈가 4.0보다 4.1에 새로운 기능이 더 추가될 것이라니 이번 우분투 버전으로 업그레이드하기를 권하고 싶지는 않다.


Unity에서 눈에 띄는 새로운 사소한 기능이 하나 있는데 Window title bar에 통합된 메뉴를 고정시킬 수도 있다는 점이다. 역시 리눅스 답게 설정할 수 있는 UI는 없으니 dconf-editor를 사용하거나 아래의 명령으로~!!!
$ gsettings set com.canonical.Unity always-show-menus true

설치 후 소감

Virtual Box에서 EFI 모드로 설치하면 부팅이 안되는 증상이 14.10부터 있었는데 해결되지 않아서 BIOS 모드로 재설치 해야 했다. 더구나 BIOS 모드로 btrfs 파일시스템으로 설치 후, 재부팅해서 잘 돌아가나 싶었는데 Virtual Box에서 창닫기 버튼으로 껐더니 btrfs 파일시스템이 맛이 가서 부팅이 안되고 있다. 이 글을 쓰고 있는 내내 부팅이 안되는 걸로 보아 ext4 파일 시스템으로 재설치해야 할 듯... 블로그에 스크린 샷 좀 넣어 볼랬더니... ㅠ.ㅠ... 또 재설치 후에...ㅠ.ㅠ... 아무튼 이래 가지고는 btrfs를 누구에게 권하겠나 싶다.


그리고, 14.10에서 ibus-gtk 패키지가 누락돼서  ibus-hangul 사용시 발생하던 한글 입력 문제들은 해결되었다. 다만, English로 우분투 설치시에는 이전 글을 참조하여 ibus설정을 해 주어야 한다.

2014/10/31

Ubuntu 14.10 ibus 설정 및 한글 이슈


우분투 14.10에서는 ibus-hangul 설정이 완전히 바뀌었다. 한마디로 다른 패키지와의 의존성을 탈피하기 위해 독립선언을 했다고나 할까? 이에 따라 "Ubuntu 14.04 ibus 한영키 설정과 이슈"에서 다루었던 ibus 한영키 설정 방법들은 대부분 의미가 없게 되었다. 기본적으로는 사용자가 아무것도 건드리지 않아도 한글 언어팩이 설치됐으면 한영키로 한글 입력이 가능하도록 하자는 취지이다. 일단, 우분투 14.10 beta2에서 확인한 바로는 설치시 언어를 "한국어"로 설치하면 데스크탑 키보드 환경에서는 아무 설정없이도 우분투만 설치하면 한영키가 기본 한영전환키로 잘 동작한다.

그런데, 한국 우분투 커뮤니티의 최근 게시물을 보면 노트북에서는 잘 동작하지 않는 듯하다. 또한, 나처럼 데스크탑 키보드 환경에서 우분투 설치시 언어를 영어로 설치한 경우에도 ibus-hangul이 정상 동작하지는 않는다. 아마 영어 뿐만 아니라, 한국어가 아닌 다른 언어로 설치할 경우에도 비슷한 문제가 발생할 것이다.

우분투 14.10을 영어로 설치시 ibus 한영키 설정 방법

1. 한글 언어 팩 완전히 설치

"Ubuntu 14.10 Clean Install" 게시물에서 언급한 바와 같이 우분투 설치 시에 시간대(Time Zone) 설정을 Seoul로 했으면 한글 언어팩이 자동으로 추가된다. 이것 만으로는 안되고 우분투 설치 후 [System Settigs] > [Language Support] 아이콘을 선택하면 누락된 언어팩을 자동으로 설치해 준다. 설치 후 반드시 재로그인 해야 한다.

2. "Korean(Hangul)" input source 추가

ibus가 제대로 동작하기 위해, [System Settings] > [Text Entry] > [Input sources to use:] 에서 아래 화면과 같이 "Korean(Hangul)"을 추가하고 [^] 버튼으로 맨 위로 올려 놓아야 한다. 그리고 나서, 재로그인 하거나 Unity 상단 패널의 [input method] 아이콘을 선택해서 "Hangul"을 선택하면 태극 문양 아이콘 상태가 되는데 이 때부터 한영키가 동작한다.


참고로, 기본 우분투 설치후 화면을 위의 설정과 비교하기 위해 아래에 같이 올려 놓았다.


3. 한영 전환키 변경

한영 전환키 설정과 관련해서는 우분투 14.04와 달리 위의 화면에서 [Switch to...] 두 곳에 한영 전환키를 설정하면 절대로 안된다. 한영키 대신 다른 키를 사용하고 싶으면 Unity 상단 패널의 태극문양 아이콘을 선택해서 [Setup]을 누르거나 터미널에서 아래 명령을 사용하면 된다.

$ ibus-setup-hangul

우분투 14.10 한글 이슈

1. gedit 및 Google chrome 등 GTK 2 애플리케이션에서의 한글 입력 문제

위의 ibus 한영키 설정방법 만으로도 터미널에서 한영키로 한글 입력해 보면 별 문제가 없어 보인다. 그런데 gedit를 사용해 보면 새로운 문제가 발생한다. 단어나 문장을 Copy & Paste하고 나서 한글 입력이 "가나다"를 입력하면 "ㄱㅏㄴㅏㄷㅏ"와 같이 바뀐다.  또한, gedit에서 갑자기 Mouse Pointer가 사라지는 증상이 생긴다. 다른 Window를 선택했다가 gedit로 돌아오면 두가지 현상이 모두 해결되기는 한다.

gedit 뿐만 아니라, Google Chrome에서도 한글 입력이 안되거나 스페이스 키가 오작동하는 문제가 발생한다. 이는 Mint 17에서 나타나는 한글 입력 문제와 동일한 것이다.

$ sudo apt-get install ibus-gtk

우분투 14.10에는 ibus-gtk가 ibus와 함께 설치 되지 않았기 때문에 발생하는 문제이다. gtk 2를 사용하는 대부분의 애플리케이션에서 한글입력 문제가 발생할 것이다.

참고로, Mint 17에서는 ibus-gtk3 패키지도 누락된 것 같다.

$ sudo apt-get install ibus-gtk3

ibus-gtk나 ibus-gtk3를 설치한 후에는 GTK_IM_MODULE 환경변수가 올바로 동작하도록 하기 위해 재로그인해야 한다.

2. 한영 전환 상태 아이콘 필요

우분투 14.04 버전까지는 ibus 사용시 태극 문양이 한글 입력 상태를 의미했다. 우분투 14.10에서는 태극 문양이 ibus-hangul이 정상적으로 설치되었음을 의미한다. 즉, 우분투 14.10에서는글자를 입력한 후에야 한글입력 상태인지 영문 입력상태인지 알 수 있다는 뜻이다.

3. Qt 5.2+ 애플리케이션에서의 한글 입력 문제

Qt 쪽에서 관련 개발자들이 작업 중인데 언제 해결 될지는...

4. 기타 노트북 키보드 한영키 문제

나중에 기회가 되면 확인 필요...

우분투 한글 언어팩 설치 관련 개선 필요 사항

앞서 "Ubuntu 14.10 Clean Install" 게시물 중간에 언급한 바 있지만, 우분투 설치 프로세스 상에서 한글 언어팩 설치 여부를 언제 결정하는 것이 합리적인가 하는 문제와 "Korean(Hangul)" input source를 우분투 설치 후에 수작업으로 반드시 해 주어야 하는가 하는 문제 들에 대해서 개선이 필요하다. 이것은 우분투 14.10만의 문제가 아니고 우분투 설치 전반에 대한 문제이다.

1. 우분투 설치 프로세스 중 한글 언어팩 자동 설치 결정 시점

일단, 현재 한글 언어팩 설치 여부는 시간대를 서울로 설정할 때 결정하고 있는 듯 하다. 미국인이 서울에 거주하면서 한글을 사용하지 않는 경우도 있고, 한국인이 외국에 거주하면서 한글을 사용하는 경우도 있기 때문에 시간대를 가지고 한글 언어팩 설치 여부를 결정하는 것은 문제가 있다. 키보드를 한글 키보드로 설정했을때 한글 언어팩을 자동 설치하도록 해주면 될 것이다.

2. "Korean(Hangul)" input source 자동 추가

또, "Korean(Hangul)" input source를 추가하는 것도 한글 키보드를 선택했을 때 자동으로 추가되도록 하면 좋을 것이다.

3. 한글 언어팩 불완전 설치 문제

한글 언어팩이 완전히 설치되지 않는 문제도 남아 있지만 우분투 14.10에서는 처음 로그인 후 경고창도 뜨더라. 반자동인 셈인데 그럭저럭 참을만 하기는 하다.

[추가] ibus 사용시 게스트 가상머신에서의 한영키 사용 문제는 해결됨

우분투 14.04에서 ibus 사용시 별도의 입력 환경이 있는 Virtual Box guest 머신으로 한영키 시그널이 잘 전파되지 않아 한영키를 쓰기 어려웠던 문제가 있었는데 우분투 14.10에서는 발생하지 않는다. Windows 게스트나 우분투 게스트나 한영키를 쓰는데 문제가 없다.

2014/09/27

uim 벼루 Qt5 immodule build


우분투 uim 기본 패키지에는 Qt5 immodule이 들어 있지 않아서 Qt5 애플리케이션에서 한글 입력이 안된다. uim 사이트에 가보니 2013/6/30일자 uim-1.8.6 소스가 최신인데 받아 보니 Qt5를 지원하지 않는다. 문서에도 Qt5에 대한 언급이 전혀 없다. 혹시나 해서 github에서 소스를 받아 보니 Qt5 immodule 소스가 있었다. Qt5 모듈을 build하는 문서가 없어서 좀 헤매야 했는데 헤맸던 것들을 정리한다.

결론은, uim Qt5 모듈을 사용하면 Qt5 애플리케이션에서도 한글입력은 잘 되는데, 안정성 문제가 있다. 한글 입력 문제에 관한 한 uim이 ibus보다 좋아 보인다.

uim Build 및 설치

uim 설치 가이드를 따라가면, 소스를 build하기 위해서 아래의 tool 들이 필요하다.

$ sudo apt-get install intltool
$ sudo apt-get install librsvg2-bin libtool ruby git

build에 필요한 header 파일들도 있어야 하고...

$ sudo apt-get install libanthy-dev libgtk2.0-dev libgtk-3-dev libqt4-dev

그런데, Qt5는 우분투 패키지 구성이 꽤 복잡하다. 한마디로 libqt5-dev가 없다. 일단, 아래 정도가 필요해 보인다.

$ sudo apt-get install qtbase5-dev qtbase5-private-dev qt5-default qtdeclarative5-dev

이제 다시 가이드 대로, 소스를 github에서 받아서 build하고 설치까지 문제가 없다. 아, 도중에 폴더 권한이 없다는 오류가 발생했었다. 해당 폴더(/usr/plugins)를 만들어 주고 사용자 권한을 주면 해결된다. Qt5 모듈이 엉뚱한 폴더를 중간 폴더로 사용하고 있었다.

그리고, ./uim/qt5/immodule/quimplatforminputcontext.cpp 파일 윗부분에 debug 사용하도록 define이 있는데 주석 처리하는게 좋다.

$ git clone https://github.com/uim/uim.git
$ cd uim
$ ./make-wc.sh --with-qt5 --with-qt5-immodule
$ make
$ sudo make install

위와 같이 해서 설치하면 /usr/local 하위 폴더들에 uim 파일들이 분산된다. 단, Qt5 모듈은 Qt5 폴더 (/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts)에 설치된다.

Qt5 모듈은 가야할 위치에 이미 가 있어서 Dynamic loading 문제가 없다. 그런데, GTK 모듈들은 immodules.cache에 등록해 주어야 한다. GTK2는 별로 쓸일이 없을 것 같아서 GTK3 모듈만 아래와 같이 등록하였다.

$ /usr/lib/x86_64-linux-gnu/libgtk-3-0/gtk-query-immodules-3.0 /usr/local/lib/gtk-3.0/3.0.0/immodules/im-uim.so >> /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules.cache

uim 자동 실행

시스템 설정 가이드에 보면 ~/.xinitrc나 ~/.xsession에 아래의 내용을 넣어 주면 된다는데 잘 안되었다.
export GTK_IM_MODULE=uim
export QT_IM_MODULE=uim
export QT4_IM_MODULE=uim
export XMODIFIERS=@im=uim
/usr/local/bin/uim-xim &
그래서, 우분투의 im-config를 사용하기로 하였다. 먼저, ~/.xinputrc에 아래 내용을 등록해 주고,
run_im uim
/usr/share/im-config/data/24_uim.rc 파일을 수정해서 /usr/local 폴더 위치를 잡아 주었다. 그리고 나서 재로그인하면 uim이 잘 기동된다.

uim Qt5 모듈의 문제점

Qt5 애플리케이션에서 한글입력은 아무 문제없다. 심지어 ibus의 Qt5 애플리케이션에서 발생하는 한글입력 문제도 없다. 그런데, 공식 사이트에 Qt5 모듈이 없는 이유를 알게 되었다. 불안정하기 때문이다. 일단, 두어가지 문제를 발견했다.
  • Qt5 애플리케이션을 새로 실행할 때마다 uim-candwin-qt5 프로세스 수가 계속 증가함
  • 애플리케이션을 중지하면 프로세스가 좀 줄어 들지만 다시 새로운 프로세스가 생김
  • Qt5 애플리케이션을 쓰다 보면 컴이 느려지는데 uim-helper-server 프로세스가 CPU를 거의 100% 가까이 잡아먹고 있음

참고 사이트

https://code.google.com/p/uim/wiki/InstallUim
https://code.google.com/p/uim/wiki/UimSystemConfiguration

2014/09/25

ibus 기동 방지 및 uim 벼루 설치


우분투 14.04에서 ibus 대신 uim 벼루와 같은 다른 입력기를 테스트 해보려고 ibus를 삭제하면 불상사가 생기니 삭제하지 말고 ibus 프로세스만 기동되지 않도록 하는 방법을 찾을 필요가 있었다.

ibus를 삭제하면

우분투 14.04에서 ibus를 삭제하면 아래 스크린 샷과 같이 [시스템 설정] 메뉴가 대폭 사라지는 일이 생긴다.


원래의 [시스템 설정] 스크린 샷은 아래와 같다.


아래에서 알 수 있듯이 삭제 명령 실행시 ibus만 지워지는게 아니기 때문이다. 한마디로 ibus를 붙박이로 써라는 엉뚱하고도 고약한 패키지 dependency이다.

$ sudo apt-get remove ibus ibus-hangul
[sudo] password for aaa: 
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다       
상태 정보를 읽는 중입니다... 완료
다음 패키지가 자동으로 설치되었지만 더 이상 필요하지 않습니다:
  libhangul-data libhangul1
Use 'apt-get autoremove' to remove them.
다음 패키지를 지울 것입니다:
  ibus ibus-hangul ibus-pinyin ibus-table ubuntu-desktop unity-control-center
  unity-control-center-signon webaccounts-extension-common xul-ext-webaccounts
0개 업그레이드, 0개 새로 설치, 9개 제거 및 0개 업그레이드 안 함.
이 작업 후 8,654 k바이트의 디스크 공간이 비워집니다.
계속 하시겠습니까? [Y/n] 
다시 복구하기 위해서 아래와 같이 하면 ibus와 ibus-hangul 두 개만 달랑 설치된다.

$ sudo apt-get install ibus ibus-hangul

아래와 같이하면 ibus도 같이 설치되고 [시스템 설정]도 원래의 상태가 된다.

$ sudo apt-get install ubuntu-desktop unity-control-center unity-control-center-signon webaccounts-extension-common xul-ext-webaccounts

로그인시 ibus 프로세스가 자동 시작 방지 및 uim 벼루 설치

ibus를 삭제하려던 원래 이유는 uim 벼루와 같은 다른 입력기를 테스트해 보기 위해서 였다.

예를 들어, uim/uim-byeoru를 아래와 같이 설치하고 나서,

$ sudo apt-get install uim uim-byeoru

[시스템 설정] > [언어 지원]에서 [키보드 입력기]를 uim으로 바꾸고 재로그인해도 ibus 프로세스들이 같이 떠 있다. 구글링해 보니 굳이 ibus를 지우지 않아도 ibus 프로세스가 로그인시 기동되지 않도록 하는 방법이 있었다.

$ gsettings set org.gnome.settings-daemon.plugins.keyboard active false

위와 같이하고 다시 로그인하면 더이상 ibus 프로세스가 기동되지 않는다.

추가적으로, 기존에 ibus 환경에서 <Shift>+<Space> 등의 키를 한영 변환키로 사용했는데 uim에서도 같은 키조합을 사용하려면 [시스템 설정] > [텍스트 입력창]에서 단축 키를 다른 키로 바꿔 주어야 한다. 단축 키에 대한 우선권이 거기에 있기 때문이다.

Unity 상단 패널의 키보드 indicator도 ibus에서만 사용하는 것이므로 안보이도록 설정하려면,

$ gsettings set com.canonical.indicator.keyboard visible false

uim에서 한영키를 등록하려면 uim-pref-gtk를 실행시켜서 [벼루 키 설정 1]에 한영키("hangul")를 추가해 주면 된다.

$ uim-pref-gtk

uim 벼루의 제약 사항

일단, 두가지 제약 사항이 있다. 하나는 Unity 상단 패널에 uim indicator가 등록되지 않아 한영 상태를 구분하기 어렵다는 것이고, 다른 하나는 Qt5 애플리케이션에서 한글입력이 안된다는 것이다.

참고로, Mint 17에서는 uim indicator가 정상 동작한다.

2014/09/03

Kubuntu 한글 설정 및 ibus 사용


Kubuntu 14.04를 Virtual Box에 설치해 보았다. 쿠분투는 한글 사용 환경이 개판이다. 설치부터 한글이 깨져서 영문으로 설치해야 했다.

한글을 사용하기 위해서 해 주어야 했던 작업 들을 기억나는 대로 정리한다.

언어 추가

[System Settings] > [Locale] > [Laguage] 탭 > [Korean] 추가

나눔 폰트 설치

$ sudo apt-get install fonts-nanum fonts-nanum-coding fonts-nanum-extra
$ sudo fc-cache -fv

폰트 설치 후 나눔 폰트를 지정하기 위해서는 [System Settings] > [Apperance] > [Fonts] 에서 나눔 글꼴 선택

ibus 설치

$ sudo apt-get install ibus ibus-hangul

환경변수 설정

~/.bashrc 또는 ~/.profile에 아래 환경 변수 추가
export LC_ALL="ko_KR.UTF-8"
export LANG="ko_KR.UTF-8"
export LANGUAGE="ko_KR:ko:en_GB:en"

export GTK_IM_MODULE=ibus
export QT_IM_MODULE=ibus
export XMODIFIERS=@im=ibus

ibus를 KDE 시작시 기동하도록 추가

[시스템 설정] > [시스템 관리] > [시작 및 종료] > [자동 시작] > [데스크톱 파일] > [프로그램 추가] 에서 아래 두개 항목을 추가한 후 재 로그인 필요
ibus-daemon --xim -d
/usr/lib/ibus/ibus-x11
참고로, 원래는 --xim 옵션만 주면 ibus-x11이 떠야 하는데 안뜬다. Arch wiki에도 KDE 환경에 대해 비슷한 설명이 있다. 특히, LibreOffice 섹션을 참고할 필요가 있다.

ibus에서 한영키 사용 설정

$ ibus-setup

실행 후 [일반] 탭 > [다음 입력기] > [...] > [키 코드] 에 Hangul 추가 후 [확인]

기타 참고 사항

쿠분투 14.04 KDE에서 locale이 꼬이는 버그가 있다.

2014/08/21

Ubuntu XKB를 이용한 keyboard map 확장


우분투에서 한영키를 설정하는 방법에 대해서 정리했지만 좀더 나은 방법을 찾아 보았다. 결론적으로는 나은 방법을 찾은 것은 아니다. 다만, XKB를 사용함으로써 이런 문제 들을 해결할 수 있는 가능성이 있다는 점에 만족해야 한다.

예전에는 X-Window 환경에서 키보드 맵핑에 Xmodmap을 사용했는데 언제부터인가 XKB를 사용하는 것 같다. XKB 사용법을 local 사용자 환경에 적용하는 방법과 전체 시스템 환경에 적용하는 방법에 대해 정리한다. 한영키를 입력소스 toggling에 사용할 수 있도록 지정하는 것과 오른쪽 Alt 키를 한영키에 맵핑하는 예를 들었다.

참고로, 이렇게 해서 ibus에서 한영키가 동작하지는 않는다. ibus 소프트웨어 자체의 키보드 맵핑 로직이 있기 때문이다.

Local 사용자 환경에 XKB 적용하기

사용자 폴더에 XKB가 사용할 폴더 구조를 만든다.

$ mkdir -p ~/.xkb/{keymap,symbols}

키보드 맵핑을 바꾸려는 내용을 파일로 만들어 저장한다.

$ gedit ~/.xkb/symbols/hangul_kbd
// /usr/share/X11/xkb/symbols/group
// Hangul key toggle
partial modifier_keys
xkb_symbols "hangul_toggle" {
    key <HNGL> {        [  ISO_Next_Group,      Hangul  ]       };
};

// /usr/share/X11/xkb/symbols/altwin
// Alt_R key is mapped to Hangul key
partial modifier_keys
xkb_symbols "hangul_ralt" {
    key <LALT> { [ Alt_L, Meta_L ] };
    key <RALT> { type[Group1] = "TWO_LEVEL",
                 symbols[Group1] = [ Hangul ] };
    modifier_map Mod1 { Alt_L, Alt_R, Meta_L, Meta_R };
//  modifier_map Mod4 {};
};
$ setxkbmap -print > ~/.xkb/keymap/hangul.xkb

위의 명령으로 생성된 파일에서 xkb_symbols 라인에 위의 hangul_kbd를 아래와 같이 추가한다. 아래의 내용에서 위의 hangul_kbd 파일 내용 중 hangul_toggle 부분만 적용하고자 할 때는 hangul_kbd 대신 hangul_kbd(hangul_toggle)을 사용하면 된다.

$ gedit ~/.xkb/keymap/hangul.xkb
// Generated from "setxkbmap -print" and added xkb_symbols part.
xkb_keymap {
    xkb_keycodes { include "evdev+aliases(qwerty)" };
    xkb_types    { include "complete" };
    xkb_compat   { include "complete" };
    xkb_symbols  { include "pc+kr+us:2+inet(evdev)+hangul_kbd" };
    xkb_geometry { include "pc(pc105)" };
};
이제, 현재 사용자 환경에 바로 적용할 수 있는데 아래의 명령으로 가능하다.

$ xkbcomp -I$HOME/.xkb ~/.xkb/keymap/hangul.xkb $DISPLAY

매번 로그인 할 때마다 적용하기 위해서는 ~/.xinitrc 파일에 위의 명령을 추가해 주면 된다.

시스템 전체 환경에 XKB 적용하기

nano 등 편집기를 이용해 /usr/share/X11/xkb/symbols/group 파일 맨 위에 아래 내용을 추가한다.
$ sudo nano /usr/share/X11/xkb/symbols/group
// /usr/share/X11/xkb/symbols/group
// Hangul key toggle
partial modifier_keys
xkb_symbols "hangul_toggle" {
    key <HNGL> {        [  ISO_Next_Group,      Hangul  ]       };
};
nano 등 편집기를 이용해 /usr/share/X11/xkb/symbols/altwin 파일 맨 위에 아래 내용을 추가한다.
$ sudo nano /usr/share/X11/xkb/symbols/altwin
// /usr/share/X11/xkb/symbols/altwin
// Alt_R key is mapped to Hangul key
partial modifier_keys
xkb_symbols "hangul_ralt" {
    key <LART> { [ Alt_L, Meta_L ] };
    key <RALT> { type[Group1] = "TWO_LEVEL",
                 symbols[Group1] = [ Hangul ] };
    modifier_map Mod1 { Alt_L, Alt_R, Meta_L, Meta_R };
//  modifier_map Mod4 {};
};
수정한 내용이 시스템에 반영되기 위해서는 컴파일된 xkb 캐시 파일들을 삭제 후 재로그인 해야 한다.

$ sudo rm -rf /var/lib/xkb/*.xkm

로그아웃 했다가 다시 로그인 하면 grp(hangul_toggle)과 altwin(hangul_alt)를 사용할 수 있게 된다.

ibus에서 XKB 사용하기

ibus에서는 위의 시스템 전체 환경에 XKB 적용하기를 활용하면 한영키를 사용하도록 할 수 있다. 그러나 이 방법은 좋은 방법이 아니므로 권하고 싶지는 않다.

위에서는 grp(hangul_toggle)과 altwin(hangul_alt)를 새로 추가한 것이지만 기존의 키보드 맵을 수정하면 ibus가 그것을 사용하도록 할 수 있다. 예를 들면, 다음 명령으로 ibus가  grp(menu_toggle)을 사용하도록 한다.

$ gsettings set org.gnome.desktop.input-sources xkb-options "['grp:menu_toggle']"

그리고 나서 /usr/share/X11/xkb/symbols/group 파일의 "menu_toggle" 부분을 아래의 내용으로 대체해 버리면 된다.
// /usr/share/X11/xkb/symbols/group
// Hangul key toggle
partial modifier_keys
xkb_symbols "menu_toggle" {
    key <HNGL> {        [  ISO_Next_Group,      Hangul  ]       };
};
변경 사항을 적용하려면 xkm 파일 들을 지우고 다시 로그인 해야 한다.


별로 도움이 되는 내용은 아니지만 나중에 참고하기 위해 정리해 둔다.

참고 사이트

http://madduck.net/docs/extending-xkb
https://wiki.archlinux.org/index.php/X_KeyBoard_extension

2014/08/17

Ubuntu 14.04 ibus 한영키 설정과 이슈


국내 우분투 사용자들이 우분투를 처음 설치하거나 버전 업그레이드 할 때 가장 큰 관심거리가 한영키 설정 문제일 만큼 골칫 덩어리이다. 기본 한글 입력기인 ibus-hangul이 제대로 동작하지 않기 때문이다. 이로 인해 ibus 대신 nabi나 uim, fcitx를 사용하기도 한다. nabi와 ibus-hangul 개발자가 동일하므로 기왕이면 ibus-hagul 관련 문제들을 한번에 해결해 주면 좋겠다는 바램도 있지만 개인의 희생을 계속 강요하기엔 무리가 있다. 국내 오픈소스 개발자 저변이 열악한 점을 고려하면 정부에서 어느 정도 지원이 필요하다는 생각이다.

우분투 한국 커뮤니티의 "우분투 14.04 한글 이슈 정리"를 보완하는 측면에서 몇가지를 추가적으로 정리해 보려고 한다. 물론, 내가 사용해 본 환경에 국한할 수 밖에 없다. 여기서는 기본 입력기인 ibus-hangul에 대해서만 정리한다. 또, "한영키"란 키보드 상의 <한/영> 키를 말한다.


ibus 한영키 설정

한영키를 설정하기에 앞서 한글 언어 팩 중 일부가 누락되는 경우가 많기 때문에 한글 언어팩을 완전하게 설치할 필요가 있다. [시스템 설정] > [언어지원] > [언어] 탭에서 [English]를 맨 위로 마우스 드래그 해서 [시스템 전체에 적용] 후 로그아웃, 재로그인 후 다시 같은 메뉴 탭에서 [한국어]를 맨 위로 끌어 올려서 [시스템 전체에 적용] 후 재로그인 하면 언어팩이 자동 재설치 된다.

공통 적용 사항

$ gsettings set org.freedesktop.ibus.panel show 0
$ gsettings set org.gnome.desktop.wm.keybindings switch-input-source-backward "['<Shift>space']"

Ubuntu 14.04 Unity Desktop

유니티 환경에서는 [시스템 설정] > [텍스트 입력창] > [다음 소스로 전환:] 메뉴에서 입력 소스키를 변경하도록 바귀었다. 문제는 여기에 한영키가 등록이 안되므로 dconf-editor를 사용하거나 아래의 방법을 사용한다.

< 노트북 키보드(101/104 키) >
$ gsettings set org.gnome.desktop.input-sources xkb-options "['compose:ralt']"
$ gsettings set org.gnome.desktop.wm.keybindings switch-input-source "['Multi_key']"

< 데스크탑 키보드(105 키 이상) >
$ gsettings set org.gnome.desktop.wm.keybindings switch-input-source "['Hangul']"

Ubuntu 14.04 Gnome3 Shell (Gnome Desktop)

Gnome3에서는 [시스템 설정] > [키보드] > [바로가기] 탭 > [자판입력] > [Modifiers-only switch to next source] 에서 지정한 키가 ibus 한영 전환이 된다. 여기서 <오른쪽 Alt> 키를 지정하거나 아래의 방법을 사용한다.

< 노트북 키보드(101/104 키) >
$ gsettings set org.gnome.desktop.input-sources xkb-options "['grp:toggle']"

< 데스크탑 키보드(105 키 이상) >
한영키를 지정할 수 있는 방법을 현재로서는 못찾음. 대신, 위의 노트북 키보드 설정을 이용한면 <오른쪽 Alt>키를 한영 전환키로 사용 가능

Ubuntu 13.10 이전 버전과 Lubuntu/Xubuntu 14.04 및 Mint 17 Cinamon

$ sudo apt-get install ibus ibus-hangul
$ im-config
   실행 후 ibus를 입력기로 설정하여 빠져 나옴
$ gsettings set org.freedesktop.ibus.general.hotkey triggers "['Hangul', '<Shift>space', '<Control>space']"


ibus 한글 이슈


우분투 14.04에서 유니티 데스크탑과 gnome-shell을 같이 설치해서 사용할 경우 위의 ibus 한영키 설정 방법을 사용하면 충돌이 생기므로 해당 환경에 로그인 한 후 위의 방법을 재적용해야만 한영 전환이 됨에 유의해야 한다. 이외에도 ibus는 아래와 같은 이슈들이 남아 있다.

  • 단일 한영 전환 키인 한영키(<Hangul> 키)를 UI에서 Keyborard Shortcut으로 사용할 수 없음
  • 리눅스 데스크 탑 별로 단일화된 한영키 입력 UI 필요
  • ibus 한영키 시그널이 별도의 입력 환경이 있는 Virtual Box 등에 제대로 전파되지 않음
  • Mint 17 환경에서 구글 크롬 사용시  <Space> 키 오류 발생: uim은 정상임
  • Qt5.2+ 기반의 애플리케이션에서 한글 입력시 오류 발생: Qt5-ibus 패치 적용 예정
        https://bugreports.qt-project.org/browse/QTBUG-40541
        https://code.google.com/p/ibus/issues/detail?id=1726