before 2020/Linux

우분투 14.04 오른쪽 Alt를 한영키로 쓰자!

hom2s 2014. 5. 14. 01:35

언제나 버전업 할때마다 문제가 되는 이놈의 한영키 ㅡㅡ;

나 같은 경우엔 좀 다른게 내 기계식 키보드엔 '한영키'라는 것이 붙어있질않다.

그 자리엔 Alt_R 키만이..

<국민 기계식키보드 레오폴드, 한영키 같은거 엄따>


14.04에서 iBus로 입력기를 사용한다면 Settings>Text Entry (한글언어로는 설정>글자입력? 정도일라나) 에서

오른쪽 Alt키를 설정해주면 Alt_R 로 표시된다.

이제 해보자. 글자를 치다가 언어를 바꾸고싶을때 오른쪽 Alt를 누르니 언어가 잘 바뀐다.(야호)

이걸로 끝.


.. 이라면 이 고생을 하지도 않았지..

문제는 글자를 바꾸는것이 아니라 이 Alt_R이 다른키와 조합되는 순간이 었다.

Alt_L이든 Alt_R 이든 둘다 Alt의 기능을 하고 있다보니 글자를 치다가 언어 전환을 위해 Alt를 누른 상태에서 미처 그것을 때기전에 다음 글자 입력을 위해 F 나 S 등을 누르면 그순간 File Menu가 뽀옹~ 하고 나타나며 포커스를 가져가 버린다 ㅡㅡ;  글치다가 툭하면 File Menu가 뜨고 툭하면 Save As 다이얼로그가 뜬다고 생각해봐라. 그중에 갑은 가끔 어떤조합인지 모르겠지만 막 치다가 따닥! 했는데 창이 종료되어 버리는..(끄아아아)


문제의 원인은 Alt_R이 Alt의 기능을 하고 있다는것에서 문제가 된다. 보통 오른쪽 Alt는 잘 안쓰잖아. 오른쪽 Alt의 기능을 제거하자.

시중에 많이 떠도는 방법은 xmodmap -e 'remove mod1 = Hangul' 커멘드를 입력하는 방법이다. 나도 잘 모르긴 하지만 내가 알기론 저 명령어는 'Hangul이라는 키를 mod1에서 제거한다' 라고 알고있다. mod1 의 역할이 Alt 의 역할이라고 하니(출처불분명;) 결국 저 명령어는 'Hangul을 눌렀을때 Alt의 기능을 하지 않게 한다'라는 말이 될것이다. 지금의 내 상황과 관계가 없으니 패스.. 하기전에 여기서 생각해볼 수 있는것이 그럼 remove mod1 = Alt_R 을 해준다면 Alt_R을 Alt의 기능을 못하게 할 수 있지 않은가?? 


터미널에 xmodmap 이라고 쳐보자. 그럼 각 mod들에 매핑된 키들을 확인할 수 있다.

그중 mod1을 보면 Alt_L, Alt_R, Meta_L 이라고 되어있다.(나는 그랬음;) 저기에 Alt_R 이 들어있기때문에 Alt의 기능도 함께 하는것이다. 그럼 위 명령어를 동원해서 지워보자. xmodmap -e 'remove mod1 = Alt_R' .. 그리고 다시 확인. xmodmap. 없어졌나? 나는 없어졌다.

신나는 마음으로 글을 써보자. 아마 File Menu가 또 우릴 반겨줄것이다.

안된다. xmodmap을 다시 실행해보면 분명 좀 전에 사라졌던 Alt_R이 다시 자리하고 있을것이다. 지우고 로그아웃,재부팅,껏다켜도 지운 다음 Alt_R을 누르는 순간 다시 xmodmap에 나타나게 된다. 즉, 위 명령어가 전혀 먹히지 않는다는 것이다. 다행히 이에 대한 설명을 찾을 수 있었다.


http://askubuntu.com/questions/325272/permanent-xmodmap-in-ubuntu-13-04

여기 답변을 보면 우분투에서 더 이상 xmodmap을 사용하지 않는다고 한다. 대신 xkb라는것을 사용한다고 하면서 몇가지 방법들을 제시하고 있다. 그렇담 우린 Alt_R의 기능을 제거해야하니깐 /usr/share/X11/xkb/symbols/ 에서 altwin 이란 파일을 열어보자. xkb를 잘모르니 온갖 노가다를 다해서 방법을 찾아내었다. 이 파일 내용중 가장 위쪽에 다음과 같은 코드를 볼 수 있는데


// Meta is mapped to second level of Alt keys.
partial modifier_keys
xkb_symbols "meta_alt" {
    key <LALT> { [ Alt_L, Meta_L ] };
    key <RALT> { type[Group1] = "TWO_LEVEL",
                 symbols[Group1] = [ Alt_R, Meta_R ] };
    modifier_map Mod1 { Alt_L, Alt_R, Meta_L, Meta_R };
//  modifier_map Mod4 {};
};


여기서 symbols[Group1] = [ Alt_R, Meta_R ] }; 코드의 Alt_R, Meta_R 을 지우고 Hangul 이라고 써주자.

그리고 위 링크에서 말한대로 변경된 사항을 반영하기 위해 /var/lib/xkb/ 아래의 파일들을 모조리 지우자.(이런 작업할때 언제나 Backup하자 ㅎㄷㄷ)

이제 로그아웃/인 을 한 후 아무창에서 Alt_R + F 를 눌러봐라. File Menu가 안뜨지 않는가!!??

성공이다. 이제 입력소스 전환 단축키를 등록만 해주면 된다.

이 과정은 http://www.ubuntu.or.kr/viewtopic.php?p=118822 링크의 3번과 같이 해주기만 하면 오른쪽 Alt를 순수 한영키로 사용 할 수 있게된다.(야호)


* 주의
혹시나 해서 VirtualBox의 윈도우에서 오른쪽 Alt를 눌러보니.. 역시;; 오른쪽 Alt키가 Guest OS에 capture되지 않고 Host OS상에서 동작을 한다. 원래 윈도에서는 잘되었는데;; capture 대상에 Hangul이란 키는 없기때문인가 싶기도 하고.. 이건 우째해야하는지 잘 모르것다. 누군가 도움의 손길을 내밀어 줬으면 하는 바람이다. (대신 임시로 Shift+Alt_R을 눌러봐라;;;;;; 우분투에서 Shift+Alt_R에 대한 단축키가 없다면 윈도상에서 잘동작할꺼다;;;;;)