레노버 노트북의 키보드 레이아웃에 대한 단상 - 이런 형태의 키보드 레이아웃은 도대체 누가 생각해 내는가?

레노버 노트북의 키보드 레이아웃에 대한 단상 - 이런 형태의 키보드 레이아웃은 도대체 누가 생각해 내는가?

노트북을 선택할 때 가장 중요한 것은 CPU, RAM~~(?.. 흠...)~~ 혹은 SSD 용량과 같은 소위 말하는 스펙이 전부가 아니다. 무게, 두께 등과 같은 성능과 무관하지만 이동성을 고려하는 분들도 계시고, 나처럼 키보드 레이아웃을 중요하게 생각하는 사람도 있다.

HHKB과 같은 일반적인 사용자에게 사실상 하드웨어 보안에 가까운 키보드 레이아웃을 원하는 것은 아니지만, 흔히 말하는 '전형적인' 레이아웃을 간절하게 원한다. 예를 들어 서피스 랩탑 스튜디오 2와 같은 키보드 레이아웃을 일반적인 키보드 레이아웃이라 생각한다. 유사한 형태의 레이아웃으로 Dell의 XPS, Apple의 MacBook도 개인적으로 만족하는 형태의 키보드 레이아웃이다(물론, Apple은 키보드와 별개로 선택할 수 밖에 없는 아픔이 있기도 하다). 다른 브랜드에서 출시되는 노트북들의 레이아웃에 대한 특장점이 있다곤 하지만, 개인적인 입장에서 사용하기 좋은 키보드 레이아웃 이라고 말하기 어렵다.

반면에, 내가 사용하는 레노버 노트북은 지금까지 거쳐온 모든 노트북 중에서 가장 범죄적인 레이아웃을 가지는 제품이다. 해당 모델은 LTE(4G) 모뎀을 사용해야 하는 어쩔 수 없는 상황에서 선택할 수 있는 여지가 당시에는 레노버 제품밖에 없었기 때문이다.

레노버의 키보드 레이아웃이 범죄적인 형태로 구성되어 있다고 주장하는 이유는 한영키(일반적으로 RIGHT_ALT) 옆에 PrtSc 즉, 스크린 캡쳐키가 위치하고 있기 때문이다. 한국어 사용자의 특성을 고려하자면 무의식적으로 PrtSc를 누르는 일이 빈번하다. 더 나아가서 회사 보안 프로그램 특성상 스크린 캡쳐를 남발하는게 좋은 일도 아니다.

레노버를 구입할 당시에는 리눅스 운영체제를 사용할 것으로 예상하고 구매했으나, 회사의 보안 프로그램이 리눅스를 지원하지 않는다고 해서(맥도 지원하는데 왜... 리눅스는?!!) 윈도우를 설치하였다. 리눅스 였다면 키보드의 키를 마음대로 변경하는게 어렵지 않지만, 도우의 경우 별도의 프로그램을 서비스로 상주시키는 형태로 진행해야 한다고 주변에서 조언해주었다. 하지만, 그럴 수 없었다. 보안 프로그램에서 키보드 관련 변경 사항에 권고를 보내는 등 생각보다 조금 복잡한 일이 벌어지기 때문이다.

윈도우에서 범죄에 가까운 키보드 레이아웃을 조금 고쳐보도록 하자.

목표는 'PrtSC'의 사용 금지

세상의 모든 키보드는 언제나 그러하듯이 문화적이며 사용자 환경의 맥락적인 상황을 고려해서 결정된다. 이런 사용자 환경과 맥락을 제거하고, 제시된 레이아웃의 철학을 뒤로한체 PtrSc를 사용하지 못하도록 하는게 중요 목표이다.

그리고, CapsLock이라 쓰고 Ctrl으로 읽어야 되는 키도 원래의 용도에 맞게, Ctrl로 변경할 생각이다. 대문자라는 개념이 없는 언어권의 사용자이고, CapsLock을 전혀 사용 할 일이 없다. 그리고 세상의 거의 모든 사람들이 Emacs를 사용하고 있는데(반박시 내 말이 맞음, 흥!), 왜 Ctrl 키를 CapsLock으로 인쇄를 하는지 이해하기 쉽지 않다.

예제 : 레지스터를 변경해보자.

레딧과 이런저런 키보드 사이트에서 검색을 통해서 알아낸 결과 윈도우 레지스터를 수정하면 된다는 것을 알았다. 그러기 위해서는 레지스터 수정을 해야 하는데 아래 코드를 통해서 확인할 수 있다. 예를 들어 아래 코드는 Left-CtrlCapsLock으로 변경하는 레지스터 수정 파일이다.

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,1d,00,3a,00,00,00,00,00 

위에서 확인하실 수 있는 것과 같이 레이아웃을 변경하기 위해서는 16진수(hex)를 활용한다. 위 코드는 나름의 규칙이 있는데 다음과 같이 구성된다.

  1. 16진수 데이터(hex data)는 5개 그룹(xx,xx,xx,xx) 그룹으로 구성된다.
  2. 해당 그룹에 대한 세부 사항은 아래와 같다.
  • 00,00,00,00 -- 버전 (항상 00,00,00,00)
  • 00,00,00,00 -- 플래그 (항상 00,00,00,00)
  • 02,00,00,00 -- 변경할 키의 개수 (NULL을 포함하기 때문에 변경할 키에 +1을 함)
  • 1d,00,3a,00 -- 변경내용(K, W => W키를 K키로 변경(순서주의!))
  • 00,00,00,00 -- 종료(NULL)

위의 16진수를 해석하자면 "1개의 키를 변경(02,00,00,00)하는데, 0x3a 키를 0x1d키로 변경해라" 이때, 1dLeft-Ctrl이며, 3aCapsLock이다. 즉, "CapsLock"을 "Left-Ctrl"키로 변경하는 16진수 데이터이다.

실전 : 레노버 레이아웃을 변경해보자.

내가 원하는 변경사항은 아래와 같다.

  1. PrtSc키를 무력화
  2. CapsLockRight-Ctrl로 변경

그러기 위해서 아래와 같은 헥사 데이터로 구성할 수 있다.

  • 00,00,00,00 -- 버전 (항상 00,00,00,00)
  • 00,00,00,00 -- 플래그 (항상 00,00,00,00)
  • 03,00,00,00 -- 변경할 키의 갯수 (NULL을 포함하기 때문에 변경할 키에 +1을 해야 함)
  • 1d,e0,3a,00 -- CapsLockRight-Ctrl로 변경
  • 00,00,37,e0 -- PrtSc키를 무력화
  • 00,00,00,00 -- 종료(NULL)

아래와 같은 형태로 레지스터를 수정하는 코드를 작성하고 reg(예를 들어, 첨부된 파일명은 KeyBoard_Layout_Disable_CapsLock_PrtSc.reg) 파일을 작성하면 된다.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,03,00,00,00,1d,00,3a,00,00,00,37,e0,00,00,00,00

키보드의 스캔 코드만 알고 있으면, 다양하게 응용할 수 있지만 애초에 좋은 것을 사면 이런 골치아픈 일을 할 필요가 없다.

맺음말

좋은 레이아웃을 가진 노트북을 구매하자. 레이아웃이 좋다는 것은 해당 노트북을 설계하고 만드는 분들이 입력 장치에 대한 나름의 고민이 있다는 의미이다. 다양한 형태의 변형 레이아웃을 통해서 제조사의 철학과 사용자 그룹의 편의성을 도모하고 있다. 하지만 일반적이고 보편적인 형태의 키보드가 사용하기 좋고, 편리하다.

윈도우의 레지스터 변경을 통해서 자신만의 레이아웃을 구성하거나 불편한 부분을 수정할 수 있지만, 개인이 하기에 쉽지 않을 수 있다. 개선할 수 있는 여지가 있다는 점에선 그나마 다행이라고 생각하지만, 레노버가 이런 정신나간 레이아웃을 만들지 않았다면 더 좋았을 것 같다.

레노버로 개발하시는 분들에게 도움이 되셨기를 바라며...

P.S

윈도우에서 제공하는 Settings > Accessibility > Keyboard > Use the Print screen key to open screen capture의 경우 PrtSc키를 눌렀을 때 윈도우에서 제공하는 Snipping Tool의 실행 여부를 설정하는 것이다. 보안 프로그램에서 스크린캡쳐 여부가 남는 걸 원하지 않았기 때문에 해당 키를 비활성화하는 방법을 선택했다. Snipping Tool이 실행되는 것을 원치 않으시면 Accessibility 설정을 활용하는 것도 좋은 방법입니다.

Ref