상세 컨텐츠

본문 제목

리눅스에서 키보드 리매핑.

Ubuntu&Linux

by Vulpes.Noctis 2008. 10. 20. 09:31

본문

이 정보는 제대로 원하는 결과를 낼 수 없을지도 모릅니다. 갱신된 글인 리눅스에서 키보드 리매핑 - Part 2를 읽어주세요.

전 원래 맥 유저 출신이라 기본적으로 PC에서 사용되는 컨트롤, 알트, 슈퍼 (윈도우 키)의 위치가 매우 불편합니다. 뭣보다 컨트롤의 위치가 엄지손가락 아래가 아닌 새끼손가락인것은 정말 큰 불만사항인데... 윈도우즈에서는 KeyTweak이란 프로그램으로 바로 바꿔줄수 있지만 리눅스에선 제대로 된 유사 프로그램이 없다는 문제가 있었습니다 (xkeycaps라는 프로그램이 있긴 하지만 99년에 개발이 중단되어서인지 문제가 많습니다).

물론, 이 이면에는 우분투를 비롯한 리눅스 데스크톱에서는 대부분의 사람들이 원하는 특수키 리매핑은 자체 지원을 해 주고 있다는 점이 크게 작용하고 있긴 합니다.

GNOME 키보드 설정

기본 제공하는 옵션이 상당히 많습니다. 원하는게 여기 있다면 이걸 쓰는게 좋겠죠.



하지만 정작 제가 원하는 세팅은 여기 포함되어 있지 않아서 의미가 없습니다. ㅠㅅㅠ Xmodmap을 사용해 주면 임의의 키를 리매핑 할수 있지만 이게 생각보다 사용이 까다로와 한동안 제대로 사용을 못하다가 최근 불완전하나마 결국 원하는 결과를 내긴 했습니다.

우선, 제가 원하는 세팅은 이겁니다.

왼쪽 Control 키를 Super_L 키로 변경
왼쪽 Super 키를 Alt_L 키로 변경
왼쪽 Alt 키를 Control_L 키로 변경


1. 일단 터미널을 열고
xmodmap

을 입력합니다. 그럼 현재 특수기능 키들이 어떻게 매칭되어 있는지 리스트가 나옵니다.

2. 자신의 홈 디렉토리 안에서 .Xmodmap 이란 이름을 가진 파일을 생성합니다 (파일명 앞의 [.] 주의 - 이래야 일반 사용시 눈에 보이지 않습니다). 그리고 내용을 다음과 같이 작성해 줍니다.
! 사용되고 있는 키를 해제시킨다
remove control   = Control_L
remove mod4      = Super_L
remove mod1      = Alt_L

! 키를 바꿔치기해 준다.
! 형식은 keysym [원하는 키의 기능] [실제 키보드의 키]
keysym Control_L = Alt_L  !알트 키를 컨트롤 키로 작동하게 한다
keysym Alt_L = Super_L    ! 슈퍼 키를 알트 키로 작동하게 한다
keysym Super_L = Control_L  ! 컨트롤 키를 슈퍼 키로 작동하게 한다

!바꿔치기 한 키를 다시 추가해 준다.
add control   = Control_L
add mod4      = Super_L
add mod1      = Alt_L

3. 재부팅 후, .Xmodmap을 로드하겠냐는 경고창이 나오면 그대로 로딩해 줍니다.

4. 적용되었는지를 보려면 터미널에서 xmodmap을 실행해 결과물을 보면 됩니다.

근데 일단 이렇게 해서 원하는 결과를 내기는 했는데 제가 뭔가 잘못하고 있는건지 100% 깔끔한 솔루션은 아닌듯 합니다. 현재 위와 같이 적용한 지금, xmodmap을 실행하면 다음과 같은 결과가 나오는데,
xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Caps_Lock (0x42)
control     Control_L (0x40),  Control_R (0x6d),  Control_L (0x7d)
mod1        Alt_L (0x73),  Alt_R (0x71),  Meta_L (0x9c),  Alt_L (0x7f)
mod2        Num_Lock (0x4d)
mod3    
mod4        Super_L (0x25),  Hyper_L (0x80)
mod5        Mode_switch (0x5d),  ISO_Level3_Shift (0x7c)

보시다시피 Control_L과 Alt_L이 2개씩 잡히고 있습니다. 그 줄의 맨 앞쪽의 것은 기본값이고 맨 뒤쪽의 것이 제가 새로추가해 놓은건데... 왜 슈퍼는 이런 문제 없이 잘 들어갔는데 Control과 Alt만 이렇게 되는지는 잘 모르겠습니다. 이게 좀 찝찝하긴 한데 뭐 작동은 문제없이 하니....;;;

암튼 드디어 3개 OS에서 거의 동일한 방식으로 키보드 쇼트컷을 쓸 수 있어 아주 만족중입니다. 근데버릇이 무섭다고... 지금까지 우분투 써오면서 계속 여기선 키매핑을 바꾸기 전 주의하던 버릇이 남아 오히려 역으로 나도 모르게바꾸기 전의 키들로 손이 가는군요 ㅋㅋ 뭐 좀 지나면 괜찮겠죠.

관련글 더보기