우분투16과 KDE

오랫동안 Ubuntu 14.04 LTS를 써 왔습니다. Unity는 불편했지만 그럭저럭 적응하며 익숙해졌습니다. 그래도 다음 OS에서는 Unity를 쓰지 말자고 다짐했습니다. 왜냐고 물으면 명확하게 답을 못 하겠습니다. 살짝 느린 느낌이 든다는, 제가 싫어하는 비과학적인 답을 해야 합니다. 아무튼 다음에는 archlinux나 debian처럼 rolling update가 가능한 OS를 쓰고 싶었습니다.
처음에는 archlinux 기반에 tiling WM을 검토했습니다. 다른 HDD 파티션에 archlinux를 깔고 WM으로 i3wm을 설치했습니다. i3wm을 고른 이유는 가장 많이 쓰이는 WM이기 때문입니다. pollmill reddit slant 결과적으로 i3wm은 사용을 포기했습니다. 문제가 꽤 많았고 하나씩 해결해 가긴 했지만, 아래 두 가지에서 시간을 너무 쓰는 것 같아 현재는 미뤄 둔 상태입니다. 첫째, wine 기반으로 KakaoTalk을 설치하면 tiling이 제대로 동작하지 않았습니다. wine만 예외로 tiling을 disable해도 여전히 이상하게 동작했습니다. 둘째, Chrome이 느렸습니다. 정확히는 URL 입력 바에서 키 입력에 지연이 있었고, 탭 이동이나 페이지 로딩에서도 약간씩 지연이 있었습니다. 아마도 Ubuntu 패키지가 자동으로 잡아 주던 그래픽 드라이버 설정을 i3wm에서는 수동으로 해 줘야 하는 게 아닐까 추측하고 있습니다.
2016년 3월 13일, 알파고와 이세돌의 경기를 매일 재미있게 보다가 발견한 사실이 있습니다. 알파고는 Ubuntu14, Unity에서 돌아가는 것으로 보였습니다. 근거는 다음과 같습니다.


2016년 4월 21일에 Ubuntu 16.04가 릴리즈되었습니다. reddit reddit 바로 업그레이드를 하려고 했지만 일이 바빠서 미뤘습니다. 역시 LTS는 16.04.1이 나오고 나서 업그레이드해야 마음이 놓입니다. 그러고는 2016년 7월 22일에 Ubuntu 16.04.1이 릴리즈되었습니다. reddit
회사에서 KDE를 좋아하는 쿠퍼님에게 설득되어 KDE를 써 보기로 했습니다. KDE의 가장 큰 장점은 파일 관리자인 Dolphin이 매우 좋다는 점입니다.

저는 원래 shell에서 파일 관리를 주로 하는 편이라, Ubuntu14에서 쓰던 GNOME Files(=Nautilus)에도 딱히 불만이 없었습니다. 그런데 Dolphin을 몇 주 써 보니 아주 만족스럽습니다. split이 된다는 점, 아래쪽에 shell이 함께 나온다는 점, 디렉터리를 옮기면 그 아래의 shell도 자동으로 cd가 된다는 점이 마음에 듭니다. 적어도 제 취향에는 macOS의 Finder보다 훨씬 잘 맞습니다. 여러 파일을 한 번에 rename할 때 혹시 regex를 지원할까 기대했지만 그건 안 됩니다. 이건 shell에서 하면 되니 큰 문제는 아닙니다.
다른 HDD 파티션에 Kubuntu 16.04.1을 설치했습니다. USB로 부팅하기 위해 sudo dd if=./kubuntu-16.04.1-desktop-amd64.iso of=/dev/sdb를 했고, GRUB이 뜬 다음 start kubuntu에서 install kubuntu로 설치를 진행했습니다.
네트워크를 잡고 git, curl, tmux, zsh, vim, dropbox, fcitx를 설치했습니다. system ruby, python, nodejs를 그대로 쓰지 않으려고 rvm, pyenv, nvm을 설치했습니다. system ruby와 python을 못 쓰게 하려고 /usr/bin/python*을 rename했더니, 이번엔 terminator가 실행되며 오류를 내서 다시 되돌렸습니다. wine과 KakaoTalk도 설치했습니다. 여기까지 깔린 상태가 제 필수 환경이라고 생각합니다.
Ubuntu14를 메인으로 계속 쓰면서 하루에 10분에서 30분씩 Kubuntu16으로 부팅해 문제를 만나고 해결하기를 반복했습니다. 3개월 정도의 트러블슈팅 끝에 드디어 Kubuntu16을 메인으로 쓰기 시작했습니다.
Ubuntu14 Unity 에서 -> Ubuntu16 KDE 로 넘어오면서 생긴 문제/해결
부팅했을 때 fcitx가 자동으로 실행되지 않는 문제가 있었습니다. ~/.config/autostart/fcitx-autostart.desktop 파일을 만들어 해결했습니다.
zshrc 안에서 DE가 KDE인지 여부에 따라 분기하는 로직이 필요했습니다. $DESKTOP_SESSION을 쓸까 고민하다가 $XDG_CURRENT_DESKTOP을 쓰기로 했습니다.
KDE가 ~/.xprofile을 읽지 않는 문제가 있었습니다. /etc/X11/Xsession.d/ 아래에 파일을 생성해서 해결했습니다.
나눔고딕코딩 글꼴 설치가 잘 되지 않았습니다. 공식 사이트의 설치 가이드대로 하면 오류가 났습니다. sudo apt install fonts-nanum fonts-nanum-extra fonts-nanum-coding fonts-baekmuk fonts-unfonts-core fonts-unfonts-extra로 패키지를 깔아 해결했습니다.
KDE 기본 터미널인 konsole에서 NanumGothicCoding 폰트를 선택할 수 없었습니다. 결국 konsole 대신 다른 터미널을 쓰기로 했습니다. 처음에는 top-down terminal을 시도했습니다. top-down terminal이란 게임 Quake의 채팅창처럼 F12를 누르면 위에서 터미널이 내려오는 스타일을 말합니다. Guake, Yakuake, Tilda 같은 것들이 여기에 속합니다. 여기서도 설정 문제가 있어서, 결국 terminator에 적응했습니다.
app launcher를 meta 키 하나로 실행하고 싶었습니다. KDE의 설정 어디에도 mod 키 하나만으로는 shortcut을 지정할 수 없었습니다. 어쩔 수 없이 meta+z로 shortcut을 잡았습니다.
특정 키를 누르면 특정 앱이 실행되거나 해당 앱으로 포커스가 옮겨 가는 shortcut을 만들고 싶었습니다. KDE는 명령을 global shortcut으로 잡을 수 있고, 다음과 같이 포커스를 옮기거나 실행할 수 있습니다.
wmctrl -xa terminator.Terminator || terminator
R_ALT를 한/영 키로 설정했더니 빠르게 한영 전환이 되지 않는 문제가 있었습니다. right alt만 전체적으로 disable하고 싶었지만 그건 불가능한 것 같았습니다. 사용하지 않는 ALT 조합 shortcut을 보이는 대로 지웠습니다.
proxy 설정을 shell에서 하고 싶었습니다. Ubuntu14 Unity에서는 gsettings 명령으로 설정했었습니다. KDE에서는 아래 파일과 명령으로 가능해 보이는데, 일단 필요할 때 적용하는 것으로 미뤄 두었습니다.
~/.kde/share/config/kioslaverc
kreadconfig --file kioslaverc --group "Proxy Settings" --key httpproxy
vim을 소스에서 직접 빌드하는 데 문제가 있었습니다. --enable-gui=auto 옵션으로 빌드하면 checking --enable-gui argument... no GUI support라는 에러가 났습니다. /etc/apt/sources.list가 디폴트로 deb만 활성화되어 있는데, deb-src 라인의 주석을 풀고 build-dep을 하면 해결됩니다.
마지막으로, headphone으로 음악을 듣다가 headphone을 뽑으면 speaker는 자동으로 음소거되게 하고 싶었습니다. Ubuntu14 Unity에서는 headphone과 speaker 각각에 대해 제가 조정한 소리 크기를 자동으로 기억해 주었기 때문에 알아서 잘 동작했습니다. KDE는 제 선택을 기억하지 않습니다. 해결책은 시간 있을 때 다시 찾아봐야겠습니다.

