Bongta      

키보드 키 맵핑(mapping)

computer : 2021. 2. 17. 16:46


키보드 키 맵핑(mapping)

예전엔 컴퓨터 키보드 엔터키(enter key)가 ┘형상으로 되어 있었다.
이게 일반 글자 크기의 근 3배나 되는 자리를 차지하고 있어, 제법 큼지막했다.
나는 예전부터 이런 엔터키가 장착된 기계식 키보드를 사용하고 있었다.
키를 누를 때 나는 찰칵거리는 타건음(打鍵音)도 경쾌하고,
크기도 커서 글자를 입력할 때 편했다.

오래도록 사용하여 색이 바랬지만,
요즘 나오는 것에 비해 훨씬 좋아 버리지 않고 잘 사용하고 있었다.
헌데, 물을 키보드 위로 엎질러 버리고 말았다.
분해하여 소제를 하고 건조를 잘 시켰지만, 복구가 되지 않았다.
아마도 마이크로콘트롤러 칩이 전기적으로 쇼트가 나서 망가진 것으로 보인다.

급히 키보드를 하나 구했는데,
이게 멤브레인(membrane, 薄膜) 타입이라,
타건감(打鍵感)이 전보다 못한 것은 참아낼 수 있겠음이나,
엔터키가 일자(─)로 되어 있어 여간 불편하지 않다.
게다가 크기가 작아져, 손에 익지 않아 글자 입력시 오타가 자주 났다.

요즘엔 왜 이리 엔터키가 작아진 것만 생산이 되는가?
국제 표준이라는 말도 떠돌고, 이게 외려 손에 잘 맞는다는 이도 적지 않다.

내가 짐작컨대, 이젠 이리 큰 엔터키에 대한 수요가 줄어든 것이리라.
전엔 글자 입력이 컴퓨터 작업의 대종을 이뤘다.
그러니 엔터키를 자주 사용하였은즉, 
이를 크게 하여 사용자의 편의를 도왔을 것이다.

여담이지만,
엔터키 사용이 왜 글자 입력 작업시 많이 사용되었던 것인가?
키보드는 기실 타자기에서부터 진화한 것이다.
애초, 타자기(typewriter), TTY(teletypewriter)를 거쳐,
컴퓨터 키보드로 전화(轉化)되었다.

타자기를 예로 들면 line feed, carriage return 이 두 가지 기능은,
여느 글자 자판과는 완연히 구별되는 것이라 하겠다.
line feed는 한 줄을 다 완성하고는 줄 바꿈을 하는 것이니,
한 줄을 다 치고 종이 오른쪽 끝에 이르르면,
타자수는 레버를 꺾어 다시 왼쪽으로 밀어주어야 했다.
그러면, 종이가 위로 말려 올라가면서 다음 줄이 새로 준비가 되었다.
이 때 cylindrical platen에 들어 있는 striking head가 줄 처음 위치에 가 있게 되는데,
이것이 carriage return이다.

컴퓨터에서 글자 입력시 엔터키는 바로 이 두 가지 기능인,
line feed, carriage return을 동시에 수행한다.
그러니까, 이 두 가지는 글자 입력 작업시 없어서는 아니 되는 특별한 기능이라 하겠다.
그런즉, 전통적으로 컴퓨터 키보드에서 엔터키를 크게 만들었던 것이 아닐까 싶다.

헌데, 요즘에 컴퓨터는 다만 글자 입력이 대부분인 편집(edit) 기능을 넘어,
게임이라든가, 결과치를 토출해내어 활용하는 출력 기능으로 외연이 넓어졌다.
그러니, 엔터키의 사용이 훨씬 줄어들었고,
이에 따라 그 크기도 작아지고 만 것이리라.

하지만, 나의 경우, 문서 작업을 많이 하고, 코딩 작업을 버리지 못하는 형편이라,
text 글자 입력 활동이 많을 수 밖에 없다.
때문에 저 커다란 엔터키가 여전히 요긴하다.

하여 다시 새로운 키보드를 구하고자 나섰다.
헌데, 이런 키보드를 구하는 것이 쉬운 게 아니었다.
게다가 다시 기계식을 구하려니 더욱 선택지가 좁아졌다.

하여, 나는 꾀를 내었다.
지금처럼 일자식으로 구하되,
엔터키 위에 있는 [|\]키를 엔터키 기능으로 바꿔 버린 것이다.
하니까, 이젠 엔터키나 [|\]키나 모두 기능상 엔터키가 되버리게 하는 것이다.
이리 되면, 자판을 두드릴 때 둘 중 어떤 것을 눌러도,
엔터키일 터이니 오타가 날 일이 훨씬 줄어드는 것이다.
다만 본래의 [|\]키는 이제 사용할 수 없게 되므로,
약간의 불편을 감수하여야 한다.
하지만, 이 키는 잘 사용하지 않으므로 견딜 만할 것이다.
만약 이것이 정 필요한 경우라면,
다시 잘 쓰지 않는 키로 scan code 값을 바꿀 일이다.


기계식 키보드는 현재, 
黑軸, 茶軸, 青軸, 紅軸의 구별이 있다.
나는 이번에 갈축(茶軸) 기계식 키보드(茶軸機械鍵盤)를 구했다.
갈축인 경우, 적당한 기계 타건음을 즐길 수도 있고,
소음도 적절히 통제되기 때문에 이를 택하기로 하였다.
(참고로 청축은 기계식다운 면모를 가지고 있어, 타건감이 크다.)

키보드 키엔 각기 코드가 할당되어 있다.
이를 scan code라 부른다.
하니까, 나 같이 [|\] key를 enter key로 바꾸려면,
그 해당 코드 값을 바꿔치면 되는 것이다.

이 작업을 하려면, 전용 프로그램을 사용하거나,
(※ 찾아보면 무료 프로그램을 쉬이 구할 수 있다. 
      말미에 소개할 예정)
아니면 직접 수동으로 scan code 값을 바꿔주어야 한다.

(ScanCode Map, 출처 : Keyboard Scan Code Specification)

제시된 맵을 보면,
[|\]의 scan code 값은 2b,
enter key의 경우엔 1c이므로 이를 기초로 작업을 해주면,
누구라도 손쉽게 일을 처리할 수 있다.

이제 준비가 되었다.
실제 작업하는 방법을 설명해본다.

regedit를 기동하고, (스크린 하단 좌측, 찾아보기에서 검색)
HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layout로 찾아 들어간다.
(regedit란 registry editor를 의미한다)

Scancode Map 항목을 하나 새로 만들어준다.
그리고 그 내용을 편집하여 다음으로 채워준다.

00 00 00 00 00 00 00 00
02 00 00 00 1c 00 2b 00
00 00 00 00

초보자의 경우,
입력시 저것은 이진 데이터, 16진법으로 되어 있으므로,
각 디지트가 0, 1, 2, ......9, a, b, c, d, e, f로 되어 있음에 유의할 일이다.
16진법은 4bit로 표현될 수 있고, 이게 둘이 모이면, 8bit가 되는데,
이미지 상에 00 00 ... 은 (4bit+4bit)(4bit+4bit) (4bit+4bit)(4bit+4bit) ...
이런 형식으로 데이터가 구성되어 있는 폭이다.

이제 간단히 설명해본다.

1. 첫번 째 줄 일련의 ‘0’들은 빈 공간인즉, 그리 채워두면 된다.

2. 두 번 째 줄 처음에 나타나는 ‘02’는 작업하고자 하는 remapping 키 숫자 더하기 1이다.
   이는 편집하려는 데이터 길이를 확정시켜 주기 위함이다.

3. 1c 00 2b 00
   앞의 4 자리는 바뀌어질 키 코드, 뒤의 4개는 원래의 키 코드를 가리킨다.

4. 3번 째 중의 8개 ‘0’은 null terminator일 뿐이니, 그저 따르면 된다.

설정이 끝나면, 컴퓨터를 다시 rebooting 시켜주어야 한다.

만약 서투르게 설정하여, 원하는 대로 작동하지 않는다면,
새로 만든 Scancode Map을 삭제하면 원래대로 돌아갈 수 있으니,
걱정하지 말고 작업하여도 된다.

※ 참고 사항

1. 관련 문서
keyboard scancode에 대한 좀 더 상세한 내용은,
다음 문서를 참고하라.

https://download.microsoft.com/download/1/6/1/161ba512-40e2-4cc9-843a-923143f3456c/scancode.doc

scancode.doc
2.42MB


2. 유틸(무료)
sharpkeys
download : https://sharpkeys.en.softonic.com/

'computer' 카테고리의 다른 글

마우스 포인터 바꾸기  (0) 2021.02.13
이모티콘(emoticon)  (0) 2020.01.08
프리미어 한글판을 영어판으로 변경하기  (2) 2018.09.27
psb to jpg  (0) 2016.05.17
youtube to mp3  (0) 2016.05.06
알리익스프레스(Aliexpress) 카드 정보 삭제  (4) 2016.02.29
Bongta LicenseBongta Stock License bottomtop
이 저작물은 봉타 저작자표시-비영리-변경금지 3.0 라이센스에 따라 이용행위에 제한을 받습니다.
computer : 2021. 2. 17. 16:46 :