HOME > etc > tips

우분투에서 xmodmap을 이용하여 key를 remap하는 방법

By JS | 29 May 2018

Ubuntu의 xmodmap이라는 프로그램으로 keyboard의 hardware key를 다른 key로 변경할 수 있다. GUI프로그램이 아니라 설정하기 쉽지는 않지만 간단히 방법을 찾아 수정을 해 보았다.

적용 방법

아래 명령어를 입력하면 현재 사용하고 있는 layout이 저장된다. 백업을 미리 준비하여 혹시 모를 사태에 대비할 수 있다.

$ xmodmap -pke > ~/xmodmap_original

백업을 만들어두었으면, 수정할 layout을 아래와 같은 경로와 이름으로 만든다. 파일을 열어보면 각각의 키에 대해 mapping이 정의되어있다. 왼쪽에는 keycode가 정의되어있고 오른쪽에 그 keycode에 해당하는 키가 정의되어있다.

$ xmodmap -pke > ~/.Xmodmap

예제로 F9를 Page up으로 변경해보자. F9와 Page up의 keycode를 찾아야 하는 이 때 xev라는 프로그램이 유용하다. xev를 실행하고 key를 누르면 아래처럼 keycode가 출력된다.

$ xev
$ KeyRelease event, serial 37, synthetic NO, window 0x4200001,
  root 0x190, subw 0x0, time 3330521, (235,172), root:(380,307),
  state 0x0, keycode 112 (keysym 0xff55, Prior), same_screen YES,
  XKeysymToKeycode returns keycode: 68
  XLookupString gives 0 bytes:
  XFilterEvent returns: False

Page up이 112이므로, 112의 키 내용을 F9의 keycode인 keycode 75의 키 내용에 복사한다. F9를 누르면 Page up이 동작하도록 내용을 수정하였다.

keycode  75 = Prior NoSymbol Prior
keycode 112 = Prior NoSymbol Prior

layout을 수정했으면 아래 명령어로 시스템에 적용할 수 있다. (적용하는데 잠시 키보드 동작이 안된다)

$ xmodmap ~/.Xmodmap

처음 상태로 되돌리고 싶으면 백업한 파일을 시스템에 적용하면 된다

$ xmodmap ~/xmodemap_origianl

참고