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

2017/10/22

Ubuntu 17.10 설치 및 사용


(2018/1/10 추가)

우분투 Meltdown/Spectre kernel patch 관련

오늘(현지 시간 1월 9일) 우분투의 대대적인 kernel patch가 있었다. 그런데 언제부터인가 우분투가 자동으로 kernel을 update해 버리고 있었다. 재부팅하니 NVIDIA로 로그인이 안된다. <Alt>+<Ctrl>+<F3>로 console 로그인은 되었는데 잠시 후 먹통이 돼 버렸다. 참고로 NVIDIA 상용 드라이버가 정상 동작할 때는 console 로그인을 해도 black screen인데 오늘 같은 경우에는 정상 로그인이 되기 때문에 NVIDIA 드라이버가 로딩되지 않았음을 알 수 있다.

강제 재부팅해서 이전 커널 버전으로 부팅하고 NVIDIA 홈페이지 갔더니 1월 4일자 384.111 버전이 올라왔더라. 내려 받은 후 새 커널(4.13.0-25-generic #29)의 recovery mode로 부팅해서 NVIDIA 새 드라이버 설치하고 재부팅하니 새 커널에서 NVIDIA 로그인이 잘 된다.

구글링 해 보니 역시나 우분투에서 커널과 NVIDIA 드라이버를 동시에 patch 했는데, 내가 우분투에 기본 탑재된 NVIDIA 드라이버를 사용하지 않았기 때문에 문제가 발생한 것인지는 확실하진 않다. 다만 NVIDIA 사용자들의 아우성이 곳곳에 보이더라... 커널 patch 후 PC 성능 저하 문제가 생길지는 두고 봐야할 듯...

참고로, 우분투 자동 update 막는 법도 구글링 해 보니, /etc/apt/apt.conf.d/10periodic 파일에서, 아래의 "1"을 "0"으로 바꾸면 자동 update를 막을 수 있단다.
APT::Periodic::Update-Package-Lists "1";

기타 참고 사항

우분투 17.10에 기본 탑재된 커널이 Lenovo, Acer 등 일부 노트북 기종의 BIOS 셋팅을 저장할 수 없게 만드는 문제가 발생해서 캐노니컬이 우분투 17.10 설치 iso 이미지를 우분투 사이트에서 내렸었는데, 새로운 17.10 설치 iso 이미지가 공식적으로 1월 11일에 올라올 예정이란다. 아마 이번 kernel patch까지 반영될 듯하다.

--------------------------------------------------------------

(2017/11/10 추가)

우분투 17.10에 fcitx 설치

우분투 17.10에서 Gnome-shell이 데스크탑이 되고 나니까 기본 입력기인 ibus와 다른 입력기들이 충돌하는 문제가 생긴다. fcitx를 설치해서 언어 설정에서 입력기를 ibus에서 fcitx로 바꾸더라도 ibus 프로세스들이 살아 있는 문제와 Gnome 상단 패널(또는 Top Bar)에 ibus 설정 icon이 남아 있는 등의 문제가 생긴다.

간단한 해결책은, 1) ibus를 지우고, 2) fcitx-hangul을 설치하고 나서, 3) 언어 설정에서 입력기를 fcitx로 지정하고 4) 재부팅 하면 된다. 마지막으로, 5) gnome-shell이 fcitx를 자동 실행하도록 해두는게 좋다.

$ sudo apt remove ibus
$ sudo apt install fcitx-hangul

1) 에서 ibus 지우기 겁나면 ibus 프로세스가 아예 안뜨도록 하면 되는데 가장 좋은 방법은 아래와 같이 파일명을 바꿔 버려도 된다.

$ sudo mv /usr/bin/ibus-daemon /usr/bin/ibus-daemon.org

그리고, 아래 글에 자세히 다루지 않았었는데 Gnome Tweak Tool을 설치해 두면 여러모로 편리하다. 그리고 Gnome extensions를 사용할 경우에는 chrome-gnome-shell 패키지도 유용하다. 이는 Firefox나 Chrome에서 Gnome extensions를 설치/Update/삭제할 수 있게 해 준다.

$ sudo apt install gnome-tweak-tool chrome-gnome-shell

fcitx는 gnome-shell에서 logout 하고 재로그인 하면 자동으로 기동되지 않는 문제가 있다. Gnome Tweak Tool 에서 [Startup Applications] Tab > [+] 버튼을 누른 뒤 나타나는 "Fcitx"를 선택해서 [Add] 해 주면 된다.

fcitx 설정 방법은 예전과 똑같다. fcitx도 ibus처럼 Wayland 환경에서도 잘 동작한다. 다만, 모든 입력기 들이 진정으로 Wayland를 지원하고 있다고 보기는 어렵다.

우분투 17.10 사용 소감 추가

앞서 얘기한 바 있지만 시스템 안정성 문제 때문에, Wayland를 사용하고 싶으면 Nvidia 등의 상용 비디오 드라이버를 설치하지 않는 것이 좋고, 상용 비디오 드라이버를 사용하고 싶으면 Wayland 대신 Xorg 서버 환경에서 우분투를 사용하는 것이 좋다.

기본 우분투 17.10 환경에서 Ubuntu dock외에 Hide top bar와 Pixel saver 2개의 Gnome extension만 사용해도 이전의 Unity Desktop과 비슷한 느낌을 가질 수는 있게 됐다. 초기의 자잘한 UI 버그들이 수정되어 그럭저럭 안정감있게 쓸만하다.


--------------------------------------------------------------

지난 주에 우분투 17.10이 공식 배포돼서 주말에 설치해서 사용해 보았다. 바뀌는 게 많아서 18.04 LTS 버전이 나오면 Clean Install 할까 했는데 17.04에서 Wayland를 써 보고 나니 17.10에서 얼마나 잘 돌아가나 궁금해서 오랜만에 하드디스크의 iso 파일을 이용해 Clean Install을 감행했다.

우분투 17.10에서 달라진 점들은 우분투의 Release Notes를 참고할 필요가 있다. 몇 가지만 소개하면,
  •  Unity Desktop이 Gnome shell 3.26 Desktop으로 대체 
    • 단, Original Gnome shell을 사용하고 싶다면 gnome-session 패키지 설치 필요
    • 기본 Ubuntu Desktop은 Dash to Dock(Ubuntu Dock) 등 gnome 일부 기능을 cusomize 시킴
  • Display server가 Xorg에서 Wayland로 대체
  • Display manager가 lightdm에서 gdm3로 대체
  • Desktop 32-bit 설치 iso 이미지 파일은 공식적으로 중단
  • Network 유틸리티 들이 새롭게 대체됨
    • ifupdown 대신 netplan 사용
    • net-tools(ifconfig/netstat 등 포함)가 기본 설치되지 않고 ip 명령 권장
  • Linux kernel 4.13 채택: Graphics/CPU 성능 향상, 파일시스템 개선 등
이번 버전은 크게 바뀐 것이 많아서 상대적으로 배포까지의 시간이 부족했을 가능성이 높다. 그래서인지 설치 iso 이미지는 Xorg 서버로만 동작하므로 실제로 설치하지 않고는 Wayland 서버를 사용해 볼 수 없다. 

Gnome Desktop 환경

Unity Desktop을 사용하던 사람들은 여러가지 불편함을 느낄 수 있다. Unity Launcher 대신 Dash to Dock(Gnome extension)을 수정한 Ubuntu Dock이 비슷하게 보이지만 Qt 앱의 경우 Dock에 고정시키기도 불편하고 실행시 별개의 아이콘이 뜨는 문제라든가 Minimize 기능 등 자잘하게 안되는 것들이 있다. 무엇보다 Unity의 Global menu가 사라져서 VirtualBox 등에서 화면 수직폭이 다시 늘어나는 불편함이 있다.

개인적으로는 어차피 Gnome extension을 사용할 거라면 Dash to Dock 보다는 Dash to Panel에 Hide Top Bar를 결합한 원래의 Gnome Desktop이 더 마음에 든다. 다만, 그것이 Windows UI와 거의 비슷하기 때문에 우분투 입장에서 꺼려지는 측면이 있었을 것이다.

Javascript를 사용하는 Gnome extensions를 사용해야 하는 것도 장단점이 있어서 사용자들의 호불호가 극단적으로 나뉜다. OS의 일부 기능을 인터넷 상의 누군가에게 의존해야 하는 문제 때문이다. 보안 문제가 생길 수도 있고, 일부 extension 들은 버전 업에 따른 유지보수가 제대로 이루어 지지 않거나 중단되는 경우도 많다. 머, 장점은 좀 알면 내 맘대로 데스크탑을 바꿀 수 있다는 것이다.

기본 Wayland 서버 환경 (Wayland + nouveau Driver)

우분투 17.10을 설치하고 나면 로그인시 사용자 id를 click하면 기어모양의 아이콘이 패스워드 창 밑에 보이는데 이걸 click하면 두개의 Session이 보인다. "Ubuntu"와 "Ubuntu on Xorg"이다. 이 중에서 "Ubuntu"는 곧 "Ubuntu on Wayland"이다. 오리지널 Gnome Shell을 설치하고 재 부팅하면 "Gnome"과 "Gnome on Xorg" 두 개의 Session이 추가 되는데 여기서도 "Gnome" = "Gnome on Wayland"이다. 로그인시 그냥 id와 패스워드를 입력하고 로그인하면 "Ubuntu" Session으로 로그인된다. 그리고 별도로 Nvidia와 같은 상용 드라이버를 설치하지 않았다면 기본 nouveau 드라이버 환경이 된다. 

오랫동안 써 보진 못했지만 Wayland + nouveau Driver 환경은 이전 버전에 비해 상대적으로 매우 빠르다는 느낌을 준다. 그리고, Wayland + Nvidia Driver 환경에 비해 좀 느릴 수도 있지만 훨씬 안정적으로 동작한다.

  • GUI 앱을 터미널에서 root 권한으로 실행할 수 없음
    • 필요한 기능만 PolicyKit로 root 권한을 주는 앱은 실행 가능
    •  아래와 같이 우회적인 방법으로 gparted, synaptic 등 실행 가능
      • $ sudo xhost +SI:localuser:root
  • 잘 알려진 X11 앱들(xkill, xrandr, sdotool, xsel 등)이 Wayland session이나 앱에서 동작하지 않음
  • Game과 같은 특정 앱이 모니터 해상도를 변경할 수 없음
    • 단, 해상도를 먼저 바꾸면 Game 실행 가능할 수도...
  • 보안 문제를 차단하기 위해 일반 앱에서 화면 capture/casting 불가
    • System에서 허용한 앱만 가능
  • 느린 시스템에서 Mouse pointer가 느리게 반응할 수 있음(버그)
  • Keyboard events가 가끔 빠르게 반복될 수 있음(버그)
  • 모든 key 입력이 원격 데스크탑이나 가상 머신에 전달되지 않을 수 있음(버그) 
그리고, Wayland에 관심이 있다면 위의 Fedora 링크를 자세히 숙지해야 할 것이다. 실제로 일반 사용자들은 자신이 로그인한 데스크탑 환경이 Wayland 환경인지 Xorg  환경인지 헛갈릴 수 있고, Wayland 환경 내에서도 실행시킨 GUI 앱이 Wayland 앱인지 Xorg 앱인지 구분하기 어렵다.

Wayland + Nvidia 상용 드라이버 환경

실제로 우분투 17.10에 탑재된 Nvidia 상용 드라이버를 설치하고 재부팅해서 무심코 로그인하면 기존에 Wayland + nouveau 환경을 사용했던 일반 사용자들은 당연히 Wayland + Nvidia 환경이 됐을 거라 착각하기 쉽다. 하지만 logout 한 후에 기어를 click해 보면 "Ubuntu" 세션이 사라지고 "Ubuntu on Xorg" 세션만 남아 있음을 알게 된다. 기본적으로 Nvidia 상용 드라이버 환경에서 별다른 설정을 하지 않으면 Wayland를 사용할 수 없다. 이 부분은 Nvidia 상용 드라이버의 한계라고 볼 수 있기도 하다. 아직 상용 드라이버들이 Wayland 를 제대로 지원하지는 않고 있다는 증거이다.

Nvidia 상용 드라이버 환경에서 Wayland를 사용하려면 앞서 글에서 다룬 바와 같이 nvidia-drm 모듈에 대한 option을 주고 부팅해야 한다. 앞서 글에서 다룬 Nvidia 드라이버 설치 방법을 숙지하는 것이 좋다. 참고로, 우분투 17.10에 탑재된 Nvidia 상용 드라이버는 Nvidia Site에서 제공하는 최신 상용 드라이버와 버전은 같지만 내 PC에서는 option을 주어도 Wayland를 사용할 수 없었다.

Wayland + Nvidia 환경은 일반 사용자들에게 권하고 싶지 않다. 기본적으로는 안정성 문제가 심각하고 Grub Recovery 모드로 부팅시 화면이 깨져서 아무것도 할 수 없는 문제가 생긴다.

안정성 문제는, 가령 절전 모드 진입시에 Gnome Shell이 먹통이 되어 버리는데 ssh로 원격 접속하는 것 말고는 할 수 있는 게 없다. 기본적으로 콘솔은 black screen이기 때문이다. 더구나 Wayland 환경에서는 gdm 서비스를 종료시켜서 콘솔 화면으로 빠져 나올 수 있는 방법도 없다.

그러니까, Nvidia 상용 드라이버 환경에서 Wayland 를 사용하고 싶다면 반드시 사전에 openssh-server를 설치해 두어야 한다. 물론 ssh로 접속할 수 있는 별개의 PC 한대가 더 있어야겠다. 스마트 폰 앱으로도 가능하긴 하지만 불편하니까...

참고로 ssh로 원격 접속해서 Nvidia 환경에서 Xorg로만 다시 사용하기 위해서는 blacklist 파일에 아래와 같이 option을 변경하고 initramfs를 update 한 후 재부팅하면 된다.

options nvidia-drm modeset=0

또는, 아예 상용 Nvidia 드라이버를 제거하고 nouveau 드라이버 환경으로 복귀하면 최초의 우분투 환경으로 돌아올 수 있다.

Xorg 환경

Xorg 환경은 Wayland에 관심이 없거나 잘 모르는 사용자들이 익숙한 환경이다. Unity Desktop이 Gnome Desktop으로 바뀐 것 빼고는 달라진게 없다. Xorg 환경에서는 nouveau 건 상용 Nvidia 드라이버 건 모두 안정적으로 동작하기 때문에, 역설적으로 기존의 우분투 사용자들이 당분간 선호하게 될 환경이기도 하다.

한글 입력기 문제

Gnome Desktop의 기본 한글 입력기는 ibus이다. 우분투 17.10을 설치하고 나서 한글 언어 팩을 자동 설치하고 나서 재로그인 하면 한글입력이 바로 되면 좋은데 재부팅하고 나서야 제대로 동작하더라. 

참고로, fcitx-hangul은 따로 설치해야 하는데, 설치 후 언어 설정에서 입력기를 fcitx로 지정해도 재로그인 후 fcitx 프로세스가 뜨지 않는 문제가 있다. fcitx 프로세스가 동작하려면 입력기 환경변수 들이 ibus 대신 fcitx로 바뀌어야 하는데 자동으로 바뀌지 않는 버그가 있다. 또한, im-config를 실행해도 환경 변수들이 제대로 설정되지 않는 버그도 있다. 내부적으로 im-config를 사용하고 있다면 동일한 버그일 수도 있다. 이에 더해서, 수동으로 입력기 환경변수를 fcitx로 잡아주면 fcitx 프로세스가 뜨지만 ibus 프로세스들 역시 죽지 않아서 fcitx가 제대로 동작하지 않는다. 

사실, Wayland 테스트 하느라 한글 입력기들은 제대로 테스트하지 못했다. ibus를 사용하면 Qt 앱에서도 한글입력이 잘 된다. 당분간은 ibus에 만족해야 할 듯...

맺음말

우분투 17.10에 Gnome Shell 뿐만 아니라 Wayland 서버가 기본 데스크탑이 되면서 우분투 사용 환경이 다소 복잡해진 것이 사실이다. Gnome은 이제 붙박이가 되었으니 그렇다 쳐도, Wayland냐 Xorg냐의 선택과 nouveau냐 Nvidia 상용 드라이버냐의 선택이 있으므로 최소한 4가지 사용 환경이 파생된다. 여기에 기존의 Unity 사용자들은 Gnome 대신 Unity를 계속 사용할 수도 있으니...

굳이 Nvidia  상용 드라이버를 쓸 필요가 없는 일반 사용자 들은 기본 우분투 환경인 Gnome + Wayland + nouveau도 꽤 쓸만하다고 본다. 하지만, CUDA 등 Nvidia 상용 드라이버를 반드시 사용해야 하는 사용자라면 당분간 Gnome + Xorg + Nvidia 환경을 사용해야 할 것이다.

2017/07/29

Ubuntu 17.04 Wayland 사용


우분투 17.10부터 Gnome이 기본 데스크탑 환경으로 될 참이라 이놈도 같이 설치해서 틈틈이 사용해 보고 있는데 로그인 화면에서 Unity 8과 함께 Gnome on Wayland는 선택은 할 수 있지만 로그인하면 먹통이 되는 귀찮은 메뉴들이었다. 더구나 그 간에 구글링해 보면 Nvidia 드라이버 환경에서는 안된다는 글만 보였기 때문이다. Unity 8은 그렇다 치고, Wayland가 내 PC에서 동작하는지 확인하고 싶었는데, 간만에 구글링해 보니 마침 Nvidia 환경에서 Gnome on Wayland가 동작한다는 글이 보였다. 따라해 보았지만, 여전히 먹통이다. 생각해 보니 Unity Desktop의 기본 Display Manager인 lightdm 대신 gdm을 사용해야 될 것 같았고 바꿨더니 역시나 잘 되더라.

이 글에서는 우분투의 Nvidia 드라이버 사용 환경에서 Wayland를 사용하는 방법과 짧은 사용담을  정리한다. Wayland 환경에서 한글입력 문제는 여전히 누군가가 해결해야 할 숙제이다. 그리고, 아직까지는 Nvidia가 Wayland API를 제대로 지원하지는 않고 있다는 점도 참고할 필요가 있다.


우분투 17.04 Nvidia 환경에서 Wayland 사용 절차

1. Nvidia 드라이버 설치

Nvidia 홈페이지에서 최신 Nvidia 드라이버를 내려 받아 설치한다. 내가 사용하는 버전은 381.22이다. 우분투 17.04는 리눅스 커널 4.10을 사용하는데 381.22 미만 버전은 커널 모듈 컴파일시 오류가 발생해서 설치할 수 없다.

Nvidia 드라이버 설치 절차는 이전 글에 올려 놓았는데, Wayland가 동작하려면 이전 글의 "3. 새로운 NVIDIA 드라이버 설치 후 nouveau 드라이버가 로딩되지 않도록 blacklist 파일 생성" 부분에서 blacklist 파일, 즉, /etc/modprobe.d/blacklist-nouveau.conf 파일에 아래의 내용을 한 줄 추가해 주어야 한다. 단, 아래의 옵션 설정에 대한 제약 사항은 여기 참조.

options nvidia-drm modeset=1

그리고 나서, 이전 글의 절차대로 initramfs를 update해 주고 Nvidia 드라이버를 설치하면 된다.

2. Gnome Desktop 설치

Unity Desktop은 당연히 Wayland를 지원하지 않는다. Gnome이나 KDE를 사용해야 하는데 어차피 우분투는 Gnome이 기본 데스크탑이 될 것이므로 Gnome을 설치했다. 참고로, Gnome은 3.22 이후 버전부터 Wayland를 지원하고 있다.

$ sudo apt install ubuntu-gnome-desktop

3. Display Manager 교체

Gnome 설치시에 lightdm 대신 gdm3를 사용하도록 설정해도 되지만, Unity Desktop 사용자들은 lightdm을 사용하고 있으므로 교체 방법을 알아 둘 필요가 있다. 그리고, Wayland를 사용하다가 한글 문제 때문에 lightdm으로 복귀해야 할 경우도 생길 수 있다.

$ sudo dpkg-reconfigure lightdm

위의 명령으로 lightdm 또는 gdm3를 교체할 수 있다. 아래의 명령도 똑 같다고 하는데 내 PC에서는 안되더라.

$ sudo dpkg-reconfigure gdm3

4. Desktop 재기동

단순히 PC를 재부팅해 주면 된다. 즉, Mac PC와 같이 lightdm 서비스를 중지하면 화면이 black screen이 되어 버리는 경우에는 <Alt>+<Ctrl>+<F1>~<F6>키를 눌러서 콘솔로 빠져 나갈 수는 있지만 입력하는 내용이 보이지 않아 오타가 발생하기 쉽다. black screen이 아닌 경우에는 아래와 같이 lightdm 서비스를 내리고 gdm3 서비스를 올려 주면 된다.

$ systemctl stop service lightdm
$ systemctl start service gdm3

5. Wayland로 로그인

Desktop 재기동 후 사용자 id를 선택하고 기어 모양의 아이콘을 클릭하면 "Gnome on Wayland"를 선택할 수 있다. 그리고 나서 로그인하면 완료다.


Wayland 사용담

한글 입력 문제 때문에 Gnome on Wayland를 잠깐만 써보고 다시 Unity Desktop으로 복귀했다. 전반적으로는 훌륭하다는 느낌이다. 빠르고 의외로 대부분의 앱들이 잘 동작한다. 다만 gnome-shell이 죽는 문제가 종종 발생한다. shell extensions 때문인지는 확실하지 않다.

VLC media player로 HD 동영상을 X-Server 환경에서 돌릴 때와 비교해 보면 체감속도 차이가 확난다. 가령 동영상의 중간 시점으로 스크롤해 보면 Wayland 환경에서는 곧 바로 그 시점에서 재생이 되는데 X 환경에서는 화면이 멈춰 있거나 지지거린다.

현재 Wayland 환경에서 문제가 되는 점들은 X-server가 오래된 만큼 버리기 어려운 구닥다리 소프트웨어들이 원하는 대로 잘 동작하지 않을 가능성이 있다는 점이다. 물론 비교적 최신 소프트웨어라 하더라도 Wayland를 잘 지원한다는 보장은 아직 없다. 구닥다리 소프트웨어들은 그래도 XWayland 서버가 지원되고 있어서 어느 정도는 잘 동작한다. 적어도 Gnome Desktop에 딸려오는 소프트웨어들은 Wayland를 잘 지원하는 것으로 보인다. Qt Creator의 경우에는 일부 기능에서 오류가 발생하더라. Qt도 Wayland를 잘 지원하고 있는 편이라서 큰 문제는 아닐 듯 싶다. VirtualBox의 경우에는 3D 가속 옵션을 꺼야 VM이 실행되더라.

역시나 한글 사용자들이 가장 큰 문제다. fcitx는 Wayland를 지원할 예정이라고 하는데 한글 입력이 잘되는 지는 기다려 봐야 한다. ibus는 Gnome의 기본 입력기라 한글이 잘 되어야 할텐데 안된다. 기본적으로는 Wayland 뿐만이 아니라, gdm3 환경에서 한글 입력기들을 사용할 수 없는 것으로 추정된다. gdm3를 사용해서도 Unity Desktop 으로 로그인 할 수 있는데 fcitx든 ibus든 한글 입력이 안된다.


맺음말

우분투 17.10부터 Gnome이 기본 데스크탑이 되면 Wayland 환경이 많이 안정화될 것이고, 사용자들도 급격히 늘어날 가능성이 높다. 생각보다 XOrg 서버가 빨리 퇴출될 수도 있다. 물론 상용 비디오 드라이버들의 지원도 필요하다.

늘 그래왔듯이 한글 사용자들에게는 한글 입력기 개선이라는 숙제가 남아 있다.

2016/10/29

Ubuntu 16.10 Upgrade 후 발생한 문제들


우분투 16.04에서 16.10으로 Upgrade하고 나서 생긴 몇가지 문제들에 대해서 정리한다. Clean Install을 했으면 발생하지 않았을 지도 모를 문제들도 있다. 참고로, 우분투 Desktop 설치 iso 파일은 우분투 16.04가 1.4GB였는데 16.10은 1.5GB가 되었다. 그런데, 의외로 Upgrade 시간은 예전엔 2시간 정도 걸렸는데 이번엔 1시간 정도 밖에 안걸렸다.

Nvidia 드라이버 문제

우분투 16.10 업그레이드 후 Nvidia Proprietary Driver(v367.57)를 선택해서 재부팅했더니 16.04와 마찬가지로 black screen 문제가 생겼다. 우분투 16.04 설치시와 동일하게 Nvidia Site에서 367.57버전을 내려 받아서 재설치했더니 문제가 해결됐다. 16.04에서 사용하던 Nvidia 드라이버는 커널 모듈 컴파일시 오류가 발생해서 사용할 수 없었다.

fcitx 문제

fcitx process가 뜨지 않아서 한글을 입력할 수가 없다. 언어 설정에서 fcitx로 설정해서 로그 아웃했다가 재로그인 하면 fcitx가 동작하지만 재부팅하면 fcitx 프로세스가 뜨지 않는다. 참고로, ibus를 사용하면 문제가 없다. 그래도 ibus 보다 fcitx를 선호하는 편이라서 임시 방편의 해결책이 필요했기에 시작 프로그램에 fcitx를 넣어 주는 방법으로 해결했다. 즉, Unity Dash에서 Startup Applications의 Add 명령으로 /usr/bin/fcitx command를 추가해 주었다.

gcc/g++ v6.2 문제

g++에서 기본 언어 설정이 -std=gnu++14가 되었다. gcc 6.x부터 바뀐 모양이다. gcc 5.x까지만해도 -std=c++98이었는데 c++14를 써라는 야그. 하긴 Qt도 5.7부터는 c++11을 지원하지 않는 컴파일러는 사용할 수 없단다.

문제는 gcc/g++의 문제라기 보다 NVIDIA CUDA Toolkit에 딸려오는 nvcc가 gcc/g++ 6.x를 지원하지 않는다는 것이다. Tensorflow 등의 Deep Learning에 관심이 있는 사람들은 우분투 16.10을 설치하고나서 후회할 지도 모른다. 하지만, 아래와 같이 해결하면 된다.

$ sudo apt install gcc-5 g++-5

$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 100 --slave /usr/bin/g++ g++ /usr/bin/g++-5
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 50 --slave /usr/bin/g++ g++ /usr/bin/g++-6

즉, gcc/g++ 5.x와 6.x를 우분투에 동시에 설치해서 선택해서 사용할 수 있는데 위와 같이하면 우선순위가 높은 gcc/g++ 5.x를 자동으로 사용할 수 있다. 참고로 gcc-5 패키지는 gcc v5.4.1인데 CUDA 7.5/8.0의 nvcc에서 사용할 수 있다.

두 가지 버전의 gcc/g++이 설치돼 있으니 아래 명령으로 버전을 수동 선택할 수도 있다.

$ sudo update-alternatives --config gcc

즉, update-alternatives는 Debian 계열 리눅스 명령으로써 동일한 목적의 패키지들을 사용자가 선택해서 사용할 수 있도록 해준다.

Unity 8/Mir

우분투 16.10부터 Unity 8/Mir 데스크탑이 기본으로 탑재되어 있어서 로그인 화면에서 선택해서 로그인 할 수 있다(?). nouveau 환경에서 로그인이 된다는데 iMac의 문제인지 모르지만 로그인하면 먹통이다. 


기타 참고 사항

간만에 블로그에 와 보니 Syntax Highlighter가 또 다시 동작하지 않고 있다. 구글 드라이브에 올려 놓은 javascript나 css파일들이 동작하지 않는다는 것... 구글링해 보니 구글 이 놈들이 본색을 드러내는 것인지 구글 Cloud 사업하려고 다 막아 버린듯... 그런데, 구글링을 하다가 여기서 github 사이트를 이용하면서 우회하는 방법을 발견했다.

2015/10/28

Ubuntu 15.10 Upgrade


지난 주에 우분투 15.10이 나왔는데 주말에 15.04였던 놈을 Software Updater를 사용해서 15.10으로 Upgrade했다. 대개는 Clean Install을 했었는데 우분투 홈페이지에서 15.10의 새로워진 점을 보았더니 크게 사용자가 느낄 정도로 달라진 점은 없어 보였기 때문이다. 대략 1시간 반 정도 걸렸다. 우분투 15.10에 대한 새로운 기능들은 여기를 참고하면 더 도움이 된다.

대체로 이번 Upgrade는 15.04의 버그 Fix 및 gcc를 비롯한 주요 패키지들이 버전 업 됐다는 것에 만족해야 할 듯 하다. 15.10이라는 버전에 걸맞지 않는다는 의견들도 상당히 있더라. 몇일 써본 봐로도 겉보기에 15.04와 크게 달라진 점은 별로 없어 보인다.

하지만, 우분투를 새로 설치하려는 이들에게는 굳이 우분투 14.04.3 LTS 버전을 설치하기 보다는 많이 안정화됐고 systemd와 같은 새로운 환경에 빨리 적응할 수 있도록 우분투 15.10을 적극 추천하는 바이다.

우분투 15.10 Desktop에서 새로워진 점

Linux kernel 4.2가 탑재되었다. 최신 AMD Radeon GPU 사용자들에겐 희소식일 수 있다. kernel 4.0 이후에 도입된 kernel live patching 기능은 배포판 사용자 들에겐 그리 큰 의미가 있는 것은 아니었다. 어차피 커널 보안 패치는 배포판 서버에서 제공하는 것을 받아야 하니까. 서버 사용자이면서 중요한 커널패치를 실시간으로 적용하고자 할 때는 도움이 된다. 이외에도 Intel Broxton 등 새로운 드라이버들이 새 커널에 많이 포함되었단다.

Unity 7.3.2 데스크탑에서는 주로 Dash쪽 기능들이 개선됐는데 눈에 띄는 부분은 Dash에서 검색한 App을 바탕화면이나 Unity Launcher에 Drag & Drop으로 끌어다 놓을 수 있는 점이다. 그리고, Gnome 3.16에 기반하여 Unity가 동작하는데 대표적으로 Scrollbar가 Gnome Overlay Scrollbar로 바뀌었다. 사실 Unity Scrollbar는 별로 편하다고 생각되진 않았고 굳이 그런데 공들일 필요가 있나 싶겠다는 생각도 있었는데, Canonical이 Upstart를 버린 것처럼 포기할 건 과감히 포기하는 모습은 좋아 보인다. 좀 아쉬운 점은 Gnome 3.16의 패키지들이 모두 Ubuntu 15.10에 Update되진 않았다. 대표적으로 gedit나, Nautilus 파일 관리자가  그것들이다.

이외에도, 개발자들을 위한 Ubuntu Make(umake)가 Android 개발 환경을 비롯해서 다양한 platform과 framework 들을 통합 지원한단다. 우분투에서 Game을 즐기는 이들에게는 Steam Controller가 제공된다는 점도 희소식이 될 것이다. 또한, Persistent Network Interface Name이 도입되어서 eth0 같은 네트워크 인터페이스명 대신 다소 복잡하면서도 영구적인 명칭을 갖게 되었다. 다만, 나처럼 Upgrade한 경우에는 eth0를 그대로 사용하는 듯 하다. VirtualBox에 설치해 보았더니 enp0s3라는 인터페이스가 생겼다. 아래 명령으로 확인할 수 있다.

$ ifconfig

이 밖에, 배경화면을 포함해서, gcc 5.2.1, Firefox 41.0.2, Libre Office 5.0.2.2 등등 수 많은 패키지가 Update 되었다.

한글 패키지와 다솜(dasom) 입력기에 대한 바램

한글 관련 패키지는 언제나처럼 [System Settings] > [Language Support]를 선택하면 설치되는데 fcitx가 기본 패키지로 포함되어 있어서 ibus 대신 쉽게 바꿔 사용할 수 있다. 최근에 우분투 한국 커뮤니티에 다솜 입력기를 정식 출시했던데, 다음 우분투 버전에는 다솜 입력기도 한글 패키지에 포함됐으면 하는 바램이다. ibusfcitx 한글 관련 설정은 우분투 14.10 이후의 방법들을 사용하면 되므로 다시 언급하지는 않겠다.

참고로, 다솜 입력기에서는 한글 마지막 입력 후 마우스 이동시 한글이 따라 다니는 끝 글자 버그를 해결했단다. 고생하신 개발자 분께 감사드린다. 한편으로는, 다른 한글 입력기들의 고질적인 유지보수 문제를 해결하기 위해서 더 많은 사람들이 관심과 참여를 가질 수 있기를 바라고, 혼자서 프로젝트를 끌고 가려고 하지말고 나같은 노친네들보다는 후배들이 많이 참여할 수 있도록 해 주시길 바란다. Mir나 Wayland로 X-Window 환경이 바뀌게 되면 또 다른 노력이 필요할 것이고 미래에도 새로운 기술 환경에 적응해서 살아 남아야 하기 때문이다.

우분투 15.10 Upgrade 후 생긴 자잘한 문제들

우분투 15.10으로 Upgrade하고 나서 우분투로 부팅하면 Unity 로그인 화면이 나타나야 하는데 공포의 black screen이 나타났다. 다시 전원을 끄고 부팅했더니 제대로 나타났다가 또 부팅하면 다시 black screen이다. 그런데, Volume을 좀 키웠더니 다행히 black screen 문제는 공포의 black screen 증상은 아니었다. 우분투 부팅시 북 두드리는 소리가 들렸기 때문이다. <Ctrl><Alt><F2> 눌렀다가 <Alt><F7>을 눌렀더니 로그인 화면이 나타났다. 혹시나 해서 ~/.cache 폴더를 지우고 lightdm을 다시 설치했더니 이 문제가 해결된 듯 했는데 재발하더라. [System Settings] > [Software & Updates] > [Additional Drivers] Tab에서 Nouveau 드라이버를 선택했다가 재부팅 후 다시 Nvidia 드라이버를 선택하고 재부팅했더니 더이상 재발하지 않는다.

이 외에 VirtualBox 5.0.8이 죽는 문제가 있었는데 한번만 생기고 더이상 발생하지는 않고 있다. 그리고 chrome이나 chromium 기동시 기본 브라우저로 설정할지를 계속 물어 보는데 더 이상 묻지 않기를 click하면 된다.

기타 참고 사항

우분투 15.10부터 바뀐 것인지 아니면 chrome/chromium에서 제공하는 기능인지 모르겠는데 다운로드시 다운로드 진행상태가 Unity Launcher의 아이콘에 표시된다. firefox는 안된다.

VirtualBox UEFI 모드 Guest 부팅 문제 해결

이전 게시물에서 해결하지 못했던 문제를 해결했는데, 우분투 14.10 이후 버전부터 VirtualBox에서 UEFI 모드로 Guest를 설치하면 가상머신으로 부팅할 수 없었던 문제가 있었다. 15.10에서도 역시 같은 증상이었는데 구글링해 보니 해결 방법이 있었다. UEFI Shell에서 startup.nsh 스크립트 파일이 있으면 이놈을 먼저 실행하는데 여기에 grubx64.efi path를 넣어 주면 UEFI 모드로도 부팅할 수 있다. VirtualBox나 btrfs 파일시스템의 문제는 아니었다. 다만, 우분투 14.04에서는 별다른 설정 없이도 가능했는데 왜 그런지는 모른다. VirtualBox에서 우분투 설치 iso로 부팅한 후 아래와 같이 startup.nsh를 새로운 가상 머신의 EFI System Partition(ESP)의 / 폴더에 생성해 주고 가상머신을 재부팅하면 된다.

$ sudo mount /dev/sda1 /mnt
$ cd /mnt
$ sudo echo '\EFI\ubuntu\grubx64.efi' > startup.nsh

2015/05/06

Qt 5.4 fcitx immodule Build 및 한글 사용


이전 글에서 우분투 15.04 Unity Desktop 환경에서 한글 입력기로 fcitx를 추전했는데, 막상 Qt 5.4의 Qt creator에서는 한영키가 동작하지 않아 황당했다. 당연히, 이 Qt creator로 build한 Qt 5.4 애플리케이션에서도 한영키가 동작할리 없다. 이전 글에서 테스트한 Qt 앱은 Qt 5.3에서 build 했던것 같다. 한마디로 우분투 패키지로 다운 받은 fcitx는 최신 버전의 Qt 5.4를 지원하지 않는 것 같다. 뭔가 달라진 듯...

구글링하니까 마침 일본 블로그에 fcitx build하는 방법이 올라와 있어서 다시 build 한 후 Qt5 immodule를 복사해 넣었더니 모든 Qt 애플리케이션에서 한글입력이 잘 된다. 다만, 그 블로그 내용을 그대로 따라하니까 안되더라... 그래서 다시 정리한다.

Qt 5.4에서 fcitx Qt5 immodule build

$ sudo apt-get install git cmake

$ git clone https://github.com/fcitx/fcitx-qt5.git
$ cd fcitx-qt5
$ git checkout 0.1.3

build 하기 전에 Qt 5.4가 설치된 홈 폴더를 미리 알아 두어야 한다. 나의 PC에는 /opt/OpenSrc/Qt에 설치하였다.

$ cmake . -DCMAKE_PREFIX_PATH=/opt/OpenSrc/Qt/5.4/gcc_64
$ make

기존 fcitx 패키지로 설치된 Qt5 immodule 대체 설치

기존의 우분투 fcitx 패키지에 딸려온 Qt5 immodule을 대체해버리는 것이 가장 좋은 설치 방법이다. 안전을 위해 원래 파일은 org.libfcitxplatforminputcontextplugin.so로 백업했다.

$ sudo mv /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/org.libfcitxplatforminputcontextplugin.so

$ sudo cp ./src/libfcitxplatforminputcontextplugin.so /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/

또 한가지 대체해야 할 파일이 있다는 것을 나중에 알았다. Qt5 immodule이 사용하는 runtime library 파일 하나가 같이 build 되었다. 이 놈까지 버전이 일치해야 한다.

$ sudo mv /usr/lib/x86_64-linux-gnu/libfcitx-qt.so.0.1 /usr/lib/x86_64-linux-gnu/org.libfcitx-qt.so.0.1

$ sudo cp ./fcitx-qt5/libfcitx-qt5.so.0.1 /usr/lib/x86_64-linux-gnu/libfcitx-qt.so.0.1

참고 사항

참조한 일본 블로그에는 환경 변수 설정 같은 것들이 있다. 그렇지만 .bashrc에 입력기 환경변수를 넣으면 X-Window의 실행 순서 때문에 환경변수가 제대로 동작하지 않을 수도 있다. 편하고도 안전한 방법은 먼저 fcitx 패키지를 설치하는 것이다. 이 글은 fcitx 패키지가 먼저 설치된 것을 전제로 했다.

일본 블로그에서 설명하듯이 기존 파일들을 대체하지 않고도 새로 build한 Qt5 immodule을 사용할 수도 있는데 runtime library가 두 개라 환경 설정을 제대로 해주어야 한다(기존 패키지와의 충돌때문에 설정이 다소 복잡하므로 세부 설명은 안한다). 다만, Qt5 immodule을 복사해야 할 폴더는 /opt/OpenSrc/Qt/5.4/gcc_64/plugins/platforminputcontexts가 아니고, /opt/OpenSrc/Qt/Tools/QtCreator/bin/plugins/platforminputcontexts이더라. 뭐, 두 곳에 다 복사해도 상관은 없다.

2015/05/05

우분투 15.04 fcitx-hangul 설치 및 설정


우분투 15.04에서 기본 입력기인 ibus가 큰 문제가 있는 건 아니지만, 최근에 Qt5를 배우면서 Qt5 입력기 모듈을 제공하는 fcitx를 설치해 보기로 했다. ibus나 uim 입력기는 Qt5 애플리케이션에서 한글 입력시 띄어쓰기 등의 문제가 발생한다. ibus의 경우 이 문제에 대해 버그 리포팅 한지 1년이 다 돼가는데 Qt5.5 이후에나 사용할 수 있을 듯 하다.

참고로, ibus나 fcitx 주 개발자는 중국인이고 uim은 일본인이다. ibus-hangul과 nabi 개발자는 한국 사람인데 그가 만든 libhangul을 fcitx-hangul 입력기에서 사용하고 있다. 그래서 그런지 몰라도 ibus-hangul에서 발생하는 마지막 입력글자가 마우스 이동시 따라 다니는 문제는 fcitx-hangul에서도 발생한다. uim-byeoru를 만든이도 또 다른 한국인인듯 하다. 한글 입력기의 문제는 한국 개발자들이 주개발자가 아니고 한글 입력기 모듈만을 만든는데서 비롯되는 것인지도 모른다. 워낙에 개발자 저변이 열악하다 보니 한번 만들면 유지보수나 사용자 지원이 잘 이루어지지 않고 있는 것이 현실이다.

fcitx를 설치 후 사용해 본 바로는 현재까지의 입력기들 중에선 우분투 유니티 데스크탑 환경에서 가장 좋은 한글입력기라고 말하고 싶다. 기본적으로 유니티 상단 패널에서 한영 전환 상태를 구분할 수 있고, 한자 입력은 물론이고 virtual keyboard를 이용해서 일본어나 특수문자 입력도 가능하다. Qt5 입력 모듈이 기본 제공되고 있어 Qt5 애플리케이션에서도 한글입력이 잘 된다.


fcitx 설치

아래와 같이 fcitx-hangul 패키지만 설치하면 필요한 패키지들이 모두 설치된다.

$ sudo apt-get install fcitx-hangul

패키지 설치 후 기본 입력기인 ibus대신 아래 화면과 같이 [System Settings] > [Language Support]에서 [Keyboard input method system:]의 [fcitx]를 선택한 후, 다시 로그인해야 한다.


한글 키보드 추가 및 한영키 설정

재로그인 후, fcitx 설정 프로그램을 실행해야 한다. 유니티 패널 상단의 키보드를 클릭하여 Configure를 선택하거나, <Super> Key를 눌러서 유니티 대쉬에서 fcitx를 검색해서 나오는 [fcitx Configuration] 아이콘을 선택해서 기동해도 되고, 터미널에서 아래 명령으로 실행해도 된다.

$ fcitx-config-gtk3

먼저, 아래 화면과 같이 [Input Method] 탭 하단 왼쪽의 [+] 버튼을 눌러 Hangul 키보드를 검색한 후 선택하여 추가해 준다. 참고로, 내 경우엔 우분투 기본언어를 영어로 사용하고 있어서, 한글을 기본 언어로 사용하는 경우에는 반대로 Keyboard-English(US)를 추가해야 할지도 모르겠다. 그리고, 두개의 키보드가 추가된 상태에서 위에 있는 키보드가 기본 키보드가 된다. 즉, Hanul 키보드가 위에 있도록 순서를 조정하면 터미널 등의 애플리케이션 실행 후 한글 입력 상태가 된다.


참고로, 이렇게 추가된 키보드는 [System Settings] > [Text Entry]에서도 확인할 수 있는데 한글 키보드는 Hangul (Fcitx)로 표시된다.

이제, 한영전환키로 한영키만 설정해 주면 된다. 아래 화면과 같이 [Global Config] 탭에서 [Trigger Input Method]에 [Ctrl+Space]와 [Empty]로 표시되어 있는 버튼을 각각 눌러서 [한/영]키와 [Shift+Space]키로 바꿔주면 된다.


추가 설정

위의 과정까지만 해 주어도 fcitx를 입력기로 쓰는데 큰 지장은 없는데, 아래 화면과 같이 한글로 전환시 [Hangul]이라고 표시되는 작은 창이 뜨는게 좀 귀찮아서 없애기로 하였다.


위의 화면에 없애는 방법도 같이 보여주고 있는데, gedit로 ~/.config/fcitx/config 파일을 열어서 "ShowInputWindowAfterTriggering=False" 부분을 설정해서 저장한 후,

$ gedit ~/.config/fcitx/config

아래 명령으로 fcitx를 재기동 해주면 된다.

$ fcitx -r

Virtual Keyboard 사용

맨 위의 스크린 샷에 보이는 virtual keyboad를 사용하려면 유니티 상단 패널의 키보드나 태극문양 아이콘을 클릭해서 [Toggle Virtual Keyboard]를 선택하면 키보드가 나타나고, 한번더 선택하면 사라진다. 마우스로 Virtual Keyboard의 [Latin] 부분을 선택하면 번갈아 가면서 일본어 등 다른 키보드들을 선택할 수 있다. 또한, 마우스로 특수문자를 입력해도 되고 해당 키보드가 선택된 상태에서 실제 키보드를 입력해도 해당 키의 특수문자가 입력된다.

fcitx 자잘한 문제들

앞서 언급했던 ibus-hangul과 동일한 한글 마지막 입력글자가 마우스 따라다니는 문제 외에, 우분투 VirtualBox 게스트에서 영문 모드 상태의 유니티 Dash에서 한영키가 동작하지 않아 한글이 입력되지 않는 문제가 있었다. 우분투 호스트에서는 그런 문제는 안생기고 있다. 또, 한가지는 ibus-hangul에서도 발생하는 문제인데, 영문모드 상태에서 구글 chrome 브라우저를 실행하자마자 주소창에서 한영키를 누를 경우 한영전환이 안되는 문제가 있다. 주소창이 아닌 검색창에서 한영키를 누르면 한영전환이 잘 된다.

추가적으로, 다시 ibus를 사용하고자 할 경우 [System Settings] > [Language Support]에서  [fcitx] 대신 [ibus]를 선택하고 재로그인 해 주면 되는데, 한영키를 사용하려면 Hangul (ibus) 키보드를 다시 추가해 주어야 한다. 이때 불필요한 fcitx 프로세스 하나가 같이 살아있는 문제도 있다.

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/04

Ubuntu WINE 한글 설정 및 iso 이미지/CD 교체


우분투에 WINE 1.7을 설치하고 나서 Windows Application에서 한글이 잘 보이도록 설정하는 법과 Game 등 두 개 이상의 CD를 사용해서 소프트웨어를 설치 해야 하는데 iso 이미지들을 사용하여 교체하는 법에 대해서 정리한다.

WINE 기본 환경 설정

먼저, ~/.bashrc 파일에 아래의 환경 변수들을 설정해 둘 필요가 있다. 64-bit 우분투를 사용하는데 Windows 소프트웨어가 대부분 32-bit이므로 여기에 맞춰 줄 필요가 있다.
export WINEARCH=win32           # WINE architecture for 32-bit
export WINEPREFIX=~/.wine32     # WINE default folder for 32-bit
export WINEDEBUG=-all           # disable WINE debug messages
export LANG=ko_KR.utf8          # 한글 입출력
WINE 기본 환경설정은 winecfg를 실행해서 바꿔주면 된다.

$ winecfg

[응용 프로그램] 탭에서 실행 환경의 윈도우즈 버전을 Windows NT 4.0과 같이 맞춰줄 수도 있고, [그래픽] 탭에서 [가상 테스크탑 흉내내기]를 선택하여 적절한 데스크탑 크기를 지정할 수 있다.

WINE Windows 프로그램에서 한글 설정

Windows 프로그램에서 한글 입출력을 사용하려면 기본적으로 위의 LANG 환경 변수를 ko_KR.utf8로 반드시 설정해 주어야 한다. ibus 환경에서도 한글 입출력은 잘 된다.

registry 편집기에서 한글 폰트를 바꾸거나 일부 애플리케이션에서 한글 글꼴이 네모로 보이는 문제를 해결하려면 "아무도안" 블로그 중 "Wine 1.7 한글 글꼴 설정"을 참고하면 된다. 

Windows용 카카오톡에서 한글 입력을 하려면 아래의 패키지를 winetricks로 설치하고 나서 카카오톡을 설치해야 한다.

$ winetricks gdiplus wmp10 reiched20

WINE 프로그램에서 iso 이미지를 이용한 CD 교체

주로 게임 소프트웨어 설치시 여러 장의 CD로 구성되어 있어서 CD를 교체하라고 할 때가 있다. 요즘은 CD 대신 iso 이미지를 마운트해서 사용하므로 WINE에서 iso 이미지를 교체할 필요가 있다. 첫 번째 iso 이미지에서 setup 실행은 문제가 없는데 CD 교체하라고 할때 winecfg의 [드라이브] 탭에서 CD 경로를 바꾸어 주어도 안된다.

d: 드라이브가 CD 드라이브라면, CD를 교체하라는 메시지가 나오면 아래와 같이 해주고 확인을 선택하면 된다.

$ cd ~/.wine32/dosdevices
$ ln -sf <iso 파일 명을 포함한 경로> d::

예를 들어, ~/iso 폴더에 iso 이미지 들이 들어 있다고 가정하면,

$ mkdir ~/iso/cdrom
$ mount ~/iso/CD_install_1.iso ~/iso/cdrom
$ wine ~/iso/cdrom/setup.exe

첫번째 iso 이미지에서 설치가 끝나고 두 번째 CD를 넣으라고 하면,

$ umount ~/iso/cdrom
$ mount ~/iso/CD_install_2.iso ~/iso/cdrom
$ cd ~/.wine32/dosdevices
$ ln -sf ~/iso/CD_install_2.iso d::
$ ls -l
lrwxrwxrwx 1 aaa aaa 30 Aug 16 19:29 d: -> /home/aaa/iso/cdrom/
lrwxrwxrwx 1 aaa aaa 41 Aug 16 19:36 d:: -> /home/aaa/iso/CD_install_2.iso
위의 예에서와 같이 d: 드라이브가 마운트 폴더인 ~/iso/cdrom 폴더에 소프트 링크되어 있고, d::는 d: 드라이브에 대한 실제 iso 이미지 파일의 소프트 링크가 되어야 한다.

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