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
참고
Loading script...
Related Posts
- Python - Yaml 파일 파싱하는 방법
- Python - pip와 requirements.txt로 패키지 관리
- 유튜브 쇼츠(Shorts) 자막 끄기/켜기
- SOLID 원칙, 객체지향 설계 5가지 원칙
- Ubuntu 20.04 - Nginx로 React를 배포하는 방법
- 애드센스 '구글 검색 기능' 블로그에 추가
- 트위터 이메일 안오게, 알림 끄기
- 인스타그램 동영상, 사진 저장 방법
- Git 설치 방법 (Ubuntu, Windows)
- Python pip 설치 (Ubuntu / Windows)
- 마우스 우클릭 복사 방지 해제 방법 (크롬)
- Python 에러 해결, 'conda' 용어가 cmdlet, 함수, 스크립트 ... 인식되지 않습니다.
- Python 에러 해결, AttributeError: module 'jwt' has no attribute 'encode'
- Atom - 코드 자동 정렬
- Sublime Text - 코드 자동 정렬, 단축키 설정
- VSCode에서 탭 간격 설정 (Tab to 4 spaces)
- Visual Studio Code에서 코드 자동 정렬
- 구글 검색 기록 삭제, 자동 저장 끄기 (PC, 모바일)
- 안드로이드 개발자 옵션 활성화, USB 디버깅 켜기
- 유튜브 채널 차단, 해제 방법 (PC, 모바일)
- 유튜브 미리보기 자동재생 끄기 (자동 소리 끄기/켜기)
- PC에서 유튜브 모바일 버전(m.youtube.com)으로 보기
- 모바일에서 유튜브 PC버전으로 보기
- 유튜브 시간 링크 만들기, 댓글에 시간 태그 입력하기
- 유튜브 스크립트 함께 보기, 자막 추출 방법
- 유튜브 알고리즘 초기화, 검색 기록과 시청 기록 삭제
- 유튜브 '싫어요' 숫자 다시 보이게 하기
- 구글 크롬, 방금 닫은 탭 다시 열기
- Maven으로 Java프로젝트 build하는 방법
- node.js, npm 버전 확인 방법 (터미널, cmd 명령어)
- GitLab - 'pre-receive hook declined' 에러 해결
- Javacript Heap Out Of Memory 문제 해결
- SSH key 생성하고 GitHub에 등록
- GMT, UTC의 차이점
- Linux(Ubuntu)에 Adobe Photoshop, Illustrator 설치하는 방법